<p><strong>US&nbsp;<a href="https://floatingchair.club/products/dungeon" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Physical copies still available at FloatingChair.Club!</a></strong></p><p><strong>UK <a href="https://soulmuppet-store.co.uk/products/dotdungeon" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Physical copies still available at SoulMuppet Publishing!</a></strong></p><p>.dungeon is a book about traveling through a virtual, fantasy world. One person takes on the role of the World, filling&nbsp;in the nooks and crannies with dungeons and adventures that they think up or borrow from books they already own.&nbsp;Everyone else is a Player and creates a Character to explore those nooks, discover their treasure, and interact with&nbsp;NPCs and other flesh-and-blood folks in the virtual world.<br></p>
<p>The thing that sets .dungeon apart from other books is the inspiration it takes from social games like Werewolf and Munchkin. The real world can (and will) affect the game you create. Each class has different powers based on physical things you do, or different parts of your life. The witch uses their tattoos to cast spells while the wizard uses their favorite book. The knight makes vows while the leader can offer gifts to the other players to aid them. There are 10 classes total to choose from, including the bard, the troll, and the artist.&nbsp;</p>
<p>Beyond that, the game functions on a <em>simple</em> <strong>contest system</strong>.</p>
<ul><li>You assign dice (like the d4, and the d8) to your stats</li><li>Roll the appropriate die when facing an obstacle</li><li>If you roll higher than the obstacle, you succeed!</li><li>If you roll lower, you take damage equal to the difference</li></ul>
<p><img src="https://img.itch.zone/aW1nLzY3MzExOTcucG5n/original/MlWiea.png" loading="lazy"><br></p>
<p>Also included in the book:</p>
<ul><li>A simple oracle system</li><li>NPC charts for plotting in-depth characters</li><li>A quest generator</li><li>Advice/tools for porting adventures/monsters over to .dungeon with ease</li></ul>
<p><a href="https://www.polygon.com/22673506/dotdungeon-indie-rpg-john-battle-review" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzY5OTU5NDcucG5n/original/rc8Uzu.png" loading="lazy"></a></p>
<p>
</p>
<p><iframe frameborder="0" src="https://itch.io/embed/1157920" width="552" height="167" style="color: inherit; font-size: inherit"></iframe><br></p>
<iframe frameborder="0" src="https://itch.io/embed/1204266" width="552" height="167">&lt;a href=&quot;<a href="https://johnbattle.itch.io/pregame-lobby-2">Pregame&quot; class=&quot;redactor-linkify-object&quot;&gt;https://johnbattle.itch.io/pregame-lobby-2&quot;&gt;Pregame</a> Lobby Issue 2 by Batts&lt;/a&gt;</iframe>
<p><iframe frameborder="0" src="https://itch.io/embed/1229673" width="552" height="167">&lt;a href=&quot;<a href="https://johnbattle.itch.io/pregame-lobby-3">Pregame&quot; class=&quot;redactor-linkify-object&quot;&gt;https://johnbattle.itch.io/pregame-lobby-3&quot;&gt;Pregame</a> Lobby Issue 3 by Batts&lt;/a&gt;</iframe><br></p>
<p><iframe frameborder="0" src="https://itch.io/embed/1289672" width="552" height="167">&lt;a href=&quot;<a href="https://johnbattle.itch.io/dungeon-extra-materials">.dungeon&quot; class=&quot;redactor-linkify-object&quot;&gt;https://johnbattle.itch.io/dungeon-extra-materials&quot;&gt;.dungeon</a> extra materials by Batts&lt;/a&gt;</iframe><br></p>
<iframe style="border: 0; width: 350px; height: 470px" src="https://bandcamp.com/EmbeddedPlayer/album=1432294849/size=large/bgcol=ffffff/linkcol=0687f5/tracklist=false/transparent=true/"><a href="https://nervesproject.bandcamp.com/album/dungeon" rel="nofollow noopener" referrerpolicy="origin">.dungeon by Nerves</a></iframe>

<iframe width="720" height="450" src="https://www.youtube.com/embed/DGLR3i-fbnM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTIyODc4LzUyMzg3NjUucG5n/original/Lv5tR4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIyODc4LzUyMzg3NjQucG5n/original/p6%2BDBY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIyODc4LzY3MzExNDIucG5n/original/FkmHVE.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIyODc4LzUyMzg3NjYucG5n/original/Xh%2F3Y0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIyODc4LzUyMTg3MDQucG5n/original/NHrmCf.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIyODc4LzY3MzExNjcucG5n/original/%2B69ia%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIyODc4LzUyMTg3MDUucG5n/original/EAWzj4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIyODc4LzUyMzg3NjcucG5n/original/XTZFJr.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIyODc4LzY3MzExNjgucG5n/original/i96K%2BQ.png]]
<p></p>
<p>A long time after the 2000s WHEN the Earth is&nbsp;being ruled (invaded)&nbsp; by powerful (rogue) AI. 3 human beings are thrown into a room where there is no escape. (Or there might be some escape, instructions were unclear on that.) They trying&nbsp; to (struggle) adjust to life in a one-roomed house (imprisonment) while they live according to MY RULES. The Mighty AI, Ruler of Prisons, Tormentor of Minds, Inventor of Impossible Puzzles … Come join me at this show where we take joy from others’ sufferings and join (help) me in making their lives harder. Also, please enjoy the show (don’t let them escape).
 </p>
<p>Follow this visual novel where you play as an AI who is trying to keep 3 humans from escaping a definitely unescapable room and hopefully understand why you are trying to keep them there.
 </p>
<h1>Visual Developers
 </h1>
<p>Damla Kıvılcım Demir
 </p>
<p>İzel Çelik
 </p>
<h1>Software Developers
 </h1>
<p>Can Deniz Çam
 </p>
<p>Sena Temuçin
 </p>
<p></p>
<h1>Story Developer</h1>
<p>Batur Zafer
 </p>
<h2>Contact
 </h2>
<p>You can reach us from: pungocorp@gmail.com
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE4MTAzOC82OTY0ODE0LmpwZw==/original/c9w8V7.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE4MTAzOC82OTY0ODE2LmpwZw==/original/M7BbQ5.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE4MTAzOC82OTY0ODIwLmpwZw==/original/pW0%2FDc.jpg]]
<p>[ENDLESS_OVERDRIVE] is an arcade game about movement. As you move and shoot your way across the grid playing field, the enemies you kill are transformed into stage hazards, constricting the space you have to maneuver through. Build up your combo multiplier to clear out space, all while avoiding the red enemy that tracks your every move!</p>
<p>The game's soundtrack comes from the Alpha Hydrae album&nbsp;Peace&nbsp;Love&nbsp;Respect Overdrive. Listen to the full album here:&nbsp;<a href="https://chezmonplaisir.bandcamp.com/album/alpha-hydrae-peace-love-respect-overdrive" rel="nofollow noopener" referrerpolicy="origin">https://chezmonplaisir.bandcamp.com/album/alpha-hydrae-peace-love-respect-overdr...</a></p>
<h4>KEYBOARD CONTROLS</h4>
<p>W,S,A,D or arrow keys - Movement</p>
<p>Space - Overdrive brake</p>
<p>Enter - Pause</p>
<p>Escape - Enter/exit fullscreen</p>
<h4>GAMEPAD CONTROLS</h4>
<p>(XInput only)</p>
<p>D-pad - Movement</p>
<p>A - Overdrive brake</p>
<p>Start - Pause</p>
<p><br></p>
<p><strong></strong></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODc3NDgwLzQ5MzgwOTIucG5n/original/NDb7rq.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODc3NDgwLzQ5MzgwOTUucG5n/original/nwxMHq.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODc3NDgwLzQ5MzgwOTMucG5n/original/Dz24Jz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODc3NDgwLzQ5MzgwOTQucG5n/original/FSf80U.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODc3NDgwLzQ5MzgwOTYucG5n/original/E9PrYd.png]]
<p><strong>Inkbit</strong>&nbsp;is a custom pixel typeface inspired by the letterings&nbsp;of&nbsp;sailor&nbsp;tattoos made by&nbsp;Sailor Jerry in the 1950s.&nbsp;</p>
<p>It is a&nbsp;great font for nautical or tattoo themed&nbsp;retro&nbsp;designs, or any project that&nbsp;revolves around pixel art.&nbsp;<strong>Inkbit</strong>&nbsp;comes in 3 different styles: the first one features the original&nbsp;decorated style of sailor tattoos, while&nbsp;the&nbsp;variations have slightly simpler designs and better readability&nbsp;on smaller sizes.<span></span></p>
<p><br></p>
<p class="text-center">&nbsp;<img src="https://img.itch.zone/aW1nLzI0MTU2MTIucG5n/original/Nba%2B%2FW.png" loading="lazy"></p>
<p class="text-justify text-center"><br></p>
<p class="text-justify">Inkbit comes with both upper and lowercase letters and a wide variety of accents and symbols. If are there any set of symbols that you would like to see in the font, just drop a comment and I'll try my best to help you out.&nbsp;This is the current list of characters supported:</p>
<table><tbody><tr><td><em>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxy
0123456789!"#$%&amp;'()*+,-./:;&lt;=&gt;?@[\]^_`{|}~©®ª´º÷
ÀÁÂÃÈÉÊÌÍÎÒÓÔÕÙÚÛàáâãèéêìíîòóôõùúûÑñÇç</em>
</td></tr></tbody></table>
<p class="text-justify">By purchasing this font you will receive a working True Type Font (.ttf) file cointaining all of the mentioned above, along with .png files of all its glyphs.</p>
<h5><em>Inkbit and its variations are&nbsp;protected under a End User License Agreement (EULA), to which you submit&nbsp;upon purchase.&nbsp;This work is licensed under a Creative Commons Attribution - No Derivatives 4.0 International Public License (CC BY 4.0). Anyone who legally acquires them can rightfully make use&nbsp;without any restrictions and agrees to not resell, redistribute or sub-license it under any circumstances.&nbsp;</em></h5>
<p><br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzgyOTQ5MTcucG5n/original/j9%2BDq%2F.png" loading="lazy"><br></p>

[img width=500 [https://img.itch.zone/aW1nLzgzMjk2OTIucG5n/original/HiSeYP.png]]
<p><strong>MOOD </strong>is a set of&nbsp;pixel art fonts inspired by the interface characters of the original&nbsp;<em>Doom </em>(1993). The typefaces are highly decorative with a retro-futuristic style, making them great options for menus, interfaces and scenarios of any pixel art sci-fi setting.<br><br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzgzMjY4ODYucG5n/original/5mg%2FEk.png" loading="lazy"><br></p>
<p>The set contains two fonts plus four variations, making it a total of six font files altogether.&nbsp;Both fonts and variations support multiple symbols and accents. You can the current list of characters supported down bellow:</p>
<table><tbody><tr><td class="text-center"><em>ABCDEFGHIJKLMNOPQRSTUVWXYZ<br>0123456789!”#$%&amp;’()*+,-./:;&lt; = &gt;?@[\]^_`{|}~¡¢©®´º¿ <br>ÀÁÂÃÄÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÑÇ</em></td></tr></tbody></table>
<p class="text-center"><br></p>
<p>By purchasing this font set&nbsp;you will receive 6 (six)&nbsp;True Type Font (.ttf) files along with .png files containing the glyphs of each font.</p>
<h5><em>Mood Font Set&nbsp;is protected under a End User License Agreement (EULA), to which you submit upon purchase. This work is licensed under a Creative Commons Attribution&nbsp;- No Derivatives 4.0 International Public License (CC BY 4.0).&nbsp;Anyone who legally acquires it can rightfully make use&nbsp;without any restrictions and agrees to not resell, redistribute or sub-license its contents&nbsp;under any circumstances.</em></h5>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzgzMDA4MDAucG5n/original/OIK1IS.png" loading="lazy"><br></p>

[img width=500 [https://img.itch.zone/aW1nLzgzMjY4NzcucG5n/original/b5bN7h.png]]
<p><strong>New Hi-Score</strong> is a pixel art typeface inspired by the pop-up texts of retro arcade games. It has a bold outline that gives volume and tridimensionality, making it a great font for texts that are supposed to stand out on a screen.<br></p>
<p class="text-justify text-center">This is an upgrade of an old typeface of mine, Hi-Score, to which I&nbsp;added many new glyphs and various accents so it can better function in text and/or&nbsp;interface. The font also supports both upper and lowercase. This is the current list of characters supported:</p>
<p class="text-center"><br></p>
<table><tbody><tr><td class="text-justify text-center"><em>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxy<br>0123456789!”#$%&amp;’()*+,-./:;&lt;=&gt;?@[\]^_`{|}~¡¢©ª´º¿÷<br>ÀÁÂÃÄÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜàáâãäèéêëìíîïòóôõöÑñÇç</em></td></tr></tbody></table>
<p class="text-center"><strong></strong><br></p>
<p class="text-justify text-center"><strong>Note: </strong>the font is intended to be used with a kerning value of -2 (at it's original size of 16 points; kerning value will change proportionally with size) so the outlines can properly overlap, making for a better visual. This value can be changed in almost any media you decide to use the font on. If you have any doubt about this or any other related to the font, just drop a comment and I'll be sure to address it as soon as I can.</p>
<p class="text-justify text-center">By purchasing this font you will receive a working True Type Font (.ttf) file containing all of the mentioned above, along with .png files of all its glyphs.<br></p>
<h5 class="text-justify text-center"><em>New Hi-Score is protected under a End User License Agreement (EULA), to which you submit upon purchase. This work is licensed under a Creative Commons Attribution&nbsp;- No Derivatives 4.0 International Public License (CC BY 4.0).&nbsp;Anyone who legally acquires it can rightfully make use&nbsp;without any restrictions and agrees to not resell, redistribute or sub-license it under any circumstances.</em></h5>
<p></p>
<p class="text-center"><strong><img src="https://img.itch.zone/aW1nLzI0MTk0NzguZ2lm/original/6SRlc%2B.gif" loading="lazy">
</strong>
</p>

[img width=500 [https://img.itch.zone/aW1nLzI0MTc1OTAuZ2lm/original/LjvchS.gif]]
<p>Grab your Speer and use it to make your way through this puzzle-platformer! Throw your Speer into walls and use it as a platform, hurl it at switches, hit enemies in the face with it, power it up with unique abilities...the possibilities are endless!*</p>
<p>Each room is filled with obstacles and items, from spikes and lasers to portals, bouncepads and breakable walls. In order to make it through the 100+ levels you'll have nothing but your Speer, your wits and your reflexes. Are you up to it?<br></p>
<h2>Features</h2>
<ul><li>Use your Speer as a makeshift platform</li><li>100 levels spread across 4 worlds</li><li>Secrets to unlock</li><li>Joypad support</li><li>Pixels (big ones)</li><li>Stuck? Skip levels and revisit them later!</li></ul>
<p>*The possibilities are not endless</p>
<h2>Testimonies of Awesome People</h2>

<div class="custom-testimony">
<p>"[SPEER] from @ohsat_games is pure puzzle platforming perfection!"</p>
<p class="custom-author"> -<a href="https://twitter.com/PursuingPixels/status/1358983982176755719" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Pursuing Pixels</a></p></div>

<div class="custom-testimony">
<p>"A stylish retro puzzle platformer with some great level design and speer hurling gameplay that’s well worth taking a stab at."</p><p class="custom-author"> -KJ Robertson, <a href="http://alphabetagamer.com/speer-beta-download" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Alpha Beta Gamer</a></p></div>

<div class="custom-testimony">
<p>"Dude I love Speer so much!"</p><p class="custom-author"> -<a href="https://twitter.com/RealKevinCole/status/1162166264946712583" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Kevin Cole</a>, developer of <a href="https://supertry.itch.io/haque" target="_blank">Haque</a></p></div>

<div class="custom-testimony">
<p>"[...]Speer delivers some very clever puzzles. Speer [is] a game that’s often challenging but rarely frustrating. That’s a balance few games get right."</p><p class="custom-author"> -Matthew Codd, <a href="http://shindig.nz/gaming/indie-spotlight-speer-quest-big-key-torquel-defunct" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Shindig</a><br></p></div>

<iframe width="720" height="450" src="https://www.youtube.com/embed/_4xSw1Z7SJo" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTUzODEzLzEwMTYzODMuZ2lm/original/IWrtRO.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUzODEzLzEwMTQ3NDEuZ2lm/original/9HWBr5.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUzODEzLzEwMTQ3MzkuZ2lm/original/KzndwG.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUzODEzLzkxMjc4My5naWY=/original/0yKEQu.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUzODEzLzEwMTQ3NjMuZ2lm/original/COmzDh.gif]]
<p>/dia is a micro ttrpg that invites the player to create a character and then imagine a moment of impending doom. The player then decides what comes next. <br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODk5MzI4LzUxMjQ3NTMuanBn/original/0oZDPx.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODk5MzI4LzUxMjQ3NTguanBn/original/a%2Fd1EQ.jpg]]
<p>Supernovas blaze in the night sky, but the gaming world is abuzz over a new virtual reality console. Jacob Lessard, developer of the Penta device, promises a neural experience more "real" than reality itself. But what does it truly mean for something to be real?<br></p><p>When Lilya arrives at InterMense to beta test the Penta, she expects to spend the weekend battling her social anxiety in exchange for the opportunity to enter the Vitalia simulation. But when Ben, another tester, refuses to leave the world of Vitalia, endangering his life, Lilya sees that she has become involved in something much more eye-opening than she realized. As Lilya, Ben, and Jacob's fates intertwine, they must make some of the hardest decisions of their lives, and confront their own perceptions of the nature of existence.</p><p><strong>In this interactive novel, your choices will shape Lilya and Jacob's beliefs about what is real, or if reality even exists.</strong></p><h1>Features</h1><ul><li><strong></strong><strong>A Thought-Provoking Narrative</strong> - with several mind-bending twists and two perspective characters, the story is both philosophically ambitious and deeply personal.</li><li><span></span><strong>Choices That Matter</strong> - a heavily branching story line makes the game re-playable. Your decisions have major consequences - ranging from shifting a character's attitude, to placing them on a different story branch, to re-directing the outcome of the entire game.</li><li><strong>Expressive Character Art and Visuals</strong> - 14 characters (with various poses and expressions), 13 background scenes, 13 CGs/special illustrations, 12 ending panels.</li><li><strong>Character and Relationship-Building</strong> - rich character development, affected by your choices, and with opportunities for both romantic and non-romantic relationship-building.</li><li><strong>Original Music and Sound Design</strong> - by the talented composer Chase Bethea.</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/_ADeWZRAKeA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIzODM5LzYwMjQwNy5wbmc=/original/BHAgum.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIzODM5LzYwMjQwNi5wbmc=/original/V9n%2FVz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIzODM5LzYwMjQwNS5wbmc=/original/qFbGdM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIzODM5LzYwMjQwNC5wbmc=/original/O%2FtfSY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIzODM5LzYwMjQwOC5wbmc=/original/FT7Ufv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIzODM5LzYwMjQwOS5wbmc=/original/0QT849.png]]
above
permalink
yes
show
hide
hide
show
disable
{
    "tiddlers": {
        "$:/Acknowledgements": {
            "title": "$:/Acknowledgements",
            "text": "TiddlyWiki incorporates code from these fine OpenSource projects:\n\n* [[The Stanford Javascript Crypto Library|http://bitwiseshiftleft.github.io/sjcl/]]\n* [[The Jasmine JavaScript Test Framework|http://pivotal.github.io/jasmine/]]\n* [[Normalize.css by Nicolas Gallagher|http://necolas.github.io/normalize.css/]]\n\nAnd media from these projects:\n\n* World flag icons from [[Wikipedia|http://commons.wikimedia.org/wiki/Category:SVG_flags_by_country]]\n"
        },
        "$:/core/copyright.txt": {
            "title": "$:/core/copyright.txt",
            "type": "text/plain",
            "text": "TiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\n\nCopyright (c) 2004-2007, Jeremy Ruston\nCopyright (c) 2007-2020, UnaMesa Association\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n  contributors may be used to endorse or promote products derived from\n  this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
        },
        "$:/core/icon": {
            "title": "$:/core/icon",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path d=\"M64 0l54.56 32v64L64 128 9.44 96V32L64 0zm21.127 95.408c-3.578-.103-5.15-.094-6.974-3.152l-1.42.042c-1.653-.075-.964-.04-2.067-.097-1.844-.07-1.548-1.86-1.873-2.8-.52-3.202.687-6.43.65-9.632-.014-1.14-1.593-5.17-2.157-6.61-1.768.34-3.546.406-5.34.497-4.134-.01-8.24-.527-12.317-1.183-.8 3.35-3.16 8.036-1.21 11.44 2.37 3.52 4.03 4.495 6.61 4.707 2.572.212 3.16 3.18 2.53 4.242-.55.73-1.52.864-2.346 1.04l-1.65.08c-1.296-.046-2.455-.404-3.61-.955-1.93-1.097-3.925-3.383-5.406-5.024.345.658.55 1.938.24 2.53-.878 1.27-4.665 1.26-6.4.47-1.97-.89-6.73-7.162-7.468-11.86 1.96-3.78 4.812-7.07 6.255-11.186-3.146-2.05-4.83-5.384-4.61-9.16l.08-.44c-3.097.59-1.49.37-4.82.628-10.608-.032-19.935-7.37-14.68-18.774.34-.673.664-1.287 1.243-.994.466.237.4 1.18.166 2.227-3.005 13.627 11.67 13.732 20.69 11.21.89-.25 2.67-1.936 3.905-2.495 2.016-.91 4.205-1.282 6.376-1.55 5.4-.63 11.893 2.276 15.19 2.37 3.3.096 7.99-.805 10.87-.615 2.09.098 4.143.483 6.16 1.03 1.306-6.49 1.4-11.27 4.492-12.38 1.814.293 3.213 2.818 4.25 4.167 2.112-.086 4.12.46 6.115 1.066 3.61-.522 6.642-2.593 9.833-4.203-3.234 2.69-3.673 7.075-3.303 11.127.138 2.103-.444 4.386-1.164 6.54-1.348 3.507-3.95 7.204-6.97 7.014-1.14-.036-1.805-.695-2.653-1.4-.164 1.427-.81 2.7-1.434 3.96-1.44 2.797-5.203 4.03-8.687 7.016-3.484 2.985 1.114 13.65 2.23 15.594 1.114 1.94 4.226 2.652 3.02 4.406-.37.58-.936.785-1.54 1.01l-.82.11zm-40.097-8.85l.553.14c.694-.27 2.09.15 2.83.353-1.363-1.31-3.417-3.24-4.897-4.46-.485-1.47-.278-2.96-.174-4.46l.02-.123c-.582 1.205-1.322 2.376-1.72 3.645-.465 1.71 2.07 3.557 3.052 4.615l.336.3z\" fill-rule=\"evenodd\"/></svg>"
        },
        "$:/core/images/add-comment": {
            "title": "$:/core/images/add-comment",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-add-comment tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 56H36a8 8 0 100 16h20v20a8 8 0 1016 0V72h20a8 8 0 100-16H72V36a8 8 0 10-16 0v20zm-12.595 58.362c-6.683 7.659-20.297 12.903-36.006 12.903-2.196 0-4.35-.102-6.451-.3 9.652-3.836 17.356-12.24 21.01-22.874C8.516 94.28 0 79.734 0 63.5 0 33.953 28.206 10 63 10s63 23.953 63 53.5S97.794 117 63 117c-6.841 0-13.428-.926-19.595-2.638z\"/></svg>"
        },
        "$:/core/images/advanced-search-button": {
            "title": "$:/core/images/advanced-search-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-advanced-search-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M74.565 87.985A47.776 47.776 0 0148 96C21.49 96 0 74.51 0 48S21.49 0 48 0s48 21.49 48 48c0 9.854-2.97 19.015-8.062 26.636l34.347 34.347a9.443 9.443 0 010 13.36 9.446 9.446 0 01-13.36 0l-34.36-34.358zM48 80c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32z\"/><circle cx=\"48\" cy=\"48\" r=\"8\"/><circle cx=\"28\" cy=\"48\" r=\"8\"/><circle cx=\"68\" cy=\"48\" r=\"8\"/></g></svg>"
        },
        "$:/core/images/auto-height": {
            "title": "$:/core/images/auto-height",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-auto-height tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M67.987 114.356l-.029-14.477a4 4 0 00-2.067-3.494l-15.966-8.813-1.933 7.502H79.9c4.222 0 5.564-5.693 1.786-7.58L49.797 71.572 48.01 79.15h31.982c4.217 0 5.564-5.682 1.795-7.575L49.805 55.517l-1.795 7.575h31.982c4.212 0 5.563-5.67 1.805-7.57l-16.034-8.105 2.195 3.57V35.614l9.214 9.213a4 4 0 105.656-5.656l-16-16a4 4 0 00-5.656 0l-16 16a4 4 0 105.656 5.656l9.13-9.13v15.288a4 4 0 002.195 3.57l16.035 8.106 1.804-7.57H48.01c-4.217 0-5.564 5.682-1.795 7.574l31.982 16.059 1.795-7.575H48.01c-4.222 0-5.564 5.693-1.787 7.579l31.89 15.923 1.787-7.578H47.992c-4.133 0-5.552 5.504-1.933 7.501l15.966 8.813-2.067-3.494.029 14.436-9.159-9.158a4 4 0 00-5.656 5.656l16 16a4 4 0 005.656 0l16-16a4 4 0 10-5.656-5.656l-9.185 9.184zM16 20h96a4 4 0 100-8H16a4 4 0 100 8z\"/></svg>"
        },
        "$:/core/images/blank": {
            "title": "$:/core/images/blank",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-blank tc-image-button\" viewBox=\"0 0 128 128\"/>"
        },
        "$:/core/images/bold": {
            "title": "$:/core/images/bold",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-bold tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M41.146 51.81V21.87h26.353c2.51 0 4.93.21 7.26.628 2.33.418 4.392 1.165 6.185 2.24 1.793 1.076 3.227 2.57 4.302 4.482 1.076 1.913 1.614 4.363 1.614 7.35 0 5.379-1.613 9.263-4.84 11.653-3.227 2.39-7.35 3.586-12.37 3.586H41.146zM13 0v128h62.028a65.45 65.45 0 0016.762-2.151c5.438-1.434 10.278-3.645 14.52-6.633 4.244-2.988 7.62-6.842 10.13-11.563 2.51-4.721 3.764-10.308 3.764-16.762 0-8.008-1.942-14.85-5.826-20.527-3.884-5.677-9.77-9.65-17.658-11.921 5.737-2.75 10.069-6.275 12.997-10.577 2.928-4.303 4.392-9.681 4.392-16.135 0-5.976-.986-10.995-2.958-15.059-1.972-4.063-4.75-7.32-8.336-9.77-3.585-2.45-7.888-4.213-12.907-5.289C84.888.538 79.33 0 73.235 0H13zm28.146 106.129V70.992H71.8c6.095 0 10.995 1.404 14.7 4.212 3.705 2.81 5.558 7.5 5.558 14.073 0 3.347-.568 6.096-1.703 8.247-1.136 2.151-2.66 3.854-4.572 5.11-1.912 1.254-4.123 2.15-6.633 2.688-2.51.538-5.139.807-7.888.807H41.146z\"/></svg>"
        },
        "$:/core/images/cancel-button": {
            "title": "$:/core/images/cancel-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-cancel-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 76.314l-16.97 16.97a7.999 7.999 0 01-11.314 0c-3.118-3.118-3.124-8.19 0-11.313L52.686 65l-16.97-16.97a7.999 7.999 0 010-11.314c3.118-3.118 8.19-3.124 11.313 0L64 53.686l16.97-16.97a7.999 7.999 0 0111.314 0c3.118 3.118 3.124 8.19 0 11.313L75.314 65l16.97 16.97a7.999 7.999 0 010 11.314c-3.118 3.118-8.19 3.124-11.313 0L64 76.314zM64 129c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 1 0 29.654 0 65c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 17 64 17 16 38.49 16 65s21.49 48 48 48z\"/></svg>"
        },
        "$:/core/images/chevron-down": {
            "title": "$:/core/images/chevron-down",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-down tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64.053 85.456a7.889 7.889 0 01-5.6-2.316L2.473 27.16a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0L64.05 66.344l50.382-50.382a7.92 7.92 0 0111.195 0c3.085 3.086 3.092 8.105 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.317z\"/><path d=\"M64.053 124.069a7.889 7.889 0 01-5.6-2.316l-55.98-55.98a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0l50.382 50.382 50.382-50.382a7.92 7.92 0 0111.195 0c3.085 3.086 3.092 8.104 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.316z\"/></g></svg>"
        },
        "$:/core/images/chevron-left": {
            "title": "$:/core/images/chevron-left",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-left tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M47.544 64.053c0-2.027.77-4.054 2.316-5.6l55.98-55.98a7.92 7.92 0 0111.196 0c3.085 3.086 3.092 8.105 0 11.196L66.656 64.05l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.085-8.105 3.092-11.196 0l-55.98-55.98a7.892 7.892 0 01-2.317-5.595z\"/><path d=\"M8.931 64.053c0-2.027.77-4.054 2.316-5.6l55.98-55.98a7.92 7.92 0 0111.196 0c3.085 3.086 3.092 8.105 0 11.196L28.041 64.05l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.085-8.104 3.092-11.196 0l-55.98-55.98a7.892 7.892 0 01-2.316-5.595z\"/></g></svg>"
        },
        "$:/core/images/chevron-right": {
            "title": "$:/core/images/chevron-right",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-right tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M83.456 63.947c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196L64.344 63.95 13.963 13.567a7.92 7.92 0 010-11.195c3.086-3.085 8.105-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.317 5.595z\"/><path d=\"M122.069 63.947c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l50.382-50.382-50.382-50.382a7.92 7.92 0 010-11.195c3.086-3.085 8.104-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.316 5.595z\"/></g></svg>"
        },
        "$:/core/images/chevron-up": {
            "title": "$:/core/images/chevron-up",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-up tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M63.947 44.544c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.105 3.092-11.196 0L63.95 63.656l-50.382 50.382a7.92 7.92 0 01-11.195 0c-3.085-3.086-3.092-8.105 0-11.196l55.98-55.98a7.892 7.892 0 015.595-2.317z\"/><path d=\"M63.947 5.931c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.105 3.092-11.196 0L63.95 25.041 13.567 75.423a7.92 7.92 0 01-11.195 0c-3.085-3.086-3.092-8.104 0-11.196l55.98-55.98a7.892 7.892 0 015.595-2.316z\"/></g></svg>"
        },
        "$:/core/images/clone-button": {
            "title": "$:/core/images/clone-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-clone-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M32.265 96v24.002A7.996 7.996 0 0040.263 128h79.74a7.996 7.996 0 007.997-7.998v-79.74a7.996 7.996 0 00-7.998-7.997H96V48h12.859a2.99 2.99 0 012.994 2.994v57.865a2.99 2.99 0 01-2.994 2.994H50.994A2.99 2.99 0 0148 108.859V96H32.265z\"/><path d=\"M40 56h-7.993C27.588 56 24 52.418 24 48c0-4.41 3.585-8 8.007-8H40v-7.993C40 27.588 43.582 24 48 24c4.41 0 8 3.585 8 8.007V40h7.993C68.412 40 72 43.582 72 48c0 4.41-3.585 8-8.007 8H56v7.993C56 68.412 52.418 72 48 72c-4.41 0-8-3.585-8-8.007V56zM8 0C3.58 0 0 3.588 0 8v80c0 4.419 3.588 8 8 8h80c4.419 0 8-3.588 8-8V8c0-4.419-3.588-8-8-8H8zM19 16A2.997 2.997 0 0016 19.001v57.998A2.997 2.997 0 0019.001 80h57.998A2.997 2.997 0 0080 76.999V19.001A2.997 2.997 0 0076.999 16H19.001z\"/></g></svg>"
        },
        "$:/core/images/close-all-button": {
            "title": "$:/core/images/close-all-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-close-all-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M28 111.314l-14.144 14.143a8 8 0 01-11.313-11.313L16.686 100 2.543 85.856a8 8 0 0111.313-11.313L28 88.686l14.144-14.143a8 8 0 0111.313 11.313L39.314 100l14.143 14.144a8 8 0 01-11.313 11.313L28 111.314zM28 39.314L13.856 53.457A8 8 0 012.543 42.144L16.686 28 2.543 13.856A8 8 0 0113.856 2.543L28 16.686 42.144 2.543a8 8 0 0111.313 11.313L39.314 28l14.143 14.144a8 8 0 01-11.313 11.313L28 39.314zM100 39.314L85.856 53.457a8 8 0 01-11.313-11.313L88.686 28 74.543 13.856A8 8 0 0185.856 2.543L100 16.686l14.144-14.143a8 8 0 0111.313 11.313L111.314 28l14.143 14.144a8 8 0 01-11.313 11.313L100 39.314zM100 111.314l-14.144 14.143a8 8 0 01-11.313-11.313L88.686 100 74.543 85.856a8 8 0 0111.313-11.313L100 88.686l14.144-14.143a8 8 0 0111.313 11.313L111.314 100l14.143 14.144a8 8 0 01-11.313 11.313L100 111.314z\"/></g></svg>"
        },
        "$:/core/images/close-button": {
            "title": "$:/core/images/close-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-close-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M65.086 75.41l-50.113 50.113c-3.121 3.121-8.192 3.126-11.316.002-3.118-3.118-3.123-8.19.002-11.316l50.114-50.114L3.659 13.982C.538 10.86.533 5.79 3.657 2.666c3.118-3.118 8.19-3.123 11.316.002l50.113 50.114L115.2 2.668c3.121-3.121 8.192-3.126 11.316-.002 3.118 3.118 3.123 8.19-.002 11.316L76.4 64.095l50.114 50.114c3.121 3.121 3.126 8.192.002 11.316-3.118 3.118-8.19 3.123-11.316-.002L65.086 75.409z\"/></svg>"
        },
        "$:/core/images/close-others-button": {
            "title": "$:/core/images/close-others-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-close-others-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48zm0-16c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32zm0-16c8.837 0 16-7.163 16-16s-7.163-16-16-16-16 7.163-16 16 7.163 16 16 16z\"/></svg>"
        },
        "$:/core/images/copy-clipboard": {
            "title": "$:/core/images/copy-clipboard",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-copy-clipboard tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"33\" height=\"8\" x=\"40\" y=\"40\" rx=\"4\"/><rect width=\"17\" height=\"8\" x=\"40\" y=\"82\" rx=\"4\"/><rect width=\"17\" height=\"8\" x=\"40\" y=\"54\" rx=\"4\"/><rect width=\"33\" height=\"8\" x=\"40\" y=\"96\" rx=\"4\"/><rect width=\"12\" height=\"8\" x=\"40\" y=\"68\" rx=\"4\"/><path d=\"M40 16H24c-4.419 0-8 3.59-8 8a8.031 8.031 0 000 .01v95.98a8.03 8.03 0 000 .01c0 4.41 3.581 8 8 8h80a7.975 7.975 0 005.652-2.34 7.958 7.958 0 002.348-5.652v-16.016c0-4.414-3.582-7.992-8-7.992-4.41 0-8 3.578-8 7.992V112H32V32h64v8.008C96 44.422 99.582 48 104 48c4.41 0 8-3.578 8-7.992V23.992a7.963 7.963 0 00-2.343-5.651A7.995 7.995 0 00104.001 16H88c0-4.41-3.585-8-8.007-8H48.007C43.588 8 40 11.582 40 16zm4-1.004A4.001 4.001 0 0148 11h32c2.21 0 4 1.797 4 3.996v4.008A4.001 4.001 0 0180 23H48c-2.21 0-4-1.797-4-3.996v-4.008z\"/><rect width=\"66\" height=\"16\" x=\"62\" y=\"64\" rx=\"8\"/><path d=\"M84.657 82.343l-16-16v11.314l16-16a8 8 0 10-11.314-11.314l-16 16a8 8 0 000 11.314l16 16a8 8 0 1011.314-11.314z\"/></g></svg>"
        },
        "$:/core/images/delete-button": {
            "title": "$:/core/images/delete-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-delete-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\" transform=\"translate(12)\"><rect width=\"105\" height=\"16\" y=\"11\" rx=\"8\"/><rect width=\"48\" height=\"16\" x=\"28\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"8\" y=\"16\" rx=\"8\"/><rect width=\"88\" height=\"16\" x=\"8\" y=\"112\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"80\" y=\"16\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"56\" y=\"16\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"32\" y=\"16\" rx=\"8\"/></g></svg>"
        },
        "$:/core/images/done-button": {
            "title": "$:/core/images/done-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-done-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M42.26 111.032c-2.051.001-4.103-.78-5.668-2.345L2.662 74.758a8 8 0 01-.005-11.32c3.118-3.117 8.192-3.12 11.32.007l28.278 28.278 72.124-72.124a8.002 8.002 0 0111.314-.001c3.118 3.118 3.124 8.19 0 11.315l-77.78 77.78a7.978 7.978 0 01-5.658 2.343z\"/></svg>"
        },
        "$:/core/images/down-arrow": {
            "title": "$:/core/images/down-arrow",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-down-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M64.177 100.069a7.889 7.889 0 01-5.6-2.316l-55.98-55.98a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0l50.382 50.382 50.382-50.382a7.92 7.92 0 0111.195 0c3.086 3.086 3.092 8.104 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.316z\"/></svg>"
        },
        "$:/core/images/download-button": {
            "title": "$:/core/images/download-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-download-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48z\" class=\"tc-image-download-button-ring\"/><path d=\"M34.35 66.43l26.892 27.205a4.57 4.57 0 006.516 0L94.65 66.43a4.7 4.7 0 000-6.593 4.581 4.581 0 00-3.258-1.365h-8.46c-2.545 0-4.608-2.087-4.608-4.661v-15.15c0-2.575-2.063-4.662-4.608-4.662H55.284c-2.545 0-4.608 2.087-4.608 4.662v15.15c0 2.574-2.063 4.661-4.608 4.661h-8.46c-2.545 0-4.608 2.087-4.608 4.662a4.69 4.69 0 001.35 3.296z\"/></g></svg>"
        },
        "$:/core/images/edit-button": {
            "title": "$:/core/images/edit-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-edit-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M95.627 10.059l-5.656 5.657 11.313 11.313 5.657-5.656-11.314-11.314zm5.657-5.657l1.966-1.966c3.123-3.122 8.194-3.129 11.319-.005 3.117 3.118 3.122 8.192-.005 11.32l-1.966 1.965-11.314-11.314zm-16.97 16.97l-60.25 60.25a8.12 8.12 0 00-.322.342c-.1.087-.198.179-.295.275-5.735 5.735-10.702 22.016-10.702 22.016s16.405-5.09 22.016-10.702c.095-.096.186-.193.272-.292a8.12 8.12 0 00.345-.325l60.25-60.25-11.314-11.313zM35.171 124.19c6.788-.577 13.898-2.272 23.689-5.348 1.825-.573 3.57-1.136 6.336-2.04 16-5.226 21.877-6.807 28.745-7.146 8.358-.413 13.854 2.13 17.58 8.699a4 4 0 006.959-3.946c-5.334-9.406-13.745-13.296-24.933-12.744-7.875.39-14.057 2.052-30.835 7.533-2.739.894-4.46 1.45-6.25 2.012-19.46 6.112-30.77 7.072-39.597 1.747a4 4 0 10-4.132 6.85c6.333 3.82 13.754 5.12 22.438 4.383z\"/></g></svg>"
        },
        "$:/core/images/erase": {
            "title": "$:/core/images/erase",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-erase tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60.087 127.996l63.015-63.015c6.535-6.535 6.528-17.115-.003-23.646L99.466 17.702c-6.539-6.538-17.117-6.532-23.646-.003L4.898 88.62c-6.535 6.534-6.528 17.115.003 23.646l15.73 15.73h39.456zm-34.95-7.313l-14.324-14.325c-3.267-3.268-3.268-8.564-.008-11.824L46.269 59.07l35.462 35.462-26.15 26.15H25.137z\"/></svg>"
        },
        "$:/core/images/excise": {
            "title": "$:/core/images/excise",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-excise tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 107.314l-2.343 2.343a8 8 0 11-11.314-11.314l16-16a8 8 0 0111.314 0l16 16a8 8 0 11-11.314 11.314L72 107.314v14.284c0 3.536-3.582 6.402-8 6.402s-8-2.866-8-6.402v-14.284zM0 40.007C0 35.585 3.59 32 8 32c4.418 0 8 3.588 8 8.007v31.986C16 76.415 12.41 80 8 80c-4.418 0-8-3.588-8-8.007V40.007zm32 0C32 35.585 35.59 32 40 32c4.418 0 8 3.588 8 8.007v31.986C48 76.415 44.41 80 40 80c-4.418 0-8-3.588-8-8.007V40.007zm48 0C80 35.585 83.59 32 88 32c4.418 0 8 3.588 8 8.007v31.986C96 76.415 92.41 80 88 80c-4.418 0-8-3.588-8-8.007V40.007zm-24-32C56 3.585 59.59 0 64 0c4.418 0 8 3.588 8 8.007v31.986C72 44.415 68.41 48 64 48c-4.418 0-8-3.588-8-8.007V8.007zm56 32c0-4.422 3.59-8.007 8-8.007 4.418 0 8 3.588 8 8.007v31.986c0 4.422-3.59 8.007-8 8.007-4.418 0-8-3.588-8-8.007V40.007z\"/></svg>"
        },
        "$:/core/images/export-button": {
            "title": "$:/core/images/export-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-export-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.003 128H119.993a7.984 7.984 0 005.664-2.349v.007A7.975 7.975 0 00128 120V56c0-4.418-3.59-8-8-8-4.418 0-8 3.58-8 8v56H16V56c0-4.418-3.59-8-8-8-4.418 0-8 3.58-8 8v64c0 4.418 3.59 8 8 8h.003zm48.62-100.689l-8.965 8.966c-3.125 3.125-8.195 3.13-11.319.005-3.118-3.118-3.122-8.192.005-11.319L58.962 2.346A7.986 7.986 0 0164.625 0l-.006.002c2.05-.001 4.102.78 5.666 2.344l22.618 22.617c3.124 3.125 3.129 8.195.005 11.319-3.118 3.118-8.192 3.122-11.319-.005l-8.965-8.966v61.256c0 4.411-3.582 8-8 8-4.41 0-8-3.582-8-8V27.311z\"/></svg>"
        },
        "$:/core/images/file": {
            "title": "$:/core/images/file",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-file tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M111.968 30.5H112V120a8 8 0 01-8 8H24a8 8 0 01-8-8V8a8 8 0 018-8h57v.02a7.978 7.978 0 015.998 2.337l22.627 22.627a7.975 7.975 0 012.343 5.516zM81 8H24v112h80V30.5H89c-4.418 0-8-3.578-8-8V8z\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"36\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"52\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"68\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"84\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"100\" rx=\"4\"/><rect width=\"40\" height=\"8\" x=\"32\" y=\"20\" rx=\"4\"/></svg>"
        },
        "$:/core/images/fixed-height": {
            "title": "$:/core/images/fixed-height",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fixed-height tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60 35.657l-9.172 9.171a4 4 0 11-5.656-5.656l16-16a4 4 0 015.656 0l16 16a4 4 0 01-5.656 5.656L68 35.657v57.686l9.172-9.171a4 4 0 115.656 5.656l-16 16a4 4 0 01-5.656 0l-16-16a4 4 0 115.656-5.656L60 93.343V35.657zM16 116h96a4 4 0 100-8H16a4 4 0 100 8zm0-96h96a4 4 0 100-8H16a4 4 0 100 8z\"/></svg>"
        },
        "$:/core/images/fold-all-button": {
            "title": "$:/core/images/fold-all-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold-all tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"64\" rx=\"8\"/><path d=\"M64.03 20.004c-2.05 0-4.102.78-5.667 2.344L35.746 44.966c-3.125 3.124-3.13 8.194-.005 11.318 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.965 16.966 16.965c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.191-.005-11.318L69.687 22.348a7.986 7.986 0 00-5.663-2.346zM64.03 85.002c-2.05-.001-4.102.78-5.667 2.344l-22.617 22.617c-3.125 3.125-3.13 8.195-.005 11.319 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.966 16.966 16.966c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.192-.005-11.319L69.687 87.346A7.986 7.986 0 0064.024 85z\"/></g></svg>"
        },
        "$:/core/images/fold-button": {
            "title": "$:/core/images/fold-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><path d=\"M64.03 25.004c-2.05 0-4.102.78-5.667 2.344L35.746 49.966c-3.125 3.124-3.13 8.194-.005 11.318 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.965 16.966 16.965c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.191-.005-11.318L69.687 27.348a7.986 7.986 0 00-5.663-2.346zM64.005 67.379c-2.05 0-4.102.78-5.666 2.344L35.722 92.34c-3.125 3.125-3.13 8.195-.006 11.32 3.118 3.117 8.192 3.121 11.32-.006L64 86.69l16.965 16.965c3.125 3.125 8.195 3.13 11.319.005 3.118-3.118 3.122-8.192-.005-11.319L69.663 69.723A7.986 7.986 0 0064 67.377z\"/></g></svg>"
        },
        "$:/core/images/fold-others-button": {
            "title": "$:/core/images/fold-others-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold-others tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" y=\"56.031\" rx=\"8\"/><path d=\"M86.632 79.976c-2.05 0-4.102.78-5.666 2.345L64 99.286 47.034 82.321a7.986 7.986 0 00-5.662-2.346l.005.001c-2.05 0-4.102.78-5.666 2.345l-22.618 22.617c-3.124 3.125-3.129 8.195-.005 11.319 3.118 3.118 8.192 3.122 11.319-.005l16.966-16.966 16.965 16.966a7.986 7.986 0 005.663 2.346l-.005-.002c2.05 0 4.102-.78 5.666-2.344l16.965-16.966 16.966 16.966c3.125 3.124 8.194 3.129 11.319.005 3.118-3.118 3.122-8.192-.005-11.319L92.289 82.321a7.986 7.986 0 00-5.663-2.346zM86.7 48.024c-2.05 0-4.102-.78-5.666-2.345L64.07 28.714 47.103 45.679a7.986 7.986 0 01-5.663 2.346l.005-.001c-2.05 0-4.101-.78-5.666-2.345L13.162 23.062c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L41.44 28.714l16.966-16.966a7.986 7.986 0 015.662-2.346l-.005.002c2.05 0 4.102.78 5.666 2.344l16.966 16.966 16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L92.358 45.679a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
        },
        "$:/core/images/folder": {
            "title": "$:/core/images/folder",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-folder tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.694 128H8C3.58 128 0 124.414 0 119.996V48.004C0 43.584 3.584 40 7.999 40H16v-8c0-4.418 3.578-8 8-8h32a8 8 0 018 8v8h40.001c4.418 0 7.999 3.586 7.999 8.004V59.83l-8-.082v-7.749A4 4 0 0099.997 48H56V36c0-2.21-1.793-4-4.004-4H28.004A4 4 0 0024 36v12H12.003A4 4 0 008 52v64a4 4 0 004.003 4h46.76l-3.069 8z\"/><path d=\"M23.873 55.5h96.003c4.417 0 7.004 4.053 5.774 9.063l-13.344 54.374c-1.228 5.005-5.808 9.063-10.223 9.063H6.08c-4.417 0-7.003-4.053-5.774-9.063L13.65 64.563c1.228-5.005 5.808-9.063 10.223-9.063zm1.78 8.5h87.994c2.211 0 3.504 2.093 2.891 4.666l-11.12 46.668c-.614 2.577-2.902 4.666-5.115 4.666H12.31c-2.211 0-3.504-2.093-2.891-4.666l11.12-46.668C21.152 66.09 23.44 64 25.653 64z\"/></g></svg>"
        },
        "$:/core/images/full-screen-button": {
            "title": "$:/core/images/full-screen-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-full-screen-button tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M0 8a8 8 0 018-8h32a8 8 0 110 16H16v24a8 8 0 11-16 0V8zM128 120a8 8 0 01-8 8H88a8 8 0 110-16h24V88a8 8 0 1116 0v32zM8 128a8 8 0 01-8-8V88a8 8 0 1116 0v24h24a8 8 0 110 16H8zM120 0a8 8 0 018 8v32a8 8 0 11-16 0V16H88a8 8 0 110-16h32z\"/></svg>"
        },
        "$:/core/images/github": {
            "title": "$:/core/images/github",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-github tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M63.938 1.607c-35.336 0-63.994 28.69-63.994 64.084 0 28.312 18.336 52.329 43.768 60.802 3.202.59 4.37-1.388 4.37-3.088 0-1.518-.056-5.55-.087-10.897-17.802 3.871-21.558-8.591-21.558-8.591-2.911-7.404-7.108-9.375-7.108-9.375-5.81-3.973.44-3.895.44-3.895 6.424.453 9.803 6.606 9.803 6.606 5.709 9.791 14.981 6.963 18.627 5.322.582-4.138 2.236-6.963 4.063-8.564-14.211-1.617-29.153-7.117-29.153-31.672 0-6.995 2.495-12.718 6.589-17.195-.66-1.621-2.856-8.14.629-16.96 0 0 5.37-1.722 17.597 6.57 5.104-1.424 10.58-2.132 16.022-2.16 5.438.028 10.91.736 16.022 2.16 12.22-8.292 17.582-6.57 17.582-6.57 3.493 8.82 1.297 15.339.64 16.96 4.102 4.477 6.578 10.2 6.578 17.195 0 24.618-14.966 30.035-29.22 31.62 2.295 1.98 4.342 5.89 4.342 11.87 0 8.564-.079 15.476-.079 17.576 0 1.715 1.155 3.71 4.4 3.084 25.413-8.493 43.733-32.494 43.733-60.798 0-35.394-28.657-64.084-64.006-64.084\"/></svg>"
        },
        "$:/core/images/gitter": {
            "title": "$:/core/images/gitter",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-gitter tc-image-button\" viewBox=\"0 0 18 25\"><path d=\"M15 5h2v10h-2zM10 5h2v20h-2zM5 5h2v20H5zM0 0h2v15H0z\"/></svg>"
        },
        "$:/core/images/globe": {
            "title": "$:/core/images/globe",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-globe tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M72.811 37.128v2.554c0 2.196.978 6.881 0 8.832-1.466 2.928-4.65 3.54-6.394 5.867-1.182 1.577-4.618 10.601-3.69 12.92 3.969 9.922 11.534 3.187 17.962 9.293.864.821 2.887 2.273 3.296 3.296 3.29 8.223-7.576 15.009 3.757 26.3 1.245 1.24 3.813-3.817 4.079-4.614.852-2.563 6.725-5.45 9.088-7.053 2.02-1.37 4.873-2.667 6.328-4.745 2.27-3.244 1.48-7.514 3.098-10.745 2.139-4.274 3.828-9.635 5.998-13.966 3.898-7.781 4.721 2.093 5.067 2.439.358.357 1.011 0 1.517 0 .094 0 1.447.099 1.516 0 .65-.935-1.043-17.92-1.318-19.297-1.404-7.01-6.944-15.781-11.865-20.5-6.274-6.015-7.09-16.197-18.259-14.954-.204.022-5.084 10.148-7.777 13.512-3.728 4.657-2.47-4.153-6.526-4.153-.081 0-1.183-.103-1.253 0-.586.88-1.44 3.896-2.306 4.417-.265.16-1.722-.239-1.846 0-2.243 4.3 8.256 2.212 5.792 7.952-2.352 5.481-6.328-1.997-6.328 8.56M44.467 7.01c9.685 6.13.682 12.198 2.694 16.215 1.655 3.303 4.241 5.395 1.714 9.814-2.063 3.608-6.87 3.966-9.623 6.723-3.04 3.044-5.464 8.94-6.79 12.911-1.617 4.843 14.547 6.866 12.063 11.008-1.386 2.311-6.746 1.466-8.437.198-1.165-.873-3.593-.546-4.417-1.78-2.613-3.915-2.26-8.023-3.625-12.128-.938-2.822-6.313-2.12-7.844-.593-.523.522-.33 1.792-.33 2.505 0 5.285 7.12 3.316 7.12 6.46 0 14.636 3.927 6.534 11.14 11.336 10.036 6.683 7.844 7.303 14.946 14.404 3.673 3.673 7.741 3.686 9.425 9.294 1.602 5.331-9.327 5.339-11.716 7.448-1.123.991-2.813 4.146-4.219 4.615-1.792.598-3.234.496-4.944 1.78-2.427 1.82-3.9 4.932-4.02 4.81-2.148-2.147-3.52-15.479-3.89-18.257-.588-4.42-5.59-5.54-6.986-9.03-1.57-3.927 1.524-9.52-1.129-13.761-6.52-10.424-11.821-14.5-15.35-26.292-.942-3.148 3.342-6.529 4.877-8.833 1.877-2.816 2.662-5.854 4.746-8.635C22.147 24.19 40.855 9.461 43.857 8.635l.61-1.625z\"/><path d=\"M64 126c34.242 0 62-27.758 62-62 0-34.242-27.758-62-62-62C29.758 2 2 29.758 2 64c0 34.242 27.758 62 62 62zm0-6c30.928 0 56-25.072 56-56S94.928 8 64 8 8 33.072 8 64s25.072 56 56 56z\"/></g></svg>"
        },
        "$:/core/images/heading-1": {
            "title": "$:/core/images/heading-1",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-1 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M14 30h13.25v30.104H61.7V30h13.25v75.684H61.7V71.552H27.25v34.132H14V30zm70.335 13.78c2.544 0 5.017-.212 7.42-.636 2.403-.424 4.576-1.13 6.52-2.12 1.942-.99 3.603-2.261 4.981-3.816 1.378-1.555 2.28-3.463 2.703-5.724h9.858v74.2h-13.25V53.32H84.335v-9.54z\"/></svg>"
        },
        "$:/core/images/heading-2": {
            "title": "$:/core/images/heading-2",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-2 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm119.52 75.684H74.85c.07-6.148 1.555-11.519 4.452-16.112 2.897-4.593 6.855-8.586 11.872-11.978a133.725 133.725 0 017.526-5.141 59.6 59.6 0 007.208-5.353c2.19-1.908 3.993-3.975 5.406-6.201 1.413-2.226 2.155-4.788 2.226-7.685 0-1.343-.159-2.774-.477-4.293a11.357 11.357 0 00-1.855-4.24c-.919-1.307-2.19-2.403-3.816-3.286-1.625-.883-3.745-1.325-6.36-1.325-2.403 0-4.399.477-5.989 1.431-1.59.954-2.862 2.261-3.816 3.922-.954 1.66-1.66 3.622-2.12 5.883-.46 2.261-.724 4.7-.795 7.314H76.23c0-4.099.548-7.897 1.643-11.395 1.095-3.498 2.738-6.519 4.93-9.063 2.19-2.544 4.857-4.54 8.002-5.989C93.95 30.724 97.606 30 101.775 30c4.523 0 8.303.742 11.342 2.226 3.039 1.484 5.494 3.357 7.367 5.618 1.873 2.261 3.198 4.717 3.975 7.367.777 2.65 1.166 5.176 1.166 7.579 0 2.968-.46 5.653-1.378 8.056a25.942 25.942 0 01-3.71 6.625 37.5 37.5 0 01-5.3 5.565 79.468 79.468 0 01-6.148 4.77 165.627 165.627 0 01-6.36 4.24 94.28 94.28 0 00-5.883 4.028c-1.802 1.343-3.374 2.738-4.717 4.187-1.343 1.449-2.261 2.986-2.756 4.611h36.146v10.812z\"/></svg>"
        },
        "$:/core/images/heading-3": {
            "title": "$:/core/images/heading-3",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-3 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm88.885 32.224c1.979.07 3.957-.07 5.936-.424 1.979-.353 3.745-.972 5.3-1.855a10.365 10.365 0 003.763-3.657c.954-1.555 1.431-3.463 1.431-5.724 0-3.18-1.078-5.724-3.233-7.632-2.155-1.908-4.929-2.862-8.32-2.862-2.12 0-3.958.424-5.513 1.272a11.318 11.318 0 00-3.869 3.445c-1.025 1.449-1.784 3.074-2.279 4.876a18.335 18.335 0 00-.636 5.565H75.381c.141-3.604.813-6.943 2.014-10.017 1.201-3.074 2.844-5.742 4.93-8.003 2.084-2.261 4.61-4.028 7.578-5.3C92.871 30.636 96.228 30 99.973 30a29.2 29.2 0 018.533 1.272c2.791.848 5.3 2.085 7.526 3.71s4.01 3.692 5.353 6.201c1.343 2.509 2.014 5.388 2.014 8.639 0 3.745-.848 7.014-2.544 9.805-1.696 2.791-4.346 4.823-7.95 6.095v.212c4.24.848 7.544 2.95 9.911 6.307s3.551 7.438 3.551 12.243c0 3.533-.707 6.696-2.12 9.487a21.538 21.538 0 01-5.724 7.102c-2.403 1.943-5.194 3.445-8.374 4.505-3.18 1.06-6.537 1.59-10.07 1.59-4.31 0-8.074-.618-11.289-1.855s-5.9-2.986-8.056-5.247c-2.155-2.261-3.798-4.982-4.929-8.162-1.13-3.18-1.731-6.713-1.802-10.6h12.084c-.141 4.523.972 8.286 3.34 11.289 2.366 3.003 5.917 4.505 10.652 4.505 4.028 0 7.402-1.148 10.123-3.445 2.72-2.297 4.081-5.565 4.081-9.805 0-2.897-.565-5.194-1.696-6.89a10.97 10.97 0 00-4.452-3.869c-1.837-.883-3.904-1.431-6.2-1.643a58.067 58.067 0 00-7.05-.212v-9.01z\"/></svg>"
        },
        "$:/core/images/heading-4": {
            "title": "$:/core/images/heading-4",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-4 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8 30h13.25v30.104H55.7V30h13.25v75.684H55.7V71.552H21.25v34.132H8V30zm76.59 48.548h22.471V45.9h-.212L84.59 78.548zm43.46 9.54h-9.54v17.596H107.06V88.088h-31.8V76.11l31.8-44.626h11.448v47.064h9.54v9.54z\"/></svg>"
        },
        "$:/core/images/heading-5": {
            "title": "$:/core/images/heading-5",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-5 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm77.755 1.484h38.372v10.812H92.765L88.95 61.164l.212.212c1.625-1.837 3.692-3.233 6.201-4.187 2.509-.954 5-1.431 7.473-1.431 3.675 0 6.96.618 9.858 1.855 2.897 1.237 5.335 2.968 7.314 5.194s3.48 4.858 4.505 7.897c1.025 3.039 1.537 6.325 1.537 9.858 0 2.968-.477 6.024-1.43 9.169a25.161 25.161 0 01-4.559 8.586c-2.085 2.58-4.752 4.7-8.003 6.36-3.25 1.66-7.137 2.491-11.66 2.491-3.604 0-6.943-.477-10.017-1.431-3.074-.954-5.777-2.385-8.109-4.293-2.332-1.908-4.187-4.258-5.565-7.049-1.378-2.791-2.138-6.06-2.279-9.805h12.084c.353 4.028 1.731 7.12 4.134 9.275 2.403 2.155 5.583 3.233 9.54 3.233 2.544 0 4.7-.424 6.466-1.272 1.767-.848 3.198-2.014 4.293-3.498 1.095-1.484 1.873-3.215 2.332-5.194.46-1.979.69-4.099.69-6.36 0-2.05-.284-4.01-.849-5.883-.565-1.873-1.413-3.516-2.544-4.929-1.13-1.413-2.597-2.544-4.399-3.392-1.802-.848-3.904-1.272-6.307-1.272-2.544 0-4.929.477-7.155 1.431-2.226.954-3.834 2.738-4.823 5.353H75.805l7.95-40.598z\"/></svg>"
        },
        "$:/core/images/heading-6": {
            "title": "$:/core/images/heading-6",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-6 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm106.587 20.246c-.283-3.039-1.36-5.494-3.233-7.367-1.873-1.873-4.399-2.809-7.579-2.809-2.19 0-4.08.406-5.67 1.219a12.435 12.435 0 00-4.029 3.233c-1.095 1.343-1.979 2.88-2.65 4.611a37.696 37.696 0 00-1.643 5.459 46.08 46.08 0 00-.9 5.671 722.213 722.213 0 00-.478 5.247l.212.212c1.625-2.968 3.87-5.176 6.731-6.625 2.862-1.449 5.954-2.173 9.275-2.173 3.675 0 6.96.636 9.858 1.908 2.897 1.272 5.353 3.021 7.367 5.247 2.014 2.226 3.551 4.858 4.611 7.897 1.06 3.039 1.59 6.325 1.59 9.858 0 3.604-.583 6.943-1.749 10.017-1.166 3.074-2.844 5.76-5.035 8.056-2.19 2.297-4.805 4.081-7.844 5.353-3.039 1.272-6.395 1.908-10.07 1.908-5.441 0-9.91-1.007-13.409-3.021-3.498-2.014-6.254-4.77-8.268-8.268-2.014-3.498-3.41-7.597-4.187-12.296-.777-4.7-1.166-9.77-1.166-15.211 0-4.452.477-8.94 1.431-13.462.954-4.523 2.526-8.639 4.717-12.349 2.19-3.71 5.07-6.731 8.64-9.063C92.676 31.166 97.075 30 102.304 30c2.968 0 5.76.495 8.374 1.484 2.615.99 4.93 2.367 6.943 4.134 2.014 1.767 3.657 3.887 4.93 6.36 1.271 2.473 1.978 5.23 2.12 8.268h-12.085zm-11.66 46.852c2.19 0 4.099-.442 5.724-1.325a12.869 12.869 0 004.081-3.445c1.095-1.413 1.908-3.056 2.438-4.929.53-1.873.795-3.798.795-5.777s-.265-3.887-.795-5.724c-.53-1.837-1.343-3.445-2.438-4.823-1.095-1.378-2.456-2.491-4.08-3.339-1.626-.848-3.534-1.272-5.725-1.272-2.19 0-4.116.406-5.777 1.219-1.66.813-3.056 1.908-4.187 3.286-1.13 1.378-1.979 2.986-2.544 4.823-.565 1.837-.848 3.78-.848 5.83 0 2.05.283 3.993.848 5.83.565 1.837 1.413 3.48 2.544 4.929a12.39 12.39 0 004.187 3.445c1.66.848 3.586 1.272 5.777 1.272z\"/></svg>"
        },
        "$:/core/images/help": {
            "title": "$:/core/images/help",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-help tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M36.055 111.441c-5.24 4.396-15.168 7.362-26.555 7.362-1.635 0-3.24-.06-4.806-.179 7.919-2.64 14.062-8.6 16.367-16.014C8.747 92.845 1.05 78.936 1.05 63.5c0-29.547 28.206-53.5 63-53.5s63 23.953 63 53.5-28.206 53.5-63 53.5c-10.055 0-19.56-2-27.994-5.559zm35.35-33.843a536.471 536.471 0 00.018-4.682 199.02 199.02 0 00-.023-3.042c.008-1.357.595-2.087 3.727-4.235.112-.077 1.085-.74 1.386-.948 3.093-2.133 5.022-3.786 6.762-6.187 2.34-3.228 3.558-7.077 3.558-11.649 0-13.292-9.86-21.952-21.455-21.952-11.103 0-22.499 9.609-24.066 22.295a6.023 6.023 0 1011.956 1.477c.806-6.527 6.972-11.726 12.11-11.726 5.265 0 9.408 3.64 9.408 9.906 0 3.634-1.1 5.153-5.111 7.919l-1.362.93c-2.682 1.84-4.227 3.1-5.7 4.931-2.109 2.62-3.242 5.717-3.258 9.314.013.892.02 1.86.022 2.981a470.766 470.766 0 01-.022 4.943 6.023 6.023 0 1012.046.12l.003-.395zm-6.027 24.499a7.529 7.529 0 100-15.058 7.529 7.529 0 000 15.058z\"/></svg>"
        },
        "$:/core/images/home-button": {
            "title": "$:/core/images/home-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-home-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M112.985 119.502c.01-.165.015-.331.015-.499V67.568c3.137 2.948 8.076 2.884 11.134-.174a7.999 7.999 0 00-.002-11.316L70.396 2.343A7.978 7.978 0 0064.734 0a7.957 7.957 0 00-5.656 2.343L33 28.42V8.007C33 3.585 29.41 0 25 0c-4.418 0-8 3.59-8 8.007V44.42L5.342 56.078c-3.125 3.125-3.12 8.198-.002 11.316a7.999 7.999 0 0011.316-.003l.344-.343v52.945a8.11 8.11 0 000 .007c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8a8.11 8.11 0 00-.015-.498zM97 112V51.574L64.737 19.31 33 51.048V112h64z\"/></svg>"
        },
        "$:/core/images/import-button": {
            "title": "$:/core/images/import-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-import-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M114.832 60.436s3.235-3.27 6.921.417c3.686 3.686.231 7.14.231 7.14l-42.153 42.92s-30.765 32.367-58.798 4.333C-7 87.213 24.59 55.623 24.59 55.623L67.363 12.85s22.725-24.6 43.587-3.738c20.862 20.862-3.96 43.09-3.96 43.09l-35.04 35.04S49.903 112.546 36.426 99.07c-13.476-13.477 11.83-35.523 11.83-35.523l35.04-35.04s3.902-3.902 7.78-.023c3.879 3.878.118 7.921.118 7.921l-35.04 35.04s-13.212 13.212-8.872 17.551c4.34 4.34 16.77-9.653 16.77-9.653l35.04-35.04s16.668-14.598 3.966-27.3c-13.893-13.892-27.565 3.702-27.565 3.702l-42.91 42.91s-23.698 23.698-3.658 43.738 43.012-4.385 43.012-4.385l42.895-42.533z\"/></svg>"
        },
        "$:/core/images/info-button": {
            "title": "$:/core/images/info-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-info-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\" transform=\"translate(.05)\"><path d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48z\"/><circle cx=\"64\" cy=\"32\" r=\"8\"/><rect width=\"16\" height=\"56\" x=\"56\" y=\"48\" rx=\"8\"/></g></svg>"
        },
        "$:/core/images/italic": {
            "title": "$:/core/images/italic",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-italic tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M66.711 0h22.41L62.408 128H40z\"/></svg>"
        },
        "$:/core/images/left-arrow": {
            "title": "$:/core/images/left-arrow",
            "created": "20150315234410875",
            "modified": "20150315235324760",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-left-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M0 64.177c0-2.026.771-4.054 2.317-5.6l55.98-55.98a7.92 7.92 0 0111.195.001c3.086 3.085 3.092 8.104.001 11.195L19.111 64.175l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.086-8.105 3.092-11.196.001l-55.98-55.98A7.892 7.892 0 010 64.177z\"/></svg>"
        },
        "$:/core/images/line-width": {
            "title": "$:/core/images/line-width",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-line-width tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M16 18h96a2 2 0 000-4H16a2 2 0 100 4zm0 17h96a4 4 0 100-8H16a4 4 0 100 8zm0 21h96a6 6 0 000-12H16a6 6 0 100 12zm0 29h96c5.523 0 10-4.477 10-10s-4.477-10-10-10H16c-5.523 0-10 4.477-10 10s4.477 10 10 10zm0 43h96c8.837 0 16-7.163 16-16s-7.163-16-16-16H16c-8.837 0-16 7.163-16 16s7.163 16 16 16z\"/></svg>"
        },
        "$:/core/images/link": {
            "title": "$:/core/images/link",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-link tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M42.263 69.38a31.919 31.919 0 006.841 10.13c12.5 12.5 32.758 12.496 45.255 0l22.627-22.628c12.502-12.501 12.497-32.758 0-45.255-12.5-12.5-32.758-12.496-45.254 0L49.104 34.255a32.333 32.333 0 00-2.666 3.019 36.156 36.156 0 0121.94.334l14.663-14.663c6.25-6.25 16.382-6.254 22.632-.004 6.248 6.249 6.254 16.373-.004 22.631l-22.62 22.62c-6.25 6.25-16.381 6.254-22.631.004a15.93 15.93 0 01-4.428-8.433 11.948 11.948 0 00-7.59 3.48l-6.137 6.137z\"/><path d=\"M86.35 59.234a31.919 31.919 0 00-6.84-10.13c-12.5-12.5-32.758-12.497-45.255 0L11.627 71.732c-12.501 12.5-12.496 32.758 0 45.254 12.5 12.5 32.758 12.497 45.255 0L79.51 94.36a32.333 32.333 0 002.665-3.02 36.156 36.156 0 01-21.94-.333l-14.663 14.663c-6.25 6.25-16.381 6.253-22.63.004-6.25-6.249-6.255-16.374.003-22.632l22.62-22.62c6.25-6.25 16.381-6.253 22.631-.003a15.93 15.93 0 014.428 8.432 11.948 11.948 0 007.59-3.48l6.137-6.136z\"/></g></svg>"
        },
        "$:/core/images/linkify": {
            "title": "$:/core/images/linkify",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-linkify-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M17.031 31.919H9.048V96.85h7.983v6.92H0V25h17.031v6.919zm24.66 0h-7.983V96.85h7.983v6.92H24.66V25h17.03v6.919zM67.77 56.422l11.975-3.903 2.306 7.096-12.063 3.903 7.628 10.379-6.12 4.435-7.63-10.467-7.45 10.2-5.943-4.523L58.1 63.518 45.95 59.35l2.306-7.096 12.064 4.17V43.825h7.45v12.596zM86.31 96.85h7.982V31.92H86.31V25h17.031v78.77H86.31v-6.92zm24.659 0h7.983V31.92h-7.983V25H128v78.77h-17.031v-6.92z\"/></svg>"
        },
        "$:/core/images/list-bullet": {
            "title": "$:/core/images/list-bullet",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list-bullet tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M11.636 40.273c6.427 0 11.637-5.21 11.637-11.637C23.273 22.21 18.063 17 11.636 17 5.21 17 0 22.21 0 28.636c0 6.427 5.21 11.637 11.636 11.637zm0 34.909c6.427 0 11.637-5.21 11.637-11.637 0-6.426-5.21-11.636-11.637-11.636C5.21 51.91 0 57.12 0 63.545c0 6.427 5.21 11.637 11.636 11.637zm0 34.909c6.427 0 11.637-5.21 11.637-11.636 0-6.427-5.21-11.637-11.637-11.637C5.21 86.818 0 92.028 0 98.455c0 6.426 5.21 11.636 11.636 11.636zM34.91 22.818H128v11.637H34.91V22.818zm0 34.91H128v11.636H34.91V57.727zm0 34.908H128v11.637H34.91V92.636z\"/></svg>"
        },
        "$:/core/images/list-number": {
            "title": "$:/core/images/list-number",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list-number tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M33.84 22.356H128v11.77H33.84v-11.77zm0 35.31H128v11.77H33.84v-11.77zm0 35.311H128v11.77H33.84v-11.77zM.38 42.631v-2.223h.998c.826 0 1.445-.14 1.858-.42.413-.28.619-.948.619-2.002V22.769c0-1.442-.193-2.336-.58-2.683-.385-.347-1.477-.52-3.275-.52v-2.143c3.502-.147 6.252-.955 8.25-2.423h2.117v22.865c0 .921.15 1.575.449 1.963.3.387.949.58 1.948.58h.998v2.223H.38zm-.3 35.356v-1.902c7.19-6.554 10.786-12.58 10.786-18.08 0-1.562-.326-2.81-.979-3.744-.652-.934-1.524-1.402-2.616-1.402-.893 0-1.655.317-2.287.952-.633.634-.95 1.364-.95 2.192 0 .974.247 1.829.74 2.563.106.16.16.28.16.36 0 .147-.16.28-.48.4-.213.08-.752.308-1.618.681-.839.374-1.358.561-1.558.561-.24 0-.512-.37-.819-1.111A6.2 6.2 0 010 57.064c0-1.949.849-3.544 2.547-4.785 1.698-1.242 3.798-1.862 6.302-1.862 2.463 0 4.53.67 6.202 2.012 1.67 1.341 2.506 3.093 2.506 5.256a8.644 8.644 0 01-.849 3.724c-.566 1.201-1.92 3.053-4.064 5.556a165.471 165.471 0 01-6.272 6.938h11.445l-1.019 5.726h-2.117c.08-.28.12-.534.12-.76 0-.388-.1-.631-.3-.731-.2-.1-.599-.15-1.198-.15H.08zm12.124 19.207c1.745.04 3.236.637 4.474 1.792 1.239 1.154 1.858 2.773 1.858 4.855 0 2.99-1.132 5.393-3.396 7.208-2.263 1.815-5 2.723-8.209 2.723-2.01 0-3.669-.384-4.974-1.151C.652 111.853 0 110.849 0 109.607c0-.774.27-1.398.809-1.872.54-.474 1.128-.71 1.768-.71.639 0 1.162.2 1.568.6.406.4.782 1.055 1.128 1.962.466 1.268 1.239 1.902 2.317 1.902 1.265 0 2.287-.477 3.066-1.431.78-.955 1.169-2.686 1.169-5.196 0-1.709-.12-3.023-.36-3.944-.24-.921-.792-1.382-1.658-1.382-.586 0-1.185.307-1.797.921-.493.494-.932.741-1.319.741-.333 0-.602-.147-.809-.44-.206-.294-.31-.574-.31-.841 0-.32.104-.594.31-.821.207-.227.69-.594 1.449-1.102 2.876-1.922 4.314-4.017 4.314-6.287 0-1.188-.306-2.092-.919-2.713a3.001 3.001 0 00-2.217-.93c-.799 0-1.525.263-2.177.79-.653.528-.979 1.158-.979 1.892 0 .641.253 1.235.76 1.782.172.2.259.367.259.5 0 .121-.57.428-1.708.922-1.139.494-1.854.74-2.147.74-.413 0-.75-.333-1.009-1-.26-.668-.39-1.282-.39-1.842 0-1.749.93-3.224 2.787-4.425 1.858-1.202 3.965-1.802 6.322-1.802 2.064 0 3.851.447 5.363 1.341 1.511.895 2.267 2.116 2.267 3.664 0 1.362-.57 2.623-1.708 3.784a13.387 13.387 0 01-3.945 2.784z\"/></svg>"
        },
        "$:/core/images/list": {
            "title": "$:/core/images/list",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M87.748 128H23.999c-4.418 0-7.999-3.59-7.999-8.007V8.007C16 3.585 19.588 0 24 0h80c4.419 0 8 3.59 8 8.007V104H91.25c-.965 0-1.84.392-2.473 1.025a3.476 3.476 0 00-1.029 2.476V128zm8-.12l15.88-15.88h-15.88v15.88zM40 15.508A3.502 3.502 0 0143.5 12h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 20h-55a3.498 3.498 0 01-3.5-3.509v-.982zM32 22a6 6 0 100-12 6 6 0 000 12zm8 9.509A3.502 3.502 0 0143.5 28h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 36h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 44h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 52h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 60h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 68h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 76h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 84h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 92h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 100h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.505 3.505 0 0143.497 108h33.006A3.497 3.497 0 0180 111.509v.982A3.505 3.505 0 0176.503 116H43.497A3.497 3.497 0 0140 112.491v-.982zM32 38a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12z\"/></svg>"
        },
        "$:/core/images/locked-padlock": {
            "title": "$:/core/images/locked-padlock",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-locked-padlock tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M96.472 64H105v32.01C105 113.674 90.674 128 73.001 128H56C38.318 128 24 113.677 24 96.01V64h8c.003-15.723.303-47.731 32.16-47.731 31.794 0 32.305 32.057 32.312 47.731zm-15.897 0H48.44c.002-16.287.142-32 15.719-32 15.684 0 16.977 16.136 16.415 32zM67.732 92.364A8.503 8.503 0 0064.5 76a8.5 8.5 0 00-3.498 16.25l-5.095 22.77H72.8l-5.07-22.656z\"/></svg>"
        },
        "$:/core/images/mail": {
            "title": "$:/core/images/mail",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mail tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M122.827 104.894a7.986 7.986 0 01-2.834.516H8.007c-.812 0-1.597-.12-2.335-.345l34.163-34.163 20.842 20.842a3.998 3.998 0 003.418 1.134 4.003 4.003 0 003.395-1.134L88.594 70.64c.075.09.155.176.24.26l33.993 33.994zm5.076-6.237c.064-.406.097-.823.097-1.247v-64c0-.669-.082-1.318-.237-1.94L94.23 65.006c.09.075.177.154.261.239l33.413 33.413zm-127.698.56A8.023 8.023 0 010 97.41v-64c0-.716.094-1.41.271-2.071l33.907 33.906L.205 99.218zM5.93 25.684a8.012 8.012 0 012.078-.273h111.986c.766 0 1.507.108 2.209.308L64.083 83.837 5.93 25.683z\"/></svg>"
        },
        "$:/core/images/menu-button": {
            "title": "$:/core/images/menu-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-menu-button tc-image-button\" viewBox=\"0 0 128 128\"><rect width=\"128\" height=\"16\" y=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"56\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"96\" rx=\"8\"/></svg>"
        },
        "$:/core/images/mono-block": {
            "title": "$:/core/images/mono-block",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mono-block tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M23.965 32.967h.357c.755 0 1.328.192 1.72.577.39.384.586.947.586 1.688 0 .824-.206 1.418-.618 1.782-.413.363-1.094.545-2.045.545h-6.31c-.965 0-1.65-.178-2.056-.535-.405-.356-.608-.954-.608-1.792 0-.811.203-1.391.608-1.74.406-.35 1.09-.525 2.055-.525h.734l-.86-2.453H8.471l-.902 2.453h.734c.95 0 1.632.178 2.044.535.413.356.619.933.619 1.73 0 .824-.206 1.418-.619 1.782-.412.363-1.094.545-2.044.545h-5.41c-.964 0-1.649-.182-2.054-.545-.406-.364-.608-.958-.608-1.782 0-.741.195-1.304.587-1.688.391-.385.964-.577 1.719-.577h.356l5.62-15.641H6.835c-.95 0-1.632-.182-2.044-.546-.412-.363-.619-.95-.619-1.76 0-.825.207-1.42.619-1.783.412-.363 1.094-.545 2.044-.545h7.863c1.244 0 2.118.67 2.62 2.013v.063l6.647 18.2zM12.98 17.326l-3.04 8.848h6.08l-3.04-8.848zm22.402 9.372v6.395h3.145c2.223 0 3.788-.245 4.697-.734.908-.49 1.362-1.307 1.362-2.453 0-1.16-.433-1.985-1.3-2.474-.866-.49-2.383-.734-4.55-.734h-3.354zm10.693-2.327c1.524.559 2.642 1.324 3.355 2.295.713.972 1.07 2.212 1.07 3.722 0 1.272-.308 2.432-.923 3.48-.615 1.049-1.496 1.909-2.642 2.58a7.499 7.499 0 01-2.254.849c-.832.174-2.01.262-3.533.262H30.202c-.922 0-1.583-.182-1.981-.545-.399-.364-.598-.958-.598-1.782 0-.741.189-1.304.566-1.688.378-.385.93-.577 1.657-.577h.356V17.326h-.356c-.727 0-1.28-.196-1.657-.587-.377-.392-.566-.965-.566-1.72 0-.81.203-1.401.608-1.771.406-.37 1.062-.556 1.971-.556h9.645c2.95 0 5.19.573 6.72 1.72 1.53 1.145 2.296 2.823 2.296 5.031 0 1.09-.234 2.052-.703 2.883-.468.832-1.163 1.513-2.086 2.045zM35.381 17.2v5.284h2.83c1.72 0 2.932-.203 3.638-.609.706-.405 1.06-1.09 1.06-2.054 0-.909-.319-1.573-.955-1.992-.636-.42-1.667-.63-3.093-.63h-3.48zm35.863-3.816c.28-.503.566-.86.86-1.07.293-.21.664-.314 1.111-.314.685 0 1.17.182 1.457.545.287.364.43.986.43 1.866l.042 5.452c0 .964-.157 1.614-.472 1.95-.314.335-.884.503-1.709.503-.587 0-1.037-.14-1.352-.42-.314-.28-.584-.796-.807-1.551-.364-1.328-.944-2.282-1.74-2.862-.797-.58-1.901-.87-3.313-.87-2.153 0-3.802.727-4.948 2.18-1.147 1.454-1.72 3.558-1.72 6.311 0 2.74.58 4.844 1.74 6.311 1.16 1.468 2.817 2.202 4.97 2.202 1.467 0 3.085-.49 4.854-1.468 1.768-.978 2.883-1.467 3.344-1.467.545 0 1.003.23 1.373.692.37.46.556 1.034.556 1.719 0 1.23-1.084 2.39-3.25 3.48-2.167 1.09-4.606 1.636-7.318 1.636-3.662 0-6.625-1.21-8.89-3.627-2.264-2.419-3.396-5.578-3.396-9.478 0-3.76 1.146-6.884 3.438-9.372 2.293-2.488 5.2-3.732 8.723-3.732.992 0 1.97.112 2.935.335.964.224 1.992.574 3.082 1.049zm10.22 19.583V17.326h-.356c-.755 0-1.328-.196-1.72-.587-.39-.392-.586-.965-.586-1.72 0-.81.21-1.401.629-1.771.42-.37 1.097-.556 2.034-.556h5.178c2.922 0 5.06.126 6.416.377 1.356.252 2.51.671 3.46 1.258 1.691 1.007 2.988 2.443 3.89 4.31.9 1.865 1.352 4.021 1.352 6.467 0 2.586-.514 4.847-1.541 6.783-1.028 1.936-2.485 3.4-4.372 4.393-.853.447-1.852.772-2.998.975-1.147.203-2.852.304-5.116.304h-6.269c-.965 0-1.65-.178-2.055-.535-.406-.356-.608-.954-.608-1.792 0-.741.195-1.304.587-1.688.391-.385.964-.577 1.72-.577h.356zm5.41-15.725v15.725h1.195c2.642 0 4.592-.646 5.85-1.94 1.258-1.292 1.887-3.28 1.887-5.965 0-2.641-.64-4.612-1.918-5.912-1.28-1.3-3.205-1.95-5.777-1.95-.335 0-.59.003-.765.01a7.992 7.992 0 00-.472.032zm35.067-.126h-9.75v5.368h3.69v-.252c0-.797.175-1.39.524-1.782.35-.392.88-.587 1.594-.587.629 0 1.142.178 1.54.534.4.357.598.808.598 1.353 0 .028.007.118.021.272.014.154.021.308.021.462v4.34c0 .936-.167 1.607-.503 2.013-.335.405-.88.608-1.635.608-.713 0-1.251-.19-1.615-.567-.363-.377-.545-.936-.545-1.677v-.377h-3.69v6.269h9.75v-2.495c0-.937.178-1.608.534-2.013.357-.405.94-.608 1.75-.608.798 0 1.367.2 1.71.597.342.399.513 1.073.513 2.024v5.074c0 .755-.146 1.258-.44 1.51-.293.251-.873.377-1.74.377h-17.172c-.923 0-1.583-.182-1.982-.545-.398-.364-.597-.958-.597-1.782 0-.741.189-1.304.566-1.688.377-.385.93-.577 1.656-.577h.357V17.326h-.357c-.712 0-1.261-.2-1.646-.598-.384-.398-.576-.968-.576-1.709 0-.81.203-1.401.608-1.771.405-.37 1.062-.556 1.97-.556h17.173c.853 0 1.43.13 1.73.388.3.258.45.772.45 1.54v4.698c0 .95-.174 1.631-.524 2.044-.35.412-.915.618-1.698.618-.81 0-1.394-.21-1.75-.629-.357-.419-.535-1.097-.535-2.033v-2.202zM19.77 47.641c.267-.504.55-.86.85-1.07.3-.21.675-.314 1.122-.314.685 0 1.17.181 1.457.545.287.363.43.985.43 1.866l.042 5.451c0 .965-.157 1.615-.472 1.95-.314.336-.891.504-1.73.504-.587 0-1.045-.144-1.373-.43-.329-.287-.598-.8-.807-1.541-.378-1.342-.958-2.3-1.74-2.873-.783-.573-1.88-.86-3.292-.86-2.153 0-3.799.727-4.938 2.181-1.14 1.454-1.709 3.557-1.709 6.311s.598 4.882 1.793 6.385C10.599 67.248 12.294 68 14.488 68c.503 0 1.077-.06 1.72-.179a23.809 23.809 0 002.264-.555v-3.313h-2.37c-.95 0-1.624-.175-2.023-.524-.398-.35-.597-.93-.597-1.74 0-.84.199-1.437.597-1.793.399-.357 1.073-.535 2.024-.535h7.569c.978 0 1.667.175 2.065.524.398.35.598.937.598 1.762 0 .74-.2 1.31-.598 1.708-.398.399-.975.598-1.73.598h-.335v5.242c0 .447-.05.758-.147.933-.098.174-.293.353-.587.534-.797.476-2.062.895-3.795 1.258a25.576 25.576 0 01-5.263.546c-3.662 0-6.625-1.21-8.89-3.628-2.264-2.418-3.397-5.577-3.397-9.477 0-3.76 1.147-6.884 3.44-9.372 2.292-2.488 5.199-3.732 8.721-3.732.979 0 1.954.112 2.925.335.972.224 2.003.573 3.093 1.049zm15.84 3.941v4.823h6.857v-4.823h-.336c-.754 0-1.331-.195-1.73-.587-.398-.391-.597-.964-.597-1.719 0-.825.206-1.419.619-1.782.412-.364 1.093-.545 2.044-.545h5.41c.95 0 1.624.181 2.023.545.398.363.597.957.597 1.782 0 .755-.192 1.328-.576 1.72-.385.39-.947.586-1.688.586h-.357v15.642h.357c.755 0 1.328.192 1.719.576.391.385.587.947.587 1.688 0 .825-.203 1.419-.608 1.782-.405.364-1.09.546-2.055.546h-5.41c-.964 0-1.649-.179-2.054-.535-.405-.357-.608-.954-.608-1.793 0-.74.2-1.303.598-1.688.398-.384.975-.576 1.73-.576h.335v-6.186h-6.856v6.186h.335c.755 0 1.331.192 1.73.576.398.385.597.947.597 1.688 0 .825-.206 1.419-.618 1.782-.412.364-1.094.546-2.044.546h-5.41c-.964 0-1.65-.179-2.055-.535-.405-.357-.608-.954-.608-1.793 0-.74.196-1.303.587-1.688.392-.384.965-.576 1.72-.576h.356V51.582h-.356c-.741 0-1.304-.195-1.688-.587-.385-.391-.577-.964-.577-1.719 0-.825.2-1.419.598-1.782.398-.364 1.073-.545 2.023-.545h5.41c.936 0 1.614.181 2.033.545.42.363.63.957.63 1.782 0 .755-.2 1.328-.598 1.72-.399.39-.975.586-1.73.586h-.335zm31.754 0v15.642h3.523c.95 0 1.632.178 2.044.534.412.357.618.933.618 1.73 0 .811-.21 1.402-.629 1.772-.419.37-1.097.556-2.033.556H58.433c-.95 0-1.632-.182-2.044-.546-.412-.363-.619-.957-.619-1.782 0-.81.203-1.39.608-1.74.406-.35 1.09-.524 2.055-.524h3.523V51.582h-3.523c-.95 0-1.632-.181-2.044-.545-.412-.363-.619-.95-.619-1.761 0-.825.203-1.412.608-1.761.406-.35 1.09-.524 2.055-.524h12.455c.992 0 1.684.174 2.075.524.392.35.587.936.587 1.761 0 .81-.202 1.398-.608 1.761-.405.364-1.09.545-2.054.545h-3.523zm30.496 0v11.994c0 1.873-.122 3.228-.367 4.067a5.876 5.876 0 01-1.227 2.244c-.74.852-1.768 1.495-3.082 1.929-1.314.433-2.893.65-4.738.65-1.3 0-2.555-.126-3.764-.378a16.843 16.843 0 01-3.491-1.132c-.615-.28-1.017-.643-1.206-1.09-.188-.448-.283-1.175-.283-2.18v-4.32c0-1.202.175-2.04.525-2.516.349-.475.957-.713 1.824-.713 1.244 0 1.929.915 2.054 2.747.014.321.035.566.063.733.168 1.622.545 2.73 1.133 3.324.587.594 1.523.89 2.81.89 1.593 0 2.714-.422 3.364-1.268.65-.845.975-2.386.975-4.623V51.582H88.93c-.95 0-1.632-.181-2.044-.545-.413-.363-.619-.95-.619-1.761 0-.825.2-1.412.598-1.761.398-.35 1.086-.524 2.065-.524h10.693c.979 0 1.667.174 2.065.524.399.35.598.936.598 1.761 0 .81-.206 1.398-.619 1.761-.412.364-1.093.545-2.044.545h-1.761zm14.644 0v6.353l6.48-6.478c-.728-.084-1.238-.29-1.531-.619-.294-.328-.44-.85-.44-1.562 0-.825.198-1.419.597-1.782.398-.364 1.073-.545 2.023-.545h5.137c.95 0 1.625.181 2.023.545.399.363.598.957.598 1.782 0 .769-.2 1.345-.598 1.73-.398.384-.982.576-1.75.576h-.483l-6.101 6.06c1.132.839 2.167 1.94 3.103 3.302.937 1.363 2.034 3.456 3.292 6.28h.692c.825 0 1.44.188 1.845.566.405.377.608.943.608 1.698 0 .825-.206 1.419-.619 1.782-.412.364-1.093.546-2.044.546h-2.579c-1.132 0-2.048-.762-2.746-2.286-.126-.28-.224-.503-.294-.67-.923-1.958-1.768-3.467-2.537-4.53a16.616 16.616 0 00-2.705-2.914l-1.97 1.887v3.92h.335c.755 0 1.331.193 1.73.577.398.385.597.947.597 1.688 0 .825-.206 1.419-.618 1.782-.413.364-1.094.546-2.045.546h-5.41c-.964 0-1.649-.179-2.054-.535-.405-.357-.608-.954-.608-1.793 0-.74.196-1.303.587-1.688.391-.384.965-.576 1.72-.576h.356V51.582h-.357c-.74 0-1.303-.195-1.687-.587-.385-.391-.577-.964-.577-1.719 0-.825.2-1.419.598-1.782.398-.364 1.072-.545 2.023-.545h5.41c.936 0 1.614.181 2.033.545.42.363.63.957.63 1.782 0 .755-.2 1.328-.598 1.72-.399.39-.975.586-1.73.586h-.336zM13.44 96.326l4.005-11.889c.251-.782.6-1.352 1.048-1.709.447-.356 1.041-.534 1.782-.534h3.271c.95 0 1.632.182 2.044.545.413.363.619.957.619 1.782 0 .755-.2 1.328-.598 1.72-.398.39-.975.587-1.73.587h-.335l.587 15.641h.357c.754 0 1.32.192 1.698.577.377.384.566.947.566 1.687 0 .825-.2 1.42-.598 1.783-.398.363-1.072.545-2.023.545h-4.718c-.95 0-1.624-.178-2.023-.535-.398-.356-.597-.954-.597-1.793 0-.74.192-1.303.576-1.687.385-.385.954-.577 1.709-.577h.335l-.293-12.79-3.061 9.52c-.224.712-.542 1.226-.954 1.54-.413.315-.982.472-1.709.472-.727 0-1.303-.157-1.73-.472-.426-.314-.751-.828-.975-1.54l-3.04-9.52-.294 12.79h.336c.755 0 1.324.192 1.709.577.384.384.576.947.576 1.687 0 .825-.202 1.42-.608 1.783-.405.363-1.076.545-2.013.545H2.621c-.937 0-1.608-.182-2.013-.545-.405-.364-.608-.958-.608-1.783 0-.74.192-1.303.577-1.687.384-.385.954-.577 1.708-.577h.336l.608-15.641h-.336c-.754 0-1.331-.196-1.73-.588-.398-.39-.597-.964-.597-1.719 0-.825.206-1.419.619-1.782.412-.363 1.093-.545 2.044-.545h3.27c.728 0 1.311.175 1.752.524.44.35.8.923 1.08 1.72l4.109 11.888zm30.454 2.054V86.828H42.74c-.922 0-1.583-.182-1.981-.546-.398-.363-.598-.95-.598-1.76 0-.812.2-1.402.598-1.773.398-.37 1.059-.555 1.981-.555h5.955c.909 0 1.566.185 1.97.555.406.37.609.961.609 1.772 0 .741-.192 1.31-.577 1.709-.384.398-.933.598-1.646.598h-.356v19.038c0 .657-.07 1.069-.21 1.237-.14.167-.454.251-.943.251h-2.097c-.67 0-1.143-.07-1.415-.21-.273-.14-.507-.384-.703-.733l-8.722-15.327v11.385h1.216c.909 0 1.559.175 1.95.524.392.35.587.93.587 1.74 0 .825-.199 1.42-.597 1.783-.399.363-1.045.545-1.94.545h-6.017c-.909 0-1.566-.182-1.971-.545-.406-.364-.608-.958-.608-1.783 0-.74.188-1.303.566-1.687.377-.385.936-.577 1.677-.577h.336V86.828h-.336c-.713 0-1.265-.2-1.656-.598-.392-.398-.587-.968-.587-1.709 0-.81.206-1.401.618-1.772.413-.37 1.066-.555 1.96-.555h3.44c.824 0 1.383.108 1.677.325.293.216.622.653.985 1.31l7.989 14.551zM64.66 86.366c-1.803 0-3.218.727-4.245 2.18-1.028 1.455-1.541 3.474-1.541 6.06 0 2.586.517 4.613 1.551 6.08 1.034 1.468 2.446 2.202 4.235 2.202 1.804 0 3.222-.73 4.257-2.19 1.034-1.461 1.551-3.492 1.551-6.092 0-2.586-.513-4.605-1.54-6.06-1.028-1.453-2.45-2.18-4.268-2.18zm0-4.864c3.44 0 6.27 1.23 8.492 3.69 2.223 2.46 3.334 5.598 3.334 9.414 0 3.844-1.104 6.99-3.313 9.436-2.208 2.446-5.046 3.669-8.513 3.669-3.424 0-6.255-1.234-8.491-3.701-2.237-2.467-3.355-5.602-3.355-9.404 0-3.83 1.108-6.971 3.323-9.424 2.216-2.454 5.057-3.68 8.523-3.68zM87.461 98.17v4.298h2.16c.908 0 1.555.175 1.94.524.384.35.576.93.576 1.74 0 .825-.196 1.42-.587 1.783-.392.363-1.035.545-1.93.545h-7.254c-.922 0-1.583-.182-1.981-.545-.399-.364-.598-.958-.598-1.783 0-.74.189-1.303.566-1.687.378-.385.93-.577 1.657-.577h.356V86.828h-.356c-.713 0-1.262-.2-1.646-.598-.385-.398-.577-.968-.577-1.709 0-.81.203-1.401.608-1.772.406-.37 1.063-.555 1.971-.555h8.66c3.424 0 6.014.657 7.768 1.97 1.754 1.315 2.631 3.25 2.631 5.809 0 2.697-.873 4.738-2.62 6.122-1.748 1.384-4.34 2.076-7.78 2.076h-3.564zm0-11.343v6.625h2.977c1.65 0 2.89-.28 3.722-.839.832-.559 1.248-1.397 1.248-2.516 0-1.048-.43-1.855-1.29-2.421-.86-.566-2.086-.85-3.68-.85h-2.977zm27.267 20.568l-1.636 1.636a12.37 12.37 0 011.772-.44c.58-.098 1.15-.147 1.709-.147 1.104 0 2.268.164 3.491.492 1.223.329 1.967.493 2.233.493.447 0 1.03-.15 1.75-.45.72-.301 1.206-.452 1.458-.452.517 0 .947.2 1.29.598.342.398.513.898.513 1.5 0 .796-.472 1.474-1.415 2.033-.944.56-2.1.839-3.47.839-.937 0-2.139-.22-3.607-.66-1.467-.441-2.53-.661-3.187-.661-.992 0-2.11.272-3.354.817-1.244.546-2.013.818-2.307.818a2.14 2.14 0 01-1.53-.597c-.42-.399-.63-.878-.63-1.437 0-.391.134-.807.4-1.247.265-.44.733-1.01 1.404-1.709l2.118-2.139c-2.335-.852-4.194-2.386-5.578-4.602-1.384-2.215-2.075-4.763-2.075-7.642 0-3.802 1.104-6.909 3.312-9.32 2.209-2.411 5.053-3.617 8.534-3.617 3.467 0 6.304 1.209 8.513 3.627 2.208 2.418 3.312 5.522 3.312 9.31 0 3.774-1.097 6.884-3.291 9.33-2.195 2.446-4.977 3.67-8.345 3.67a22.5 22.5 0 01-1.384-.043zm1.195-21.03c-1.803 0-3.218.727-4.246 2.18-1.027 1.455-1.54 3.474-1.54 6.06 0 2.586.516 4.613 1.55 6.08 1.035 1.468 2.447 2.202 4.236 2.202 1.803 0 3.222-.73 4.256-2.19 1.035-1.461 1.552-3.492 1.552-6.092 0-2.586-.514-4.605-1.541-6.06-1.028-1.453-2.45-2.18-4.267-2.18z\"/></svg>"
        },
        "$:/core/images/mono-line": {
            "title": "$:/core/images/mono-line",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mono-line tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60.437 84.523h.908c1.922 0 3.381.489 4.378 1.468.997.979 1.495 2.411 1.495 4.298 0 2.1-.525 3.612-1.575 4.538-1.05.925-2.785 1.388-5.206 1.388h-16.07c-2.456 0-4.2-.454-5.232-1.361-1.032-.908-1.548-2.43-1.548-4.565 0-2.065.516-3.542 1.548-4.432 1.032-.89 2.776-1.334 5.232-1.334h1.869l-2.19-6.247H20.983l-2.296 6.247h1.87c2.42 0 4.155.453 5.205 1.361 1.05.908 1.575 2.376 1.575 4.405 0 2.1-.525 3.612-1.575 4.538-1.05.925-2.785 1.388-5.206 1.388H6.781c-2.456 0-4.2-.463-5.233-1.388C.516 93.9 0 92.389 0 90.289c0-1.887.498-3.32 1.495-4.298.997-.979 2.456-1.468 4.378-1.468h.908l14.308-39.83h-4.271c-2.42 0-4.156-.462-5.206-1.387-1.05-.926-1.575-2.42-1.575-4.485 0-2.1.525-3.613 1.575-4.538 1.05-.926 2.785-1.388 5.206-1.388h20.021c3.168 0 5.392 1.708 6.674 5.125v.16l16.924 46.343zm-27.976-39.83L24.72 67.225h15.483l-7.742-22.53zM89.506 68.56v16.284h8.008c5.66 0 9.646-.623 11.96-1.869 2.313-1.245 3.47-3.328 3.47-6.246 0-2.955-1.103-5.055-3.31-6.3-2.207-1.246-6.069-1.869-11.586-1.869h-8.542zm27.229-5.926c3.88 1.423 6.727 3.372 8.542 5.846 1.815 2.474 2.723 5.633 2.723 9.477 0 3.239-.783 6.193-2.35 8.862-1.565 2.67-3.808 4.859-6.726 6.567-1.709.997-3.622 1.718-5.74 2.163-2.118.445-5.116.667-8.996.667h-27.87c-2.349 0-4.03-.463-5.045-1.388-1.014-.926-1.521-2.438-1.521-4.538 0-1.887.48-3.32 1.441-4.298.961-.979 2.367-1.468 4.218-1.468h.907v-39.83h-.907c-1.851 0-3.257-.498-4.218-1.494-.961-.997-1.441-2.456-1.441-4.378 0-2.065.516-3.568 1.548-4.512 1.032-.943 2.705-1.414 5.018-1.414h24.56c7.51 0 13.214 1.459 17.111 4.377 3.898 2.92 5.847 7.19 5.847 12.814 0 2.776-.597 5.223-1.789 7.341-1.192 2.118-2.963 3.853-5.312 5.206zm-27.23-18.26v13.455h7.208c4.378 0 7.466-.516 9.264-1.549 1.797-1.032 2.696-2.776 2.696-5.232 0-2.313-.81-4.004-2.43-5.072-1.619-1.068-4.244-1.602-7.874-1.602h-8.863z\"/></svg>"
        },
        "$:/core/images/new-button": {
            "title": "$:/core/images/new-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 72H8.007C3.591 72 0 68.418 0 64c0-4.41 3.585-8 8.007-8H56V8.007C56 3.591 59.582 0 64 0c4.41 0 8 3.585 8 8.007V56h47.993c4.416 0 8.007 3.582 8.007 8 0 4.41-3.585 8-8.007 8H72v47.993c0 4.416-3.582 8.007-8 8.007-4.41 0-8-3.585-8-8.007V72z\"/></svg>"
        },
        "$:/core/images/new-here-button": {
            "title": "$:/core/images/new-here-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-here-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.838 20.935l-3.572.938c-3.688.968-8.23 4.43-10.136 7.731L3.37 96.738c-1.905 3.3-.771 7.524 2.534 9.432l33.717 19.466c3.297 1.904 7.53.78 9.435-2.521l38.76-67.134c1.905-3.3 2.632-8.963 1.623-12.646L83.285 20.88c-1.009-3.68-4.821-5.884-8.513-4.915l-7.603 1.995.043.287c.524 3.394 2.053 7.498 4.18 11.55.418.163.829.36 1.23.59a8.864 8.864 0 014.438 8.169c.104.132.21.264.316.395l-.386.318a8.663 8.663 0 01-1.082 3.137c-2.42 4.192-7.816 5.608-12.051 3.163-4.12-2.379-5.624-7.534-3.476-11.671-2.177-4.394-3.788-8.874-4.543-12.964z\"/><path d=\"M69.554 44.76c-5.944-7.476-10.74-17.196-11.955-25.059-1.68-10.875 3.503-18.216 15.082-18.04 10.407.158 19.975 5.851 24.728 13.785 5.208 8.695 2.95 17.868-6.855 20.496l-2.037-7.601c4.232-1.134 4.999-4.248 2.24-8.853-3.37-5.626-10.465-9.848-18.146-9.965-6.392-.097-8.31 2.62-7.323 9.01.999 6.465 5.318 15.138 10.582 21.65l-.072.06c.559 1.553-4.17 6.44-5.938 4.888l-.005.004-.028-.034a1.323 1.323 0 01-.124-.135 2.618 2.618 0 01-.149-.205z\"/><rect width=\"16\" height=\"48\" x=\"96\" y=\"80\" rx=\"8\"/><rect width=\"48\" height=\"16\" x=\"80\" y=\"96\" rx=\"8\"/></g></svg>"
        },
        "$:/core/images/new-image-button": {
            "title": "$:/core/images/new-image-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-image-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M81.362 73.627l15.826-27.41a2.626 2.626 0 00-.962-3.59l-50.01-28.872a2.626 2.626 0 00-3.588.961L30.058 36.49l10.04-5.261c3.042-1.595 6.771.114 7.55 3.46l3.607 17.702 9.88.85a5.25 5.25 0 014.571 3.77c.034.115.1.344.199.671.165.553.353 1.172.562 1.843.595 1.914 1.23 3.85 1.872 5.678.207.588.412 1.156.614 1.701.625 1.685 1.209 3.114 1.725 4.207.255.54.485.977.726 1.427.214.212.547.425 1.011.622 1.141.482 2.784.74 4.657.758.864.008 1.71-.034 2.492-.11.448-.043.753-.085.871-.104.315-.053.625-.077.927-.076zM37.47 2.649A5.257 5.257 0 0144.649.725l63.645 36.746a5.257 5.257 0 011.923 7.178L73.47 108.294a5.257 5.257 0 01-7.177 1.923L2.649 73.47a5.257 5.257 0 01-1.924-7.177L37.471 2.649zm42.837 50.49a5.25 5.25 0 105.25-9.092 5.25 5.25 0 00-5.25 9.093zM96 112h-7.993c-4.419 0-8.007-3.582-8.007-8 0-4.41 3.585-8 8.007-8H96v-7.993C96 83.588 99.582 80 104 80c4.41 0 8 3.585 8 8.007V96h7.993c4.419 0 8.007 3.582 8.007 8 0 4.41-3.585 8-8.007 8H112v7.993c0 4.419-3.582 8.007-8 8.007-4.41 0-8-3.585-8-8.007V112zM33.347 51.791c7.428 7.948 9.01 10.69 7.449 13.394-1.56 2.703-13.838-2.328-16.094 1.58-2.256 3.908-.907 3.258-2.437 5.908l19.73 11.39s-5.605-8.255-4.235-10.628c2.515-4.356 8.77-1.256 10.365-4.019 2.414-4.181-5.103-9.639-14.778-17.625z\"/></svg>"
        },
        "$:/core/images/new-journal-button": {
            "title": "$:/core/images/new-journal-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-journal-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M102.545 112.818v11.818c0 1.306 1.086 2.364 2.425 2.364h6.06c1.34 0 2.425-1.058 2.425-2.364v-11.818h12.12c1.34 0 2.425-1.058 2.425-2.363v-5.91c0-1.305-1.085-2.363-2.424-2.363h-12.121V90.364c0-1.306-1.086-2.364-2.425-2.364h-6.06c-1.34 0-2.425 1.058-2.425 2.364v11.818h-12.12c-1.34 0-2.425 1.058-2.425 2.363v5.91c0 1.305 1.085 2.363 2.424 2.363h12.121zM60.016 4.965c-4.781-2.76-10.897-1.118-13.656 3.66L5.553 79.305A9.993 9.993 0 009.21 92.963l51.04 29.468c4.78 2.76 10.897 1.118 13.655-3.66l40.808-70.681a9.993 9.993 0 00-3.658-13.656L60.016 4.965zm-3.567 27.963a6 6 0 106-10.393 6 6 0 00-6 10.393zm31.697 17.928a6 6 0 106-10.392 6 6 0 00-6 10.392z\"/><text class=\"tc-fill-background\" font-family=\"Helvetica\" font-size=\"47.172\" font-weight=\"bold\" transform=\"rotate(30 25.742 95.82)\"><tspan x=\"42\" y=\"77.485\" text-anchor=\"middle\"><<now \"DD\">></tspan></text></g></svg>"
        },
        "$:/core/images/opacity": {
            "title": "$:/core/images/opacity",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-opacity tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M102.362 65a51.595 51.595 0 01-1.942 6H82.584a35.867 35.867 0 002.997-6h16.78zm.472-2c.423-1.961.734-3.963.929-6H87.656a35.78 35.78 0 01-1.368 6h16.546zm-3.249 10a51.847 51.847 0 01-3.135 6H75.812a36.205 36.205 0 005.432-6h18.341zm-4.416 8c-1.424 2.116-3 4.12-4.71 6H60.46a35.843 35.843 0 0012.874-6h21.834zm-7.513-34h16.107C101.247 20.627 79.033 0 52 0 23.281 0 0 23.281 0 52c0 25.228 17.965 46.26 41.8 51h20.4a51.66 51.66 0 0015.875-6H39v-2h42.25a52.257 52.257 0 007.288-6H39v-2h4.539C27.739 83.194 16 68.968 16 52c0-19.882 16.118-36 36-36 18.186 0 33.222 13.484 35.656 31zm.22 2h16.039a52.823 52.823 0 010 6H87.877a36.483 36.483 0 000-6z\"/><path d=\"M76 128c28.719 0 52-23.281 52-52s-23.281-52-52-52-52 23.281-52 52 23.281 52 52 52zm0-16c19.882 0 36-16.118 36-36S95.882 40 76 40 40 56.118 40 76s16.118 36 36 36z\"/><path d=\"M37 58h53v4H37v-4zm3-8h53v4H40v-4zm0-8h53v4H40v-4zm-8 24h53v4H32v-4zm-2 8h53v4H30v-4zm-3 8h53v4H27v-4z\"/></g></svg>"
        },
        "$:/core/images/open-window": {
            "title": "$:/core/images/open-window",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-open-window tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M16 112h88.994c3.87 0 7.006 3.59 7.006 8 0 4.418-3.142 8-7.006 8H7.006C3.136 128 0 124.41 0 120a9.321 9.321 0 010-.01V24.01C0 19.586 3.59 16 8 16c4.418 0 8 3.584 8 8.01V112z\"/><path d=\"M96 43.196V56a8 8 0 1016 0V24c0-4.41-3.585-8-8.007-8H72.007C67.588 16 64 19.582 64 24c0 4.41 3.585 8 8.007 8H84.57l-36.3 36.299a8 8 0 00-.001 11.316c3.117 3.117 8.19 3.123 11.316-.003L96 43.196zM32 7.999C32 3.581 35.588 0 40 0h80c4.419 0 8 3.588 8 8v80c0 4.419-3.588 8-8 8H40c-4.419 0-8-3.588-8-8V8z\"/></g></svg>"
        },
        "$:/core/images/options-button": {
            "title": "$:/core/images/options-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-options-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M110.488 76a47.712 47.712 0 01-5.134 12.384l6.724 6.724c3.123 3.123 3.132 8.192.011 11.313l-5.668 5.668c-3.12 3.12-8.186 3.117-11.313-.01l-6.724-6.725c-3.82 2.258-7.98 4-12.384 5.134v9.505c0 4.417-3.578 8.007-7.992 8.007h-8.016C55.58 128 52 124.415 52 119.993v-9.505a47.712 47.712 0 01-12.384-5.134l-6.724 6.725c-3.123 3.122-8.192 3.131-11.313.01l-5.668-5.668c-3.12-3.12-3.116-8.186.01-11.313l6.725-6.724c-2.257-3.82-4-7.98-5.134-12.384H8.007C3.591 76 0 72.422 0 68.01v-8.017C0 55.58 3.585 52 8.007 52h9.505a47.712 47.712 0 015.134-12.383l-6.724-6.725c-3.123-3.122-3.132-8.191-.011-11.312l5.668-5.669c3.12-3.12 8.186-3.116 11.313.01l6.724 6.725c3.82-2.257 7.98-4 12.384-5.134V8.007C52 3.591 55.578 0 59.992 0h8.016C72.42 0 76 3.585 76 8.007v9.505a47.712 47.712 0 0112.384 5.134l6.724-6.724c3.123-3.123 8.192-3.132 11.313-.01l5.668 5.668c3.12 3.12 3.116 8.186-.01 11.312l-6.725 6.725c2.257 3.82 4 7.979 5.134 12.383h9.505c4.416 0 8.007 3.578 8.007 7.992v8.017c0 4.411-3.585 7.991-8.007 7.991h-9.505zM64 96c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32z\"/></svg>"
        },
        "$:/core/images/paint": {
            "title": "$:/core/images/paint",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-paint tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M83.527 76.19C90.43 69.287 91.892 59 87.91 50.665l37.903-37.902c2.919-2.92 2.913-7.659 0-10.572a7.474 7.474 0 00-10.572 0L77.338 40.093c-8.335-3.982-18.622-2.521-25.526 4.383l31.715 31.715zm-2.643 2.644L49.169 47.119S8.506 81.243 0 80.282c0 0 3.782 5.592 6.827 8.039 14.024-5.69 37.326-24.6 37.326-24.6l.661.66S19.45 90.222 9.18 92.047c1.222 1.44 4.354 4.053 6.247 5.776 5.417-1.488 34.733-28.57 34.733-28.57l.661.66-32.407 31.022 5.285 5.286L56.106 75.2l.662.66s-27.864 30.536-28.684 32.432c0 0 6.032 6.853 7.569 7.824.702-2.836 27.884-33.485 27.884-33.485l.661.66s-20.597 23.755-24.964 36.732c3.21 3.549 7.5 5.137 10.926 6.298-2.19-11.817 30.724-47.487 30.724-47.487z\"/></svg>"
        },
        "$:/core/images/palette": {
            "title": "$:/core/images/palette",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-palette tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M80.247 39.182a93.52 93.52 0 00-16.228-1.4C28.662 37.781 0 57.131 0 81.002c0 9.642 4.676 18.546 12.58 25.735C23.504 91.19 26.34 72.395 36.89 63.562c15.183-12.713 26.538-7.828 26.538-7.828l16.82-16.552zm26.535 9.655c13.049 7.913 21.257 19.392 21.257 32.166 0 9.35.519 17.411-11.874 25.08-10.797 6.681-3.824-6.536-11.844-10.898s-19.946 1.308-18.213 7.906c3.2 12.181 19.422 11.455 6.314 16.658-13.107 5.202-18.202 4.476-28.403 4.476-7.821 0-15.315-.947-22.243-2.68 9.844-4.197 27.88-12.539 33.354-19.456C82.788 92.409 87.37 80 83.324 72.484c-.194-.359 11.215-11.668 23.458-23.647zM1.134 123.867l-.66.002c33.479-14.94 22.161-64.226 58.818-64.226.317 1.418.644 2.944 1.062 4.494-25.907-4.166-23.567 48.031-59.22 59.73zm.713-.007c38.872-.506 78.152-22.347 78.152-44.813-9.27 0-14.073-3.48-16.816-7.942-16.597-7.003-30.365 45.715-61.336 52.755zm65.351-64.008c-4.45 4.115 4.886 16.433 11.318 11.318l45.27-45.27c11.317-11.318 0-22.635-11.318-11.318-11.317 11.318-33.518 34.405-45.27 45.27z\"/></svg>"
        },
        "$:/core/images/permalink-button": {
            "title": "$:/core/images/permalink-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-permalink-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M80.483 48l-7.387 32h-25.58l7.388-32h25.58zm3.694-16l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L100.598 32h3.403c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8h-7.096l-7.387 32H104c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H85.824l-5.624 24.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L69.402 96h-25.58L38.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L27.402 96h-3.403C19.59 96 16 92.418 16 88c0-4.41 3.581-8 8-8h7.096l7.387-32H24C19.59 48 16 44.418 16 40c0-4.41 3.581-8 8-8h18.177l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L58.598 32h25.58z\"/></svg>"
        },
        "$:/core/images/permaview-button": {
            "title": "$:/core/images/permaview-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-permaview-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M81.483 48l-1.846 8h-5.58l1.847-8h5.58zm3.694-16l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L101.598 32h2.403c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8h-6.096l-1.847 8h7.944c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H92.364l-1.846 8H104c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H86.824l-5.624 24.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L70.402 96h-5.58L59.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L48.402 96h-5.58L37.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L26.402 96h-2.403C19.59 96 16 92.418 16 88c0-4.41 3.581-8 8-8h6.096l1.847-8h-7.944C19.59 72 16 68.418 16 64c0-4.41 3.581-8 8-8h11.637l1.846-8H24C19.59 48 16 44.418 16 40c0-4.41 3.581-8 8-8h17.177l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L57.598 32h5.58L68.8 7.642c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L79.598 32h5.58zM53.904 48l-1.847 8h5.58l1.846-8h-5.579zm22.039 24l-1.847 8h-5.58l1.847-8h5.58zm-27.58 0l-1.846 8h5.579l1.847-8h-5.58z\"/></svg>"
        },
        "$:/core/images/picture": {
            "title": "$:/core/images/picture",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-picture tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M112 68.233v-48.23A4.001 4.001 0 00107.997 16H20.003A4.001 4.001 0 0016 20.003v38.31l9.241-14.593c2.8-4.422 9.023-5.008 12.6-1.186l18.247 20.613 13.687-6.407a8 8 0 018.903 1.492 264.97 264.97 0 002.92 2.739 249.44 249.44 0 006.798 6.066 166.5 166.5 0 002.106 1.778c2.108 1.747 3.967 3.188 5.482 4.237.748.518 1.383.92 2.044 1.33.444.117 1.046.144 1.809.05 1.873-.233 4.238-1.144 6.723-2.547a36.016 36.016 0 003.205-2.044c.558-.4.93-.686 1.07-.802.376-.31.765-.577 1.165-.806zM0 8.007A8.01 8.01 0 018.007 0h111.986A8.01 8.01 0 01128 8.007v111.986a8.01 8.01 0 01-8.007 8.007H8.007A8.01 8.01 0 010 119.993V8.007zM95 42a8 8 0 100-16 8 8 0 000 16zM32 76c15.859 4.83 20.035 7.244 20.035 12S32 95.471 32 102.347c0 6.876 1.285 4.99 1.285 9.653H68s-13.685-6.625-13.685-10.8c0-7.665 10.615-8.34 10.615-13.2 0-7.357-14.078-8.833-32.93-12z\"/></svg>"
        },
        "$:/core/images/plugin-generic-language": {
            "title": "$:/core/images/plugin-generic-language",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M61.207 68.137c-4.324 2.795-6.999 6.656-6.999 10.921 0 7.906 9.19 14.424 21.042 15.336 2.162 3.902 8.598 6.785 16.318 7.01-5.126-1.125-9.117-3.742-10.62-7.01C92.805 93.487 102 86.967 102 79.059c0-8.53-10.699-15.445-23.896-15.445-6.599 0-12.572 1.729-16.897 4.524zm12.794-14.158c-4.324 2.795-10.298 4.524-16.897 4.524-2.619 0-5.14-.272-7.497-.775-3.312 2.25-8.383 3.69-14.067 3.69l-.255-.002c4.119-.892 7.511-2.747 9.478-5.13-6.925-2.704-11.555-7.617-11.555-13.228 0-8.53 10.699-15.445 23.896-15.445C70.301 27.613 81 34.528 81 43.058c0 4.265-2.675 8.126-6.999 10.921zM64 0l54.56 32v64L64 128 9.44 96V32L64 0z\"/></svg>"
        },
        "$:/core/images/plugin-generic-plugin": {
            "title": "$:/core/images/plugin-generic-plugin",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M40.397 76.446V95.34h14.12l-.001-.005a6.912 6.912 0 005.364-11.593l.046-.023a6.912 6.912 0 119.979.526l.086.055a6.914 6.914 0 004.408 10.948l-.023.092h21.32V75.568l-.15.038a6.912 6.912 0 00-11.593-5.364l-.022-.046a6.912 6.912 0 11.526-9.979l.055-.086a6.914 6.914 0 0010.948-4.408c.079.018.158.038.236.059v-15.74h-21.32l.023-.094a6.914 6.914 0 01-4.408-10.947 10.23 10.23 0 00-.086-.055 6.912 6.912 0 10-9.979-.526l-.046.023a6.912 6.912 0 01-5.364 11.593l.001.005h-14.12v12.847A6.912 6.912 0 0129.5 59.843l-.054.086a6.912 6.912 0 10-.526 9.979l.023.046a6.912 6.912 0 0111.455 6.492zM64 0l54.56 32v64L64 128 9.44 96V32L64 0z\"/></svg>"
        },
        "$:/core/images/plugin-generic-theme": {
            "title": "$:/core/images/plugin-generic-theme",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M29.408 91.472L51.469 69.41l-.004-.005a2.22 2.22 0 01.004-3.146c.87-.87 2.281-.872 3.147-.005l9.465 9.464a2.22 2.22 0 01-.005 3.147c-.87.87-2.28.871-3.147.005l-.005-.005-22.061 22.062a6.686 6.686 0 11-9.455-9.455zM60.802 66.38c-2.436-2.704-4.465-5.091-5.817-6.869-6.855-9.014-10.313-4.268-14.226 0-3.913 4.268 1.03 7.726-2.683 10.741-3.713 3.015-3.484 4.06-9.752-1.455-6.267-5.516-6.7-7.034-3.823-10.181 2.877-3.147 5.281 1.808 11.159-3.785 5.877-5.593.94-10.55.94-10.55s12.237-25.014 28.588-23.167c16.351 1.848-6.186-2.392-11.792 17.226-2.4 8.4.447 6.42 4.998 9.968 1.394 1.086 6.03 4.401 11.794 8.685l20.677-20.676 1.615-4.766 7.84-4.689 3.151 3.152-4.688 7.84-4.766 1.615-20.224 20.223c12.663 9.547 28.312 22.146 28.312 26.709 0 7.217-3.071 11.526-9.535 9.164-4.693-1.715-18.768-15.192-28.753-25.897l-2.893 2.893-3.151-3.152 3.029-3.029zM63.953 0l54.56 32v64l-54.56 32-54.56-32V32l54.56-32z\"/></svg>"
        },
        "$:/core/images/preview-closed": {
            "title": "$:/core/images/preview-closed",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-preview-closed tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M.088 64a7.144 7.144 0 001.378 5.458C16.246 88.818 39.17 100.414 64 100.414c24.83 0 47.753-11.596 62.534-30.956A7.144 7.144 0 00127.912 64C110.582 78.416 88.304 87.086 64 87.086 39.696 87.086 17.418 78.416.088 64z\"/><rect width=\"4\" height=\"16\" x=\"62\" y=\"96\" rx=\"4\"/><rect width=\"4\" height=\"16\" x=\"78\" y=\"93\" rx=\"4\" transform=\"rotate(-5 80 101)\"/><rect width=\"4\" height=\"16\" x=\"46\" y=\"93\" rx=\"4\" transform=\"rotate(5 48 101)\"/><rect width=\"4\" height=\"16\" x=\"30\" y=\"88\" rx=\"4\" transform=\"rotate(10 32 96)\"/><rect width=\"4\" height=\"16\" x=\"94\" y=\"88\" rx=\"4\" transform=\"rotate(-10 96 96)\"/><rect width=\"4\" height=\"16\" x=\"110\" y=\"80\" rx=\"4\" transform=\"rotate(-20 112 88)\"/><rect width=\"4\" height=\"16\" x=\"14\" y=\"80\" rx=\"4\" transform=\"rotate(20 16 88)\"/></g></svg>"
        },
        "$:/core/images/preview-open": {
            "title": "$:/core/images/preview-open",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-preview-open tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64.11 99.588c-24.83 0-47.754-11.596-62.534-30.957a7.148 7.148 0 010-8.675C16.356 40.596 39.28 29 64.11 29c24.83 0 47.753 11.596 62.534 30.956a7.148 7.148 0 010 8.675c-14.78 19.36-37.703 30.957-62.534 30.957zm46.104-32.007c1.44-1.524 1.44-3.638 0-5.162C99.326 50.9 82.439 44 64.147 44S28.968 50.9 18.08 62.42c-1.44 1.523-1.44 3.637 0 5.16C28.968 79.1 45.855 86 64.147 86s35.179-6.9 46.067-18.42z\"/><path d=\"M63.5 88C76.479 88 87 77.479 87 64.5S76.479 41 63.5 41 40 51.521 40 64.5 50.521 88 63.5 88z\"/></g></svg>"
        },
        "$:/core/images/print-button": {
            "title": "$:/core/images/print-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-print-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M112 71V30.5h-.032c-.035-2-.816-3.99-2.343-5.516L86.998 2.357A7.978 7.978 0 0081 .02V0H24a8 8 0 00-8 8v63h8V8h57v14.5c0 4.422 3.582 8 8 8h15V71h8z\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"36\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"52\" rx=\"4\"/><rect width=\"40\" height=\"8\" x=\"32\" y=\"20\" rx=\"4\"/><path d=\"M0 80.005C0 71.165 7.156 64 16 64h96c8.836 0 16 7.155 16 16.005v31.99c0 8.84-7.156 16.005-16 16.005H16c-8.836 0-16-7.155-16-16.005v-31.99zM104 96a8 8 0 100-16 8 8 0 000 16z\"/></g></svg>"
        },
        "$:/core/images/quote": {
            "title": "$:/core/images/quote",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-quote tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M51.219 117.713V62.199H27.427c0-8.891 1.683-16.401 5.047-22.53 3.365-6.127 9.613-10.754 18.745-13.878V2c-7.45.961-14.36 3.184-20.728 6.669-6.368 3.484-11.835 7.87-16.401 13.157C9.524 27.113 5.98 33.241 3.456 40.21.933 47.18-.21 54.63.03 62.56v55.153H51.22zm76.781 0V62.199h-23.791c0-8.891 1.682-16.401 5.046-22.53 3.365-6.127 9.613-10.754 18.745-13.878V2c-7.45.961-14.359 3.184-20.727 6.669-6.369 3.484-11.836 7.87-16.402 13.157-4.566 5.287-8.11 11.415-10.634 18.384-2.523 6.97-3.665 14.42-3.424 22.35v55.153H128z\"/></svg>"
        },
        "$:/core/images/refresh-button": {
            "title": "$:/core/images/refresh-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-refresh-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M106.369 39.433c10.16 20.879 6.57 46.764-10.771 64.106-21.87 21.87-57.327 21.87-79.196 0-21.87-21.87-21.87-57.326 0-79.196a8 8 0 1111.314 11.314c-15.621 15.62-15.621 40.947 0 56.568 15.62 15.621 40.947 15.621 56.568 0C97.72 78.79 99.6 58.175 89.924 42.73l-6.44 12.264a8 8 0 11-14.166-7.437L84.435 18.76a8 8 0 0110.838-3.345l28.873 15.345a8 8 0 11-7.51 14.129l-10.267-5.457zm-8.222-12.368c-.167-.19-.336-.38-.506-.57l.96-.296-.454.866z\"/></svg>"
        },
        "$:/core/images/right-arrow": {
            "title": "$:/core/images/right-arrow",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-right-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M99.069 64.173c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l50.382-50.382-50.382-50.382a7.92 7.92 0 010-11.195c3.086-3.085 8.104-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.316 5.595z\"/></svg>"
        },
        "$:/core/images/rotate-left": {
            "title": "$:/core/images/rotate-left",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-rotate-left tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"32\" height=\"80\" rx=\"8\"/><rect width=\"80\" height=\"32\" x=\"48\" y=\"96\" rx=\"8\"/><path d=\"M61.32 36.65c19.743 2.45 35.023 19.287 35.023 39.693a4 4 0 01-8 0c0-15.663-11.254-28.698-26.117-31.46l3.916 3.916a4 4 0 11-5.657 5.657L49.172 43.142a4 4 0 010-5.657l11.313-11.313a4 4 0 115.657 5.656l-4.821 4.822z\"/></g></svg>"
        },
        "$:/core/images/save-button": {
            "title": "$:/core/images/save-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-save-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M120.783 34.33c4.641 8.862 7.266 18.948 7.266 29.646 0 35.347-28.653 64-64 64-35.346 0-64-28.653-64-64 0-35.346 28.654-64 64-64 18.808 0 35.72 8.113 47.43 21.03l2.68-2.68c3.13-3.13 8.197-3.132 11.321-.008 3.118 3.118 3.121 8.193-.007 11.32l-4.69 4.691zm-12.058 12.058a47.876 47.876 0 013.324 17.588c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48c14.39 0 27.3 6.332 36.098 16.362L58.941 73.544 41.976 56.578c-3.127-3.127-8.201-3.123-11.32-.005-3.123 3.124-3.119 8.194.006 11.319l22.617 22.617a7.992 7.992 0 005.659 2.347c2.05 0 4.101-.783 5.667-2.349l44.12-44.12z\"/></svg>"
        },
        "$:/core/images/size": {
            "title": "$:/core/images/size",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-size tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M92.343 26l-9.171 9.172a4 4 0 105.656 5.656l16-16a4 4 0 000-5.656l-16-16a4 4 0 10-5.656 5.656L92.343 18H22a4 4 0 00-4 4v70.343l-9.172-9.171a4 4 0 10-5.656 5.656l16 16a4 4 0 005.656 0l16-16a4 4 0 10-5.656-5.656L26 92.343V22l-4 4h70.343zM112 52v64l4-4H52a4 4 0 100 8h64a4 4 0 004-4V52a4 4 0 10-8 0z\"/></svg>"
        },
        "$:/core/images/spiral": {
            "title": "$:/core/images/spiral",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-spiral tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M64.534 68.348c3.39 0 6.097-2.62 6.476-5.968l-4.755-.538 4.75.583c.377-3.07-1.194-6.054-3.89-7.78-2.757-1.773-6.34-2.01-9.566-.7-3.46 1.403-6.14 4.392-7.35 8.148l-.01.026c-1.3 4.08-.72 8.64 1.58 12.52 2.5 4.2 6.77 7.2 11.76 8.27 5.37 1.15 11.11-.05 15.83-3.31 5.04-3.51 8.46-9.02 9.45-15.3 1.05-6.7-.72-13.63-4.92-19.19l.02.02c-4.42-5.93-11.2-9.82-18.78-10.78-7.96-1.01-16.13 1.31-22.59 6.43-6.81 5.39-11.18 13.41-12.11 22.26-.98 9.27 1.87 18.65 7.93 26.02 6.32 7.69 15.6 12.56 25.74 13.48 10.54.96 21.15-2.42 29.45-9.4l.01-.01c8.58-7.25 13.94-17.78 14.86-29.21.94-11.84-2.96-23.69-10.86-32.9-8.19-9.5-19.95-15.36-32.69-16.27-13.16-.94-26.24 3.49-36.34 12.34l.01-.01c-10.41 9.08-16.78 22.1-17.68 36.15-.93 14.44 4.03 28.77 13.79 39.78 10.03 11.32 24.28 18.2 39.6 19.09 15.73.92 31.31-4.56 43.24-15.234 12.23-10.954 19.61-26.44 20.5-43.074a4.785 4.785 0 00-4.52-5.03 4.778 4.778 0 00-5.03 4.52c-.75 14.1-7 27.2-17.33 36.45-10.03 8.98-23.11 13.58-36.3 12.81-12.79-.75-24.67-6.48-33-15.89-8.07-9.11-12.17-20.94-11.41-32.827.74-11.52 5.942-22.15 14.43-29.54l.01-.01c8.18-7.17 18.74-10.75 29.35-9.998 10.21.726 19.6 5.41 26.11 12.96 6.24 7.273 9.32 16.61 8.573 25.894-.718 8.9-4.88 17.064-11.504 22.66l.01-.007c-6.36 5.342-14.44 7.92-22.425 7.19-7.604-.68-14.52-4.314-19.21-10.027-4.44-5.4-6.517-12.23-5.806-18.94.67-6.3 3.76-11.977 8.54-15.766 4.46-3.54 10.05-5.128 15.44-4.44 5.03.63 9.46 3.18 12.32 7.01l.02.024c2.65 3.5 3.75 7.814 3.1 11.92-.59 3.71-2.58 6.925-5.45 8.924-2.56 1.767-5.61 2.403-8.38 1.81-2.42-.516-4.42-1.92-5.53-3.79-.93-1.56-1.15-3.3-.69-4.75l-4.56-1.446L59.325 65c.36-1.12 1.068-1.905 1.84-2.22.25-.103.48-.14.668-.13.06.006.11.015.14.025.01 0 .01 0-.01-.01a1.047 1.047 0 01-.264-.332c-.15-.29-.23-.678-.18-1.11l-.005.04c.15-1.332 1.38-2.523 3.035-2.523-2.65 0-4.79 2.144-4.79 4.787s2.14 4.785 4.78 4.785z\"/></svg>"
        },
        "$:/core/images/stamp": {
            "title": "$:/core/images/stamp",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-stamp tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M49.733 64H16.01C11.584 64 8 67.583 8 72.003V97h112V72.003A8 8 0 00111.99 64H78.267A22.813 22.813 0 0175.5 53.077c0-6.475 2.687-12.324 7.009-16.497A22.818 22.818 0 0087 22.952C87 10.276 76.703 0 64 0S41 10.276 41 22.952c0 5.103 1.669 9.817 4.491 13.628 4.322 4.173 7.009 10.022 7.009 16.497 0 3.954-1.002 7.675-2.767 10.923zM8 104h112v8H8v-8z\"/></svg>"
        },
        "$:/core/images/star-filled": {
            "title": "$:/core/images/star-filled",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-star-filled tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M61.836 96.823l37.327 27.287c2.72 1.99 6.379-.69 5.343-3.912L90.29 75.988l-1.26 3.91 37.285-27.345c2.718-1.993 1.32-6.327-2.041-6.33l-46.113-.036 3.3 2.416L67.176 4.416c-1.04-3.221-5.563-3.221-6.604 0L46.29 48.603l3.3-2.416-46.113.036c-3.362.003-4.759 4.337-2.04 6.33L38.72 79.898l-1.26-3.91-14.216 44.21c-1.036 3.223 2.622 5.901 5.343 3.912l37.326-27.287h-4.078z\"/></svg>"
        },
        "$:/core/images/storyview-classic": {
            "title": "$:/core/images/storyview-classic",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-classic tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16C19.581 16 16 19.578 16 23.992v16.016C16 44.422 19.588 48 24 48h80c4.419 0 8-3.578 8-7.992V23.992c0-4.414-3.588-7.992-8-7.992H24zm0 48C19.581 64 16 67.59 16 72c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24zm0 32C19.581 96 16 99.59 16 104c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24z\"/></svg>"
        },
        "$:/core/images/storyview-pop": {
            "title": "$:/core/images/storyview-pop",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-pop tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16C19.581 16 16 19.578 16 23.992v16.016C16 44.422 19.588 48 24 48h80c4.419 0 8-3.578 8-7.992V23.992c0-4.414-3.588-7.992-8-7.992H24zm-7.99 40C11.587 56 8 59.578 8 63.992v16.016C8 84.422 11.584 88 16.01 88h95.98c4.424 0 8.01-3.578 8.01-7.992V63.992c0-4.414-3.584-7.992-8.01-7.992H16.01zM24 96C19.581 96 16 99.59 16 104c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24zm0-32C19.581 64 16 67.59 16 72c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24z\"/></svg>"
        },
        "$:/core/images/storyview-zoomin": {
            "title": "$:/core/images/storyview-zoomin",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-zoomin tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16A8 8 0 0016 24.009V71.99C16 76.414 19.588 80 24 80h80a8 8 0 008-8.009V24.01c0-4.423-3.588-8.009-8-8.009H24z\"/></svg>"
        },
        "$:/core/images/strikethrough": {
            "title": "$:/core/images/strikethrough",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-strikethrough tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M92.794 38.726h15.422c-.229-6.74-1.514-12.538-3.856-17.393-2.342-4.855-5.54-8.881-9.596-12.08-4.055-3.199-8.767-5.54-14.136-7.025C75.258.743 69.433 0 63.15 0a62.76 62.76 0 00-16.364 2.142C41.474 3.57 36.733 5.74 32.564 8.653c-4.17 2.913-7.511 6.626-10.025 11.138-2.513 4.512-3.77 9.853-3.77 16.022 0 5.597 1.115 10.252 3.342 13.965 2.228 3.712 5.198 6.74 8.91 9.081 3.713 2.342 7.911 4.227 12.595 5.655a194.641 194.641 0 0014.308 3.77c4.855 1.085 9.624 2.142 14.308 3.17 4.683 1.028 8.881 2.37 12.594 4.027 3.713 1.656 6.683 3.798 8.91 6.425 2.228 2.628 3.342 6.055 3.342 10.281 0 4.456-.914 8.111-2.742 10.967a19.953 19.953 0 01-7.197 6.768c-2.97 1.657-6.311 2.828-10.024 3.513a60.771 60.771 0 01-11.052 1.028c-4.57 0-9.025-.571-13.366-1.713-4.34-1.143-8.139-2.913-11.394-5.312-3.256-2.4-5.884-5.455-7.883-9.168-1.999-3.712-2.998-8.139-2.998-13.28H15c0 7.426 1.342 13.852 4.027 19.278 2.684 5.426 6.34 9.881 10.966 13.365 4.627 3.484 9.996 6.083 16.107 7.797 6.112 1.713 12.595 2.57 19.449 2.57 5.597 0 11.223-.657 16.878-1.97 5.655-1.314 10.767-3.428 15.336-6.34 4.57-2.914 8.31-6.683 11.224-11.31 2.913-4.626 4.37-10.195 4.37-16.707 0-6.054-1.115-11.08-3.342-15.079-2.228-3.998-5.198-7.31-8.91-9.938-3.713-2.627-7.911-4.712-12.595-6.254a170.83 170.83 0 00-14.308-4.027 549.669 549.669 0 00-14.308-3.17c-4.683-.971-8.881-2.2-12.594-3.684-3.713-1.485-6.683-3.399-8.91-5.74-2.228-2.342-3.342-5.398-3.342-9.168 0-3.998.771-7.34 2.313-10.024 1.543-2.685 3.599-4.826 6.17-6.426 2.57-1.599 5.51-2.741 8.824-3.427a49.767 49.767 0 0110.11-1.028c8.453 0 15.393 1.97 20.819 5.912 5.426 3.94 8.596 10.31 9.51 19.106z\"/><path d=\"M5 54h118v16H5z\"/></g></svg>"
        },
        "$:/core/images/subscript": {
            "title": "$:/core/images/subscript",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-subscript tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M2.272 16h19.91l21.649 33.675L66.414 16h18.708L53.585 61.969l33.809 49.443H67.082L43.296 74.93l-24.187 36.48H0L33.808 61.97 2.272 16zM127.91 128.412H85.328c.059-5.168 1.306-9.681 3.741-13.542 2.435-3.86 5.761-7.216 9.978-10.066a112.388 112.388 0 016.325-4.321 50.09 50.09 0 006.058-4.499c1.841-1.603 3.356-3.34 4.543-5.211 1.188-1.871 1.812-4.024 1.871-6.46 0-1.128-.133-2.33-.4-3.607a9.545 9.545 0 00-1.56-3.564c-.772-1.098-1.84-2.019-3.207-2.761-1.366-.743-3.148-1.114-5.345-1.114-2.02 0-3.697.4-5.033 1.203-1.337.801-2.406 1.9-3.208 3.296-.801 1.396-1.395 3.044-1.781 4.944-.386 1.9-.609 3.95-.668 6.147H86.486c0-3.445.46-6.637 1.38-9.577.921-2.94 2.302-5.478 4.143-7.617 1.841-2.138 4.083-3.815 6.726-5.033 2.643-1.217 5.716-1.826 9.22-1.826 3.802 0 6.979.623 9.533 1.87 2.554 1.248 4.617 2.822 6.191 4.722 1.574 1.9 2.688 3.965 3.341 6.192.653 2.227.98 4.35.98 6.37 0 2.494-.386 4.75-1.158 6.77a21.803 21.803 0 01-3.118 5.568 31.516 31.516 0 01-4.454 4.677 66.788 66.788 0 01-5.167 4.009 139.198 139.198 0 01-5.346 3.563 79.237 79.237 0 00-4.944 3.386c-1.514 1.128-2.836 2.3-3.964 3.518-1.129 1.218-1.9 2.51-2.317 3.876h30.379v9.087z\"/></svg>"
        },
        "$:/core/images/superscript": {
            "title": "$:/core/images/superscript",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-superscript tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M2.272 16h19.91l21.649 33.675L66.414 16h18.708L53.585 61.969l33.809 49.443H67.082L43.296 74.93l-24.187 36.48H0L33.808 61.97 2.272 16zM127.91 63.412H85.328c.059-5.168 1.306-9.681 3.741-13.542 2.435-3.86 5.761-7.216 9.978-10.066a112.388 112.388 0 016.325-4.321 50.09 50.09 0 006.058-4.499c1.841-1.603 3.356-3.34 4.543-5.211 1.188-1.871 1.812-4.024 1.871-6.46 0-1.128-.133-2.33-.4-3.607a9.545 9.545 0 00-1.56-3.564c-.772-1.098-1.84-2.019-3.207-2.761-1.366-.743-3.148-1.114-5.345-1.114-2.02 0-3.697.4-5.033 1.203-1.337.801-2.406 1.9-3.208 3.296-.801 1.396-1.395 3.044-1.781 4.944-.386 1.9-.609 3.95-.668 6.147H86.486c0-3.445.46-6.637 1.38-9.577.921-2.94 2.302-5.478 4.143-7.617 1.841-2.138 4.083-3.815 6.726-5.033 2.643-1.217 5.716-1.826 9.22-1.826 3.802 0 6.979.623 9.533 1.87 2.554 1.248 4.617 2.822 6.191 4.722 1.574 1.9 2.688 3.965 3.341 6.192.653 2.227.98 4.35.98 6.37 0 2.494-.386 4.75-1.158 6.77a21.803 21.803 0 01-3.118 5.568 31.516 31.516 0 01-4.454 4.677 66.788 66.788 0 01-5.167 4.009 139.198 139.198 0 01-5.346 3.563 79.237 79.237 0 00-4.944 3.386c-1.514 1.128-2.836 2.3-3.964 3.518-1.129 1.218-1.9 2.51-2.317 3.876h30.379v9.087z\"/></svg>"
        },
        "$:/core/images/tag-button": {
            "title": "$:/core/images/tag-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-tag-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M18.164 47.66l.004 4.105c.003 3.823 2.19 9.097 4.885 11.792l61.85 61.85c2.697 2.697 7.068 2.69 9.769-.01L125.767 94.3a6.903 6.903 0 00.01-9.77L63.928 22.683c-2.697-2.697-7.976-4.88-11.796-4.881l-27.076-.007a6.902 6.902 0 00-6.91 6.91l.008 9.96.287.033c3.73.411 8.489-.044 13.365-1.153a9.702 9.702 0 0111.14-3.662l.291-.13.128.285a9.7 9.7 0 013.3 2.17c3.796 3.796 3.801 9.945.012 13.734-3.618 3.618-9.386 3.777-13.204.482-5.365 1.122-10.674 1.596-15.309 1.237z\"/><path d=\"M47.633 39.532l.023.051c-9.689 4.356-21.584 6.799-30.396 5.828C5.273 44.089-1.028 36.43 2.443 24.078 5.562 12.976 14.3 4.361 24.047 1.548c10.68-3.083 19.749 1.968 19.749 13.225h-8.623c0-4.859-3.078-6.573-8.735-4.94-6.91 1.995-13.392 8.383-15.694 16.577-1.915 6.818.417 9.653 7.46 10.43 7.126.785 17.531-1.352 25.917-5.121l.027.06.036-.017c1.76-.758 6.266 6.549 3.524 7.74a2.8 2.8 0 01-.075.03z\"/></g></svg>"
        },
        "$:/core/images/theme-button": {
            "title": "$:/core/images/theme-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-theme-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.854 66.945a122.626 122.626 0 01-3.9-4.819c-11.064-14.548-16.645-6.888-22.96 0-6.315 6.888 1.664 12.47-4.33 17.335-5.993 4.866-5.623 6.552-15.737-2.35-10.115-8.9-10.815-11.351-6.172-16.43 4.644-5.08 8.524 2.918 18.01-6.108 9.485-9.026 1.517-17.026 1.517-17.026S42.03-2.824 68.42.157c26.39 2.982-9.984-3.86-19.031 27.801-3.874 13.556.72 10.362 8.066 16.087 1.707 1.33 6.428 4.732 12.671 9.318-6.129 5.879-11.157 10.669-14.273 13.582zm11.641 12.947c16.013 17.036 37.742 37.726 45.117 40.42 10.432 3.813 15.388-3.141 15.388-14.79 0-7.151-23.83-26.542-43.924-41.769-7.408 7.156-13.376 12.953-16.58 16.139z\"/><path d=\"M11.069 109.828L46.31 74.587a3.56 3.56 0 115.037-5.032l15.098 15.098a3.56 3.56 0 11-5.032 5.037l-35.24 35.241c-4.171 4.17-10.933 4.17-15.104 0-4.17-4.17-4.17-10.933 0-15.103zM124.344 6.622l5.034 5.034-7.49 12.524-7.613 2.58L61.413 79.62l-5.034-5.034 52.861-52.862 2.58-7.614 12.524-7.49z\"/></g></svg>"
        },
        "$:/core/images/timestamp-off": {
            "title": "$:/core/images/timestamp-off",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-timestamp-off tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10a5 5 0 010-10H66.69a5 5 0 015 5c.006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M58.25 35.88c-18.777 0-33.998 15.224-33.998 33.998 0 18.773 15.22 34.002 33.998 34.002 18.784 0 34.002-15.23 34.002-34.002 0-18.774-15.218-33.998-34.002-33.998zm-3.03 50.123H44.196v-34H55.22v34zm16.976 0H61.17v-34h11.025v34z\"/></g></svg>"
        },
        "$:/core/images/timestamp-on": {
            "title": "$:/core/images/timestamp-on",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-timestamp-on tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10a5 5 0 010-10H66.69a5 5 0 015 5c.006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M13.41 27.178a5.005 5.005 0 01-7.045-.613 5.008 5.008 0 01.616-7.047l9.95-8.348a5 5 0 016.429 7.661l-9.95 8.348zm89.573 0a5.005 5.005 0 007.045-.613 5.008 5.008 0 00-.616-7.047l-9.95-8.348a5 5 0 00-6.428 7.661l9.95 8.348zM65.097 71.072c0 3.826-3.09 6.928-6.897 6.928-3.804.006-6.9-3.102-6.903-6.928 0 0 4.76-39.072 6.903-39.072s6.897 39.072 6.897 39.072z\"/></g></svg>"
        },
        "$:/core/images/tip": {
            "title": "$:/core/images/tip",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-tip tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 128.242c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64 0 35.346 28.654 64 64 64zm11.936-36.789c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349C54.33 94.05 58.824 95.82 64 95.82c5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.456c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zM64.3 24.242c11.618 0 23.699 7.82 23.699 24.2S75.92 71.754 75.92 83.576c0 5.873-5.868 9.26-11.92 9.26s-12.027-3.006-12.027-9.26C51.973 71.147 40 65.47 40 48.442s12.683-24.2 24.301-24.2z\"/></svg>"
        },
        "$:/core/images/transcludify": {
            "title": "$:/core/images/transcludify",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-transcludify-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M0 59.482c.591 0 1.36-.089 2.306-.266a10.417 10.417 0 002.75-.932 6.762 6.762 0 002.306-1.907c.651-.828.976-1.863.976-3.104V35.709c0-2.01.414-3.74 1.242-5.19.828-1.448 1.833-2.66 3.016-3.636s2.425-1.7 3.726-2.173c1.3-.473 2.424-.71 3.37-.71h8.073v7.451h-4.88c-1.241 0-2.232.207-2.97.621-.74.414-1.302.932-1.686 1.552a4.909 4.909 0 00-.71 1.996c-.089.71-.133 1.39-.133 2.04v16.677c0 1.715-.325 3.134-.976 4.258-.65 1.123-1.434 2.025-2.35 2.705-.917.68-1.863 1.168-2.839 1.464-.976.296-1.818.473-2.528.532v.178c.71.059 1.552.207 2.528.443.976.237 1.922.68 2.839 1.33.916.651 1.7 1.583 2.35 2.795.65 1.212.976 2.853.976 4.923v16.144c0 .65.044 1.33.133 2.04.089.71.325 1.375.71 1.996.384.621.946 1.139 1.685 1.553.74.414 1.73.62 2.972.62h4.879v7.452h-8.073c-.946 0-2.07-.237-3.37-.71-1.301-.473-2.543-1.197-3.726-2.173-1.183-.976-2.188-2.188-3.016-3.637-.828-1.449-1.242-3.179-1.242-5.19V74.119c0-1.42-.325-2.572-.976-3.46-.65-.886-1.419-1.581-2.306-2.084a8.868 8.868 0 00-2.75-1.02C1.36 67.377.591 67.288 0 67.288v-7.806zm24.66 0c.591 0 1.36-.089 2.306-.266a10.417 10.417 0 002.75-.932 6.762 6.762 0 002.306-1.907c.65-.828.976-1.863.976-3.104V35.709c0-2.01.414-3.74 1.242-5.19.828-1.448 1.833-2.66 3.016-3.636s2.425-1.7 3.726-2.173c1.3-.473 2.424-.71 3.37-.71h8.073v7.451h-4.88c-1.241 0-2.232.207-2.97.621-.74.414-1.302.932-1.686 1.552a4.909 4.909 0 00-.71 1.996c-.089.71-.133 1.39-.133 2.04v16.677c0 1.715-.325 3.134-.976 4.258-.65 1.123-1.434 2.025-2.35 2.705-.917.68-1.863 1.168-2.839 1.464-.976.296-1.818.473-2.528.532v.178c.71.059 1.552.207 2.528.443.976.237 1.922.68 2.839 1.33.916.651 1.7 1.583 2.35 2.795.65 1.212.976 2.853.976 4.923v16.144c0 .65.044 1.33.133 2.04.089.71.325 1.375.71 1.996.384.621.946 1.139 1.685 1.553.74.414 1.73.62 2.972.62h4.879v7.452h-8.073c-.946 0-2.07-.237-3.37-.71-1.301-.473-2.543-1.197-3.726-2.173-1.183-.976-2.188-2.188-3.016-3.637-.828-1.449-1.242-3.179-1.242-5.19V74.119c0-1.42-.325-2.572-.976-3.46-.65-.886-1.419-1.581-2.306-2.084a8.868 8.868 0 00-2.75-1.02c-.946-.177-1.715-.266-2.306-.266v-7.806zm43.965-3.538L80.6 52.041l2.306 7.097-12.063 3.903 7.628 10.378-6.12 4.435-7.63-10.467-7.45 10.201-5.943-4.524 7.628-10.023-12.152-4.17 2.306-7.096 12.064 4.17V43.347h7.451v12.596zm34.425 11.344c-.65 0-1.449.089-2.395.266-.946.177-1.863.488-2.75.931a6.356 6.356 0 00-2.262 1.908c-.62.828-.931 1.862-.931 3.104v17.564c0 2.01-.414 3.74-1.242 5.189-.828 1.449-1.833 2.661-3.016 3.637s-2.425 1.7-3.726 2.173c-1.3.473-2.424.71-3.37.71h-8.073v-7.451h4.88c1.241 0 2.232-.207 2.97-.621.74-.414 1.302-.932 1.686-1.553a4.9 4.9 0 00.71-1.995c.089-.71.133-1.39.133-2.04V72.432c0-1.715.325-3.134.976-4.258.65-1.124 1.434-2.01 2.35-2.661.917-.65 1.863-1.124 2.839-1.42.976-.295 1.818-.502 2.528-.62v-.178c-.71-.059-1.552-.207-2.528-.443-.976-.237-1.922-.68-2.839-1.33-.916-.651-1.7-1.583-2.35-2.795-.65-1.212-.976-2.853-.976-4.923V37.66c0-.651-.044-1.331-.133-2.04a4.909 4.909 0 00-.71-1.997c-.384-.62-.946-1.138-1.685-1.552-.74-.414-1.73-.62-2.972-.62h-4.879V24h8.073c.946 0 2.07.237 3.37.71 1.301.473 2.543 1.197 3.726 2.173 1.183.976 2.188 2.188 3.016 3.637.828 1.449 1.242 3.178 1.242 5.189v16.943c0 1.419.31 2.572.931 3.46a6.897 6.897 0 002.262 2.084 8.868 8.868 0 002.75 1.02c.946.177 1.745.266 2.395.266v7.806zm24.66 0c-.65 0-1.449.089-2.395.266-.946.177-1.863.488-2.75.931a6.356 6.356 0 00-2.262 1.908c-.62.828-.931 1.862-.931 3.104v17.564c0 2.01-.414 3.74-1.242 5.189-.828 1.449-1.833 2.661-3.016 3.637s-2.425 1.7-3.726 2.173c-1.3.473-2.424.71-3.37.71h-8.073v-7.451h4.88c1.241 0 2.232-.207 2.97-.621.74-.414 1.302-.932 1.686-1.553a4.9 4.9 0 00.71-1.995c.089-.71.133-1.39.133-2.04V72.432c0-1.715.325-3.134.976-4.258.65-1.124 1.434-2.01 2.35-2.661.917-.65 1.863-1.124 2.839-1.42.976-.295 1.818-.502 2.528-.62v-.178c-.71-.059-1.552-.207-2.528-.443-.976-.237-1.922-.68-2.839-1.33-.916-.651-1.7-1.583-2.35-2.795-.65-1.212-.976-2.853-.976-4.923V37.66c0-.651-.044-1.331-.133-2.04a4.909 4.909 0 00-.71-1.997c-.384-.62-.946-1.138-1.685-1.552-.74-.414-1.73-.62-2.972-.62h-4.879V24h8.073c.946 0 2.07.237 3.37.71 1.301.473 2.543 1.197 3.726 2.173 1.183.976 2.188 2.188 3.016 3.637.828 1.449 1.242 3.178 1.242 5.189v16.943c0 1.419.31 2.572.931 3.46a6.897 6.897 0 002.262 2.084 8.868 8.868 0 002.75 1.02c.946.177 1.745.266 2.395.266v7.806z\"/></svg>"
        },
        "$:/core/images/twitter": {
            "title": "$:/core/images/twitter",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-twitter tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M41.626 115.803A73.376 73.376 0 012 104.235c2.022.238 4.08.36 6.166.36 12.111 0 23.258-4.117 32.105-11.023-11.312-.208-20.859-7.653-24.148-17.883a25.98 25.98 0 0011.674-.441C15.971 72.881 7.061 62.474 7.061 49.997c0-.108 0-.216.002-.323a25.824 25.824 0 0011.709 3.22c-6.936-4.617-11.5-12.5-11.5-21.433 0-4.719 1.274-9.142 3.5-12.945 12.75 15.579 31.797 25.83 53.281 26.904-.44-1.884-.67-3.85-.67-5.868 0-14.22 11.575-25.75 25.852-25.75a25.865 25.865 0 0118.869 8.132 51.892 51.892 0 0016.415-6.248c-1.93 6.012-6.029 11.059-11.366 14.246A51.844 51.844 0 00128 25.878a52.428 52.428 0 01-12.9 13.33c.05 1.104.075 2.214.075 3.33 0 34.028-26 73.265-73.549 73.265\"/></svg>"
        },
        "$:/core/images/underline": {
            "title": "$:/core/images/underline",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-underline tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M7 117.421h114.248V128H7v-10.579zm97.871-18.525V0h-16.26v55.856c0 4.463-.605 8.576-1.816 12.338-1.212 3.762-3.03 7.046-5.452 9.851-2.423 2.806-5.452 4.974-9.086 6.504-3.635 1.53-7.939 2.296-12.912 2.296-6.25 0-11.159-1.786-14.73-5.356-3.57-3.571-5.356-8.417-5.356-14.538V0H23v65.038c0 5.356.542 10.234 1.626 14.633 1.084 4.4 2.965 8.194 5.643 11.382 2.678 3.188 6.185 5.643 10.52 7.365 4.337 1.721 9.756 2.582 16.26 2.582 7.27 0 13.582-1.435 18.938-4.304 5.356-2.87 9.755-7.365 13.199-13.486h.382v15.686h15.303z\"/></svg>"
        },
        "$:/core/images/unfold-all-button": {
            "title": "$:/core/images/unfold-all-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unfold-all tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"64\" rx=\"8\"/><path d=\"M63.945 60.624c-2.05 0-4.101-.78-5.666-2.345L35.662 35.662c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L63.94 41.314l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.603 58.279a7.986 7.986 0 01-5.663 2.346zM64.004 124.565c-2.05 0-4.102-.78-5.666-2.345L35.721 99.603c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.191-3.122 11.318.005L64 105.255l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.662 122.22a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
        },
        "$:/core/images/unfold-button": {
            "title": "$:/core/images/unfold-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unfold tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><path d=\"M63.945 63.624c-2.05 0-4.101-.78-5.666-2.345L35.662 38.662c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L63.94 44.314l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.603 61.279a7.986 7.986 0 01-5.663 2.346zM64.004 105.682c-2.05.001-4.102-.78-5.666-2.344L35.721 80.721c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.191-3.122 11.318.005L64 86.373l16.966-16.966c3.124-3.125 8.194-3.13 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319l-22.617 22.617a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
        },
        "$:/core/images/unlocked-padlock": {
            "title": "$:/core/images/unlocked-padlock",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unlocked-padlock tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M48.627 64H105v32.01C105 113.674 90.674 128 73.001 128H56C38.318 128 24 113.677 24 96.01V64h6.136c-10.455-12.651-27.364-35.788-4.3-55.142 24.636-20.672 45.835 4.353 55.777 16.201 9.943 11.85-2.676 22.437-12.457 9.892-9.78-12.545-21.167-24.146-33.207-14.043-12.041 10.104-1.757 22.36 8.813 34.958 2.467 2.94 3.641 5.732 3.865 8.134zm19.105 28.364A8.503 8.503 0 0064.5 76a8.5 8.5 0 00-3.498 16.25l-5.095 22.77H72.8l-5.07-22.656z\"/></svg>"
        },
        "$:/core/images/up-arrow": {
            "title": "$:/core/images/up-arrow",
            "created": "20150316000544368",
            "modified": "20150316000831867",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-up-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M63.892.281c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.104 3.092-11.196 0L63.894 19.393 13.513 69.774a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l55.98-55.98A7.892 7.892 0 0163.893.28z\"/></svg>"
        },
        "$:/core/images/video": {
            "title": "$:/core/images/video",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-video tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 12c-34.91 0-55.273 2.917-58.182 5.833C2.91 20.75 0 41.167 0 64.5c0 23.333 2.91 43.75 5.818 46.667C8.728 114.083 29.091 117 64 117c34.91 0 55.273-2.917 58.182-5.833C125.09 108.25 128 87.833 128 64.5c0-23.333-2.91-43.75-5.818-46.667C119.272 14.917 98.909 12 64 12zm-9.084 32.618c-3.813-2.542-6.905-.879-6.905 3.698v31.368c0 4.585 3.099 6.235 6.905 3.698l22.168-14.779c3.813-2.542 3.806-6.669 0-9.206L54.916 44.618z\"/></svg>"
        },
        "$:/core/images/warning": {
            "title": "$:/core/images/warning",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-warning tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M57.072 11c3.079-5.333 10.777-5.333 13.856 0l55.426 96c3.079 5.333-.77 12-6.928 12H8.574c-6.158 0-10.007-6.667-6.928-12l55.426-96zM64 37c-4.418 0-8 3.582-8 7.994v28.012C56 77.421 59.59 81 64 81c4.418 0 8-3.582 8-7.994V44.994C72 40.579 68.41 37 64 37zm0 67a8 8 0 100-16 8 8 0 000 16z\"/></svg>"
        },
        "$:/language/Buttons/AdvancedSearch/Caption": {
            "title": "$:/language/Buttons/AdvancedSearch/Caption",
            "text": "advanced search"
        },
        "$:/language/Buttons/AdvancedSearch/Hint": {
            "title": "$:/language/Buttons/AdvancedSearch/Hint",
            "text": "Advanced search"
        },
        "$:/language/Buttons/Cancel/Caption": {
            "title": "$:/language/Buttons/Cancel/Caption",
            "text": "cancel"
        },
        "$:/language/Buttons/Cancel/Hint": {
            "title": "$:/language/Buttons/Cancel/Hint",
            "text": "Discard changes to this tiddler"
        },
        "$:/language/Buttons/Clone/Caption": {
            "title": "$:/language/Buttons/Clone/Caption",
            "text": "clone"
        },
        "$:/language/Buttons/Clone/Hint": {
            "title": "$:/language/Buttons/Clone/Hint",
            "text": "Clone this tiddler"
        },
        "$:/language/Buttons/Close/Caption": {
            "title": "$:/language/Buttons/Close/Caption",
            "text": "close"
        },
        "$:/language/Buttons/Close/Hint": {
            "title": "$:/language/Buttons/Close/Hint",
            "text": "Close this tiddler"
        },
        "$:/language/Buttons/CloseAll/Caption": {
            "title": "$:/language/Buttons/CloseAll/Caption",
            "text": "close all"
        },
        "$:/language/Buttons/CloseAll/Hint": {
            "title": "$:/language/Buttons/CloseAll/Hint",
            "text": "Close all tiddlers"
        },
        "$:/language/Buttons/CloseOthers/Caption": {
            "title": "$:/language/Buttons/CloseOthers/Caption",
            "text": "close others"
        },
        "$:/language/Buttons/CloseOthers/Hint": {
            "title": "$:/language/Buttons/CloseOthers/Hint",
            "text": "Close other tiddlers"
        },
        "$:/language/Buttons/ControlPanel/Caption": {
            "title": "$:/language/Buttons/ControlPanel/Caption",
            "text": "control panel"
        },
        "$:/language/Buttons/ControlPanel/Hint": {
            "title": "$:/language/Buttons/ControlPanel/Hint",
            "text": "Open control panel"
        },
        "$:/language/Buttons/CopyToClipboard/Caption": {
            "title": "$:/language/Buttons/CopyToClipboard/Caption",
            "text": "copy to clipboard"
        },
        "$:/language/Buttons/CopyToClipboard/Hint": {
            "title": "$:/language/Buttons/CopyToClipboard/Hint",
            "text": "Copy this text to the clipboard"
        },
        "$:/language/Buttons/Delete/Caption": {
            "title": "$:/language/Buttons/Delete/Caption",
            "text": "delete"
        },
        "$:/language/Buttons/Delete/Hint": {
            "title": "$:/language/Buttons/Delete/Hint",
            "text": "Delete this tiddler"
        },
        "$:/language/Buttons/Edit/Caption": {
            "title": "$:/language/Buttons/Edit/Caption",
            "text": "edit"
        },
        "$:/language/Buttons/Edit/Hint": {
            "title": "$:/language/Buttons/Edit/Hint",
            "text": "Edit this tiddler"
        },
        "$:/language/Buttons/Encryption/Caption": {
            "title": "$:/language/Buttons/Encryption/Caption",
            "text": "encryption"
        },
        "$:/language/Buttons/Encryption/Hint": {
            "title": "$:/language/Buttons/Encryption/Hint",
            "text": "Set or clear a password for saving this wiki"
        },
        "$:/language/Buttons/Encryption/ClearPassword/Caption": {
            "title": "$:/language/Buttons/Encryption/ClearPassword/Caption",
            "text": "clear password"
        },
        "$:/language/Buttons/Encryption/ClearPassword/Hint": {
            "title": "$:/language/Buttons/Encryption/ClearPassword/Hint",
            "text": "Clear the password and save this wiki without encryption"
        },
        "$:/language/Buttons/Encryption/SetPassword/Caption": {
            "title": "$:/language/Buttons/Encryption/SetPassword/Caption",
            "text": "set password"
        },
        "$:/language/Buttons/Encryption/SetPassword/Hint": {
            "title": "$:/language/Buttons/Encryption/SetPassword/Hint",
            "text": "Set a password for saving this wiki with encryption"
        },
        "$:/language/Buttons/ExportPage/Caption": {
            "title": "$:/language/Buttons/ExportPage/Caption",
            "text": "export all"
        },
        "$:/language/Buttons/ExportPage/Hint": {
            "title": "$:/language/Buttons/ExportPage/Hint",
            "text": "Export all tiddlers"
        },
        "$:/language/Buttons/ExportTiddler/Caption": {
            "title": "$:/language/Buttons/ExportTiddler/Caption",
            "text": "export tiddler"
        },
        "$:/language/Buttons/ExportTiddler/Hint": {
            "title": "$:/language/Buttons/ExportTiddler/Hint",
            "text": "Export tiddler"
        },
        "$:/language/Buttons/ExportTiddlers/Caption": {
            "title": "$:/language/Buttons/ExportTiddlers/Caption",
            "text": "export tiddlers"
        },
        "$:/language/Buttons/ExportTiddlers/Hint": {
            "title": "$:/language/Buttons/ExportTiddlers/Hint",
            "text": "Export tiddlers"
        },
        "$:/language/Buttons/SidebarSearch/Hint": {
            "title": "$:/language/Buttons/SidebarSearch/Hint",
            "text": "Select the sidebar search field"
        },
        "$:/language/Buttons/Fold/Caption": {
            "title": "$:/language/Buttons/Fold/Caption",
            "text": "fold tiddler"
        },
        "$:/language/Buttons/Fold/Hint": {
            "title": "$:/language/Buttons/Fold/Hint",
            "text": "Fold the body of this tiddler"
        },
        "$:/language/Buttons/Fold/FoldBar/Caption": {
            "title": "$:/language/Buttons/Fold/FoldBar/Caption",
            "text": "fold-bar"
        },
        "$:/language/Buttons/Fold/FoldBar/Hint": {
            "title": "$:/language/Buttons/Fold/FoldBar/Hint",
            "text": "Optional bars to fold and unfold tiddlers"
        },
        "$:/language/Buttons/Unfold/Caption": {
            "title": "$:/language/Buttons/Unfold/Caption",
            "text": "unfold tiddler"
        },
        "$:/language/Buttons/Unfold/Hint": {
            "title": "$:/language/Buttons/Unfold/Hint",
            "text": "Unfold the body of this tiddler"
        },
        "$:/language/Buttons/FoldOthers/Caption": {
            "title": "$:/language/Buttons/FoldOthers/Caption",
            "text": "fold other tiddlers"
        },
        "$:/language/Buttons/FoldOthers/Hint": {
            "title": "$:/language/Buttons/FoldOthers/Hint",
            "text": "Fold the bodies of other opened tiddlers"
        },
        "$:/language/Buttons/FoldAll/Caption": {
            "title": "$:/language/Buttons/FoldAll/Caption",
            "text": "fold all tiddlers"
        },
        "$:/language/Buttons/FoldAll/Hint": {
            "title": "$:/language/Buttons/FoldAll/Hint",
            "text": "Fold the bodies of all opened tiddlers"
        },
        "$:/language/Buttons/UnfoldAll/Caption": {
            "title": "$:/language/Buttons/UnfoldAll/Caption",
            "text": "unfold all tiddlers"
        },
        "$:/language/Buttons/UnfoldAll/Hint": {
            "title": "$:/language/Buttons/UnfoldAll/Hint",
            "text": "Unfold the bodies of all opened tiddlers"
        },
        "$:/language/Buttons/FullScreen/Caption": {
            "title": "$:/language/Buttons/FullScreen/Caption",
            "text": "full-screen"
        },
        "$:/language/Buttons/FullScreen/Hint": {
            "title": "$:/language/Buttons/FullScreen/Hint",
            "text": "Enter or leave full-screen mode"
        },
        "$:/language/Buttons/Help/Caption": {
            "title": "$:/language/Buttons/Help/Caption",
            "text": "help"
        },
        "$:/language/Buttons/Help/Hint": {
            "title": "$:/language/Buttons/Help/Hint",
            "text": "Show help panel"
        },
        "$:/language/Buttons/Import/Caption": {
            "title": "$:/language/Buttons/Import/Caption",
            "text": "import"
        },
        "$:/language/Buttons/Import/Hint": {
            "title": "$:/language/Buttons/Import/Hint",
            "text": "Import many types of file including text, image, TiddlyWiki or JSON"
        },
        "$:/language/Buttons/Info/Caption": {
            "title": "$:/language/Buttons/Info/Caption",
            "text": "info"
        },
        "$:/language/Buttons/Info/Hint": {
            "title": "$:/language/Buttons/Info/Hint",
            "text": "Show information for this tiddler"
        },
        "$:/language/Buttons/Home/Caption": {
            "title": "$:/language/Buttons/Home/Caption",
            "text": "home"
        },
        "$:/language/Buttons/Home/Hint": {
            "title": "$:/language/Buttons/Home/Hint",
            "text": "Open the default tiddlers"
        },
        "$:/language/Buttons/Language/Caption": {
            "title": "$:/language/Buttons/Language/Caption",
            "text": "language"
        },
        "$:/language/Buttons/Language/Hint": {
            "title": "$:/language/Buttons/Language/Hint",
            "text": "Choose the user interface language"
        },
        "$:/language/Buttons/Manager/Caption": {
            "title": "$:/language/Buttons/Manager/Caption",
            "text": "tiddler manager"
        },
        "$:/language/Buttons/Manager/Hint": {
            "title": "$:/language/Buttons/Manager/Hint",
            "text": "Open tiddler manager"
        },
        "$:/language/Buttons/More/Caption": {
            "title": "$:/language/Buttons/More/Caption",
            "text": "more"
        },
        "$:/language/Buttons/More/Hint": {
            "title": "$:/language/Buttons/More/Hint",
            "text": "More actions"
        },
        "$:/language/Buttons/NewHere/Caption": {
            "title": "$:/language/Buttons/NewHere/Caption",
            "text": "new here"
        },
        "$:/language/Buttons/NewHere/Hint": {
            "title": "$:/language/Buttons/NewHere/Hint",
            "text": "Create a new tiddler tagged with this one"
        },
        "$:/language/Buttons/NewJournal/Caption": {
            "title": "$:/language/Buttons/NewJournal/Caption",
            "text": "new journal"
        },
        "$:/language/Buttons/NewJournal/Hint": {
            "title": "$:/language/Buttons/NewJournal/Hint",
            "text": "Create a new journal tiddler"
        },
        "$:/language/Buttons/NewJournalHere/Caption": {
            "title": "$:/language/Buttons/NewJournalHere/Caption",
            "text": "new journal here"
        },
        "$:/language/Buttons/NewJournalHere/Hint": {
            "title": "$:/language/Buttons/NewJournalHere/Hint",
            "text": "Create a new journal tiddler tagged with this one"
        },
        "$:/language/Buttons/NewImage/Caption": {
            "title": "$:/language/Buttons/NewImage/Caption",
            "text": "new image"
        },
        "$:/language/Buttons/NewImage/Hint": {
            "title": "$:/language/Buttons/NewImage/Hint",
            "text": "Create a new image tiddler"
        },
        "$:/language/Buttons/NewMarkdown/Caption": {
            "title": "$:/language/Buttons/NewMarkdown/Caption",
            "text": "new Markdown tiddler"
        },
        "$:/language/Buttons/NewMarkdown/Hint": {
            "title": "$:/language/Buttons/NewMarkdown/Hint",
            "text": "Create a new Markdown tiddler"
        },
        "$:/language/Buttons/NewTiddler/Caption": {
            "title": "$:/language/Buttons/NewTiddler/Caption",
            "text": "new tiddler"
        },
        "$:/language/Buttons/NewTiddler/Hint": {
            "title": "$:/language/Buttons/NewTiddler/Hint",
            "text": "Create a new tiddler"
        },
        "$:/language/Buttons/OpenWindow/Caption": {
            "title": "$:/language/Buttons/OpenWindow/Caption",
            "text": "open in new window"
        },
        "$:/language/Buttons/OpenWindow/Hint": {
            "title": "$:/language/Buttons/OpenWindow/Hint",
            "text": "Open tiddler in new window"
        },
        "$:/language/Buttons/Palette/Caption": {
            "title": "$:/language/Buttons/Palette/Caption",
            "text": "palette"
        },
        "$:/language/Buttons/Palette/Hint": {
            "title": "$:/language/Buttons/Palette/Hint",
            "text": "Choose the colour palette"
        },
        "$:/language/Buttons/Permalink/Caption": {
            "title": "$:/language/Buttons/Permalink/Caption",
            "text": "permalink"
        },
        "$:/language/Buttons/Permalink/Hint": {
            "title": "$:/language/Buttons/Permalink/Hint",
            "text": "Set browser address bar to a direct link to this tiddler"
        },
        "$:/language/Buttons/Permaview/Caption": {
            "title": "$:/language/Buttons/Permaview/Caption",
            "text": "permaview"
        },
        "$:/language/Buttons/Permaview/Hint": {
            "title": "$:/language/Buttons/Permaview/Hint",
            "text": "Set browser address bar to a direct link to all the tiddlers in this story"
        },
        "$:/language/Buttons/Print/Caption": {
            "title": "$:/language/Buttons/Print/Caption",
            "text": "print page"
        },
        "$:/language/Buttons/Print/Hint": {
            "title": "$:/language/Buttons/Print/Hint",
            "text": "Print the current page"
        },
        "$:/language/Buttons/Refresh/Caption": {
            "title": "$:/language/Buttons/Refresh/Caption",
            "text": "refresh"
        },
        "$:/language/Buttons/Refresh/Hint": {
            "title": "$:/language/Buttons/Refresh/Hint",
            "text": "Perform a full refresh of the wiki"
        },
        "$:/language/Buttons/Save/Caption": {
            "title": "$:/language/Buttons/Save/Caption",
            "text": "ok"
        },
        "$:/language/Buttons/Save/Hint": {
            "title": "$:/language/Buttons/Save/Hint",
            "text": "Confirm changes to this tiddler"
        },
        "$:/language/Buttons/SaveWiki/Caption": {
            "title": "$:/language/Buttons/SaveWiki/Caption",
            "text": "save changes"
        },
        "$:/language/Buttons/SaveWiki/Hint": {
            "title": "$:/language/Buttons/SaveWiki/Hint",
            "text": "Save changes"
        },
        "$:/language/Buttons/StoryView/Caption": {
            "title": "$:/language/Buttons/StoryView/Caption",
            "text": "storyview"
        },
        "$:/language/Buttons/StoryView/Hint": {
            "title": "$:/language/Buttons/StoryView/Hint",
            "text": "Choose the story visualisation"
        },
        "$:/language/Buttons/HideSideBar/Caption": {
            "title": "$:/language/Buttons/HideSideBar/Caption",
            "text": "hide sidebar"
        },
        "$:/language/Buttons/HideSideBar/Hint": {
            "title": "$:/language/Buttons/HideSideBar/Hint",
            "text": "Hide sidebar"
        },
        "$:/language/Buttons/ShowSideBar/Caption": {
            "title": "$:/language/Buttons/ShowSideBar/Caption",
            "text": "show sidebar"
        },
        "$:/language/Buttons/ShowSideBar/Hint": {
            "title": "$:/language/Buttons/ShowSideBar/Hint",
            "text": "Show sidebar"
        },
        "$:/language/Buttons/TagManager/Caption": {
            "title": "$:/language/Buttons/TagManager/Caption",
            "text": "tag manager"
        },
        "$:/language/Buttons/TagManager/Hint": {
            "title": "$:/language/Buttons/TagManager/Hint",
            "text": "Open tag manager"
        },
        "$:/language/Buttons/Timestamp/Caption": {
            "title": "$:/language/Buttons/Timestamp/Caption",
            "text": "timestamps"
        },
        "$:/language/Buttons/Timestamp/Hint": {
            "title": "$:/language/Buttons/Timestamp/Hint",
            "text": "Choose whether modifications update timestamps"
        },
        "$:/language/Buttons/Timestamp/On/Caption": {
            "title": "$:/language/Buttons/Timestamp/On/Caption",
            "text": "timestamps are on"
        },
        "$:/language/Buttons/Timestamp/On/Hint": {
            "title": "$:/language/Buttons/Timestamp/On/Hint",
            "text": "Update timestamps when tiddlers are modified"
        },
        "$:/language/Buttons/Timestamp/Off/Caption": {
            "title": "$:/language/Buttons/Timestamp/Off/Caption",
            "text": "timestamps are off"
        },
        "$:/language/Buttons/Timestamp/Off/Hint": {
            "title": "$:/language/Buttons/Timestamp/Off/Hint",
            "text": "Don't update timestamps when tiddlers are modified"
        },
        "$:/language/Buttons/Theme/Caption": {
            "title": "$:/language/Buttons/Theme/Caption",
            "text": "theme"
        },
        "$:/language/Buttons/Theme/Hint": {
            "title": "$:/language/Buttons/Theme/Hint",
            "text": "Choose the display theme"
        },
        "$:/language/Buttons/Bold/Caption": {
            "title": "$:/language/Buttons/Bold/Caption",
            "text": "bold"
        },
        "$:/language/Buttons/Bold/Hint": {
            "title": "$:/language/Buttons/Bold/Hint",
            "text": "Apply bold formatting to selection"
        },
        "$:/language/Buttons/Clear/Caption": {
            "title": "$:/language/Buttons/Clear/Caption",
            "text": "clear"
        },
        "$:/language/Buttons/Clear/Hint": {
            "title": "$:/language/Buttons/Clear/Hint",
            "text": "Clear image to solid colour"
        },
        "$:/language/Buttons/EditorHeight/Caption": {
            "title": "$:/language/Buttons/EditorHeight/Caption",
            "text": "editor height"
        },
        "$:/language/Buttons/EditorHeight/Caption/Auto": {
            "title": "$:/language/Buttons/EditorHeight/Caption/Auto",
            "text": "Automatically adjust height to fit content"
        },
        "$:/language/Buttons/EditorHeight/Caption/Fixed": {
            "title": "$:/language/Buttons/EditorHeight/Caption/Fixed",
            "text": "Fixed height:"
        },
        "$:/language/Buttons/EditorHeight/Hint": {
            "title": "$:/language/Buttons/EditorHeight/Hint",
            "text": "Choose the height of the text editor"
        },
        "$:/language/Buttons/Excise/Caption": {
            "title": "$:/language/Buttons/Excise/Caption",
            "text": "excise"
        },
        "$:/language/Buttons/Excise/Caption/Excise": {
            "title": "$:/language/Buttons/Excise/Caption/Excise",
            "text": "Perform excision"
        },
        "$:/language/Buttons/Excise/Caption/MacroName": {
            "title": "$:/language/Buttons/Excise/Caption/MacroName",
            "text": "Macro name:"
        },
        "$:/language/Buttons/Excise/Caption/NewTitle": {
            "title": "$:/language/Buttons/Excise/Caption/NewTitle",
            "text": "Title of new tiddler:"
        },
        "$:/language/Buttons/Excise/Caption/Replace": {
            "title": "$:/language/Buttons/Excise/Caption/Replace",
            "text": "Replace excised text with:"
        },
        "$:/language/Buttons/Excise/Caption/Replace/Macro": {
            "title": "$:/language/Buttons/Excise/Caption/Replace/Macro",
            "text": "macro"
        },
        "$:/language/Buttons/Excise/Caption/Replace/Link": {
            "title": "$:/language/Buttons/Excise/Caption/Replace/Link",
            "text": "link"
        },
        "$:/language/Buttons/Excise/Caption/Replace/Transclusion": {
            "title": "$:/language/Buttons/Excise/Caption/Replace/Transclusion",
            "text": "transclusion"
        },
        "$:/language/Buttons/Excise/Caption/Tag": {
            "title": "$:/language/Buttons/Excise/Caption/Tag",
            "text": "Tag new tiddler with the title of this tiddler"
        },
        "$:/language/Buttons/Excise/Caption/TiddlerExists": {
            "title": "$:/language/Buttons/Excise/Caption/TiddlerExists",
            "text": "Warning: tiddler already exists"
        },
        "$:/language/Buttons/Excise/Hint": {
            "title": "$:/language/Buttons/Excise/Hint",
            "text": "Excise the selected text into a new tiddler"
        },
        "$:/language/Buttons/Heading1/Caption": {
            "title": "$:/language/Buttons/Heading1/Caption",
            "text": "heading 1"
        },
        "$:/language/Buttons/Heading1/Hint": {
            "title": "$:/language/Buttons/Heading1/Hint",
            "text": "Apply heading level 1 formatting to lines containing selection"
        },
        "$:/language/Buttons/Heading2/Caption": {
            "title": "$:/language/Buttons/Heading2/Caption",
            "text": "heading 2"
        },
        "$:/language/Buttons/Heading2/Hint": {
            "title": "$:/language/Buttons/Heading2/Hint",
            "text": "Apply heading level 2 formatting to lines containing selection"
        },
        "$:/language/Buttons/Heading3/Caption": {
            "title": "$:/language/Buttons/Heading3/Caption",
            "text": "heading 3"
        },
        "$:/language/Buttons/Heading3/Hint": {
            "title": "$:/language/Buttons/Heading3/Hint",
            "text": "Apply heading level 3 formatting to lines containing selection"
        },
        "$:/language/Buttons/Heading4/Caption": {
            "title": "$:/language/Buttons/Heading4/Caption",
            "text": "heading 4"
        },
        "$:/language/Buttons/Heading4/Hint": {
            "title": "$:/language/Buttons/Heading4/Hint",
            "text": "Apply heading level 4 formatting to lines containing selection"
        },
        "$:/language/Buttons/Heading5/Caption": {
            "title": "$:/language/Buttons/Heading5/Caption",
            "text": "heading 5"
        },
        "$:/language/Buttons/Heading5/Hint": {
            "title": "$:/language/Buttons/Heading5/Hint",
            "text": "Apply heading level 5 formatting to lines containing selection"
        },
        "$:/language/Buttons/Heading6/Caption": {
            "title": "$:/language/Buttons/Heading6/Caption",
            "text": "heading 6"
        },
        "$:/language/Buttons/Heading6/Hint": {
            "title": "$:/language/Buttons/Heading6/Hint",
            "text": "Apply heading level 6 formatting to lines containing selection"
        },
        "$:/language/Buttons/Italic/Caption": {
            "title": "$:/language/Buttons/Italic/Caption",
            "text": "italic"
        },
        "$:/language/Buttons/Italic/Hint": {
            "title": "$:/language/Buttons/Italic/Hint",
            "text": "Apply italic formatting to selection"
        },
        "$:/language/Buttons/LineWidth/Caption": {
            "title": "$:/language/Buttons/LineWidth/Caption",
            "text": "line width"
        },
        "$:/language/Buttons/LineWidth/Hint": {
            "title": "$:/language/Buttons/LineWidth/Hint",
            "text": "Set line width for painting"
        },
        "$:/language/Buttons/Link/Caption": {
            "title": "$:/language/Buttons/Link/Caption",
            "text": "link"
        },
        "$:/language/Buttons/Link/Hint": {
            "title": "$:/language/Buttons/Link/Hint",
            "text": "Create wikitext link"
        },
        "$:/language/Buttons/Linkify/Caption": {
            "title": "$:/language/Buttons/Linkify/Caption",
            "text": "wikilink"
        },
        "$:/language/Buttons/Linkify/Hint": {
            "title": "$:/language/Buttons/Linkify/Hint",
            "text": "Wrap selection in square brackets"
        },
        "$:/language/Buttons/ListBullet/Caption": {
            "title": "$:/language/Buttons/ListBullet/Caption",
            "text": "bulleted list"
        },
        "$:/language/Buttons/ListBullet/Hint": {
            "title": "$:/language/Buttons/ListBullet/Hint",
            "text": "Apply bulleted list formatting to lines containing selection"
        },
        "$:/language/Buttons/ListNumber/Caption": {
            "title": "$:/language/Buttons/ListNumber/Caption",
            "text": "numbered list"
        },
        "$:/language/Buttons/ListNumber/Hint": {
            "title": "$:/language/Buttons/ListNumber/Hint",
            "text": "Apply numbered list formatting to lines containing selection"
        },
        "$:/language/Buttons/MonoBlock/Caption": {
            "title": "$:/language/Buttons/MonoBlock/Caption",
            "text": "monospaced block"
        },
        "$:/language/Buttons/MonoBlock/Hint": {
            "title": "$:/language/Buttons/MonoBlock/Hint",
            "text": "Apply monospaced block formatting to lines containing selection"
        },
        "$:/language/Buttons/MonoLine/Caption": {
            "title": "$:/language/Buttons/MonoLine/Caption",
            "text": "monospaced"
        },
        "$:/language/Buttons/MonoLine/Hint": {
            "title": "$:/language/Buttons/MonoLine/Hint",
            "text": "Apply monospaced character formatting to selection"
        },
        "$:/language/Buttons/Opacity/Caption": {
            "title": "$:/language/Buttons/Opacity/Caption",
            "text": "opacity"
        },
        "$:/language/Buttons/Opacity/Hint": {
            "title": "$:/language/Buttons/Opacity/Hint",
            "text": "Set painting opacity"
        },
        "$:/language/Buttons/Paint/Caption": {
            "title": "$:/language/Buttons/Paint/Caption",
            "text": "paint colour"
        },
        "$:/language/Buttons/Paint/Hint": {
            "title": "$:/language/Buttons/Paint/Hint",
            "text": "Set painting colour"
        },
        "$:/language/Buttons/Picture/Caption": {
            "title": "$:/language/Buttons/Picture/Caption",
            "text": "picture"
        },
        "$:/language/Buttons/Picture/Hint": {
            "title": "$:/language/Buttons/Picture/Hint",
            "text": "Insert picture"
        },
        "$:/language/Buttons/Preview/Caption": {
            "title": "$:/language/Buttons/Preview/Caption",
            "text": "preview"
        },
        "$:/language/Buttons/Preview/Hint": {
            "title": "$:/language/Buttons/Preview/Hint",
            "text": "Show preview pane"
        },
        "$:/language/Buttons/PreviewType/Caption": {
            "title": "$:/language/Buttons/PreviewType/Caption",
            "text": "preview type"
        },
        "$:/language/Buttons/PreviewType/Hint": {
            "title": "$:/language/Buttons/PreviewType/Hint",
            "text": "Choose preview type"
        },
        "$:/language/Buttons/Quote/Caption": {
            "title": "$:/language/Buttons/Quote/Caption",
            "text": "quote"
        },
        "$:/language/Buttons/Quote/Hint": {
            "title": "$:/language/Buttons/Quote/Hint",
            "text": "Apply quoted text formatting to lines containing selection"
        },
        "$:/language/Buttons/RotateLeft/Caption": {
            "title": "$:/language/Buttons/RotateLeft/Caption",
            "text": "rotate left"
        },
        "$:/language/Buttons/RotateLeft/Hint": {
            "title": "$:/language/Buttons/RotateLeft/Hint",
            "text": "Rotate image left by 90 degrees"
        },
        "$:/language/Buttons/Size/Caption": {
            "title": "$:/language/Buttons/Size/Caption",
            "text": "image size"
        },
        "$:/language/Buttons/Size/Caption/Height": {
            "title": "$:/language/Buttons/Size/Caption/Height",
            "text": "Height:"
        },
        "$:/language/Buttons/Size/Caption/Resize": {
            "title": "$:/language/Buttons/Size/Caption/Resize",
            "text": "Resize image"
        },
        "$:/language/Buttons/Size/Caption/Width": {
            "title": "$:/language/Buttons/Size/Caption/Width",
            "text": "Width:"
        },
        "$:/language/Buttons/Size/Hint": {
            "title": "$:/language/Buttons/Size/Hint",
            "text": "Set image size"
        },
        "$:/language/Buttons/Stamp/Caption": {
            "title": "$:/language/Buttons/Stamp/Caption",
            "text": "stamp"
        },
        "$:/language/Buttons/Stamp/Caption/New": {
            "title": "$:/language/Buttons/Stamp/Caption/New",
            "text": "Add your own"
        },
        "$:/language/Buttons/Stamp/Hint": {
            "title": "$:/language/Buttons/Stamp/Hint",
            "text": "Insert a preconfigured snippet of text"
        },
        "$:/language/Buttons/Stamp/New/Title": {
            "title": "$:/language/Buttons/Stamp/New/Title",
            "text": "Name as shown in menu"
        },
        "$:/language/Buttons/Stamp/New/Text": {
            "title": "$:/language/Buttons/Stamp/New/Text",
            "text": "Text of snippet. (Remember to add a descriptive title in the caption field)."
        },
        "$:/language/Buttons/Strikethrough/Caption": {
            "title": "$:/language/Buttons/Strikethrough/Caption",
            "text": "strikethrough"
        },
        "$:/language/Buttons/Strikethrough/Hint": {
            "title": "$:/language/Buttons/Strikethrough/Hint",
            "text": "Apply strikethrough formatting to selection"
        },
        "$:/language/Buttons/Subscript/Caption": {
            "title": "$:/language/Buttons/Subscript/Caption",
            "text": "subscript"
        },
        "$:/language/Buttons/Subscript/Hint": {
            "title": "$:/language/Buttons/Subscript/Hint",
            "text": "Apply subscript formatting to selection"
        },
        "$:/language/Buttons/Superscript/Caption": {
            "title": "$:/language/Buttons/Superscript/Caption",
            "text": "superscript"
        },
        "$:/language/Buttons/Superscript/Hint": {
            "title": "$:/language/Buttons/Superscript/Hint",
            "text": "Apply superscript formatting to selection"
        },
        "$:/language/Buttons/ToggleSidebar/Hint": {
            "title": "$:/language/Buttons/ToggleSidebar/Hint",
            "text": "Toggle the sidebar visibility"
        },
        "$:/language/Buttons/Transcludify/Caption": {
            "title": "$:/language/Buttons/Transcludify/Caption",
            "text": "transclusion"
        },
        "$:/language/Buttons/Transcludify/Hint": {
            "title": "$:/language/Buttons/Transcludify/Hint",
            "text": "Wrap selection in curly brackets"
        },
        "$:/language/Buttons/Underline/Caption": {
            "title": "$:/language/Buttons/Underline/Caption",
            "text": "underline"
        },
        "$:/language/Buttons/Underline/Hint": {
            "title": "$:/language/Buttons/Underline/Hint",
            "text": "Apply underline formatting to selection"
        },
        "$:/language/ControlPanel/Advanced/Caption": {
            "title": "$:/language/ControlPanel/Advanced/Caption",
            "text": "Advanced"
        },
        "$:/language/ControlPanel/Advanced/Hint": {
            "title": "$:/language/ControlPanel/Advanced/Hint",
            "text": "Internal information about this TiddlyWiki"
        },
        "$:/language/ControlPanel/Appearance/Caption": {
            "title": "$:/language/ControlPanel/Appearance/Caption",
            "text": "Appearance"
        },
        "$:/language/ControlPanel/Appearance/Hint": {
            "title": "$:/language/ControlPanel/Appearance/Hint",
            "text": "Ways to customise the appearance of your TiddlyWiki."
        },
        "$:/language/ControlPanel/Basics/AnimDuration/Prompt": {
            "title": "$:/language/ControlPanel/Basics/AnimDuration/Prompt",
            "text": "Animation duration"
        },
        "$:/language/ControlPanel/Basics/AutoFocus/Prompt": {
            "title": "$:/language/ControlPanel/Basics/AutoFocus/Prompt",
            "text": "Default focus field for new tiddlers"
        },
        "$:/language/ControlPanel/Basics/Caption": {
            "title": "$:/language/ControlPanel/Basics/Caption",
            "text": "Basics"
        },
        "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint": {
            "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint",
            "text": "Use &#91;&#91;double square brackets&#93;&#93; for titles with spaces. Or you can choose to <$button set=\"$:/DefaultTiddlers\" setTo=\"[list[$:/StoryList]]\">retain story ordering</$button>"
        },
        "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt",
            "text": "Default tiddlers"
        },
        "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint": {
            "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint",
            "text": "Choose which tiddlers are displayed at startup"
        },
        "$:/language/ControlPanel/Basics/Language/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Language/Prompt",
            "text": "Hello! Current language:"
        },
        "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt",
            "text": "Title of new journal tiddlers"
        },
        "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt",
            "text": "Text for new journal tiddlers"
        },
        "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt",
            "text": "Tags for new journal tiddlers"
        },
        "$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt",
            "text": "Title of new tiddlers"
        },
        "$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt",
            "text": "Tags for new tiddlers"
        },
        "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt",
            "text": "Number of overridden shadow tiddlers"
        },
        "$:/language/ControlPanel/Basics/RemoveTags": {
            "title": "$:/language/ControlPanel/Basics/RemoveTags",
            "text": "Update to current format"
        },
        "$:/language/ControlPanel/Basics/RemoveTags/Hint": {
            "title": "$:/language/ControlPanel/Basics/RemoveTags/Hint",
            "text": "Update the tags configuration to the latest format"
        },
        "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt",
            "text": "Number of shadow tiddlers"
        },
        "$:/language/ControlPanel/Basics/Subtitle/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Subtitle/Prompt",
            "text": "Subtitle"
        },
        "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt",
            "text": "Number of system tiddlers"
        },
        "$:/language/ControlPanel/Basics/Tags/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Tags/Prompt",
            "text": "Number of tags"
        },
        "$:/language/ControlPanel/Basics/Tiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Tiddlers/Prompt",
            "text": "Number of tiddlers"
        },
        "$:/language/ControlPanel/Basics/Title/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Title/Prompt",
            "text": "Title of this ~TiddlyWiki"
        },
        "$:/language/ControlPanel/Basics/Username/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Username/Prompt",
            "text": "Username for signing edits"
        },
        "$:/language/ControlPanel/Basics/Version/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Version/Prompt",
            "text": "~TiddlyWiki version"
        },
        "$:/language/ControlPanel/EditorTypes/Caption": {
            "title": "$:/language/ControlPanel/EditorTypes/Caption",
            "text": "Editor Types"
        },
        "$:/language/ControlPanel/EditorTypes/Editor/Caption": {
            "title": "$:/language/ControlPanel/EditorTypes/Editor/Caption",
            "text": "Editor"
        },
        "$:/language/ControlPanel/EditorTypes/Hint": {
            "title": "$:/language/ControlPanel/EditorTypes/Hint",
            "text": "These tiddlers determine which editor is used to edit specific tiddler types."
        },
        "$:/language/ControlPanel/EditorTypes/Type/Caption": {
            "title": "$:/language/ControlPanel/EditorTypes/Type/Caption",
            "text": "Type"
        },
        "$:/language/ControlPanel/Info/Caption": {
            "title": "$:/language/ControlPanel/Info/Caption",
            "text": "Info"
        },
        "$:/language/ControlPanel/Info/Hint": {
            "title": "$:/language/ControlPanel/Info/Hint",
            "text": "Information about this TiddlyWiki"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt",
            "text": "Type shortcut here"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption",
            "text": "add shortcut"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Caption": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Caption",
            "text": "Keyboard Shortcuts"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Hint": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Hint",
            "text": "Manage keyboard shortcut assignments"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption",
            "text": "No keyboard shortcuts assigned"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint",
            "text": "remove keyboard shortcut"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/All": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/All",
            "text": "All platforms"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac",
            "text": "Macintosh platform only"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac",
            "text": "Non-Macintosh platforms only"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux",
            "text": "Linux platform only"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux",
            "text": "Non-Linux platforms only"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows",
            "text": "Windows platform only"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows",
            "text": "Non-Windows platforms only"
        },
        "$:/language/ControlPanel/LayoutSwitcher/Caption": {
            "title": "$:/language/ControlPanel/LayoutSwitcher/Caption",
            "text": "Layout"
        },
        "$:/language/ControlPanel/LoadedModules/Caption": {
            "title": "$:/language/ControlPanel/LoadedModules/Caption",
            "text": "Loaded Modules"
        },
        "$:/language/ControlPanel/LoadedModules/Hint": {
            "title": "$:/language/ControlPanel/LoadedModules/Hint",
            "text": "These are the currently loaded tiddler modules linked to their source tiddlers. Any italicised modules lack a source tiddler, typically because they were setup during the boot process."
        },
        "$:/language/ControlPanel/Palette/Caption": {
            "title": "$:/language/ControlPanel/Palette/Caption",
            "text": "Palette"
        },
        "$:/language/ControlPanel/Palette/Editor/Clone/Caption": {
            "title": "$:/language/ControlPanel/Palette/Editor/Clone/Caption",
            "text": "clone"
        },
        "$:/language/ControlPanel/Palette/Editor/Clone/Prompt": {
            "title": "$:/language/ControlPanel/Palette/Editor/Clone/Prompt",
            "text": "It is recommended that you clone this shadow palette before editing it"
        },
        "$:/language/ControlPanel/Palette/Editor/Delete/Hint": {
            "title": "$:/language/ControlPanel/Palette/Editor/Delete/Hint",
            "text": "delete this entry from the current palette"
        },
        "$:/language/ControlPanel/Palette/Editor/Names/External/Show": {
            "title": "$:/language/ControlPanel/Palette/Editor/Names/External/Show",
            "text": "Show color names that are not part of the current palette"
        },
        "$:/language/ControlPanel/Palette/Editor/Prompt/Modified": {
            "title": "$:/language/ControlPanel/Palette/Editor/Prompt/Modified",
            "text": "This shadow palette has been modified"
        },
        "$:/language/ControlPanel/Palette/Editor/Prompt": {
            "title": "$:/language/ControlPanel/Palette/Editor/Prompt",
            "text": "Editing"
        },
        "$:/language/ControlPanel/Palette/Editor/Reset/Caption": {
            "title": "$:/language/ControlPanel/Palette/Editor/Reset/Caption",
            "text": "reset"
        },
        "$:/language/ControlPanel/Palette/HideEditor/Caption": {
            "title": "$:/language/ControlPanel/Palette/HideEditor/Caption",
            "text": "hide editor"
        },
        "$:/language/ControlPanel/Palette/Prompt": {
            "title": "$:/language/ControlPanel/Palette/Prompt",
            "text": "Current palette:"
        },
        "$:/language/ControlPanel/Palette/ShowEditor/Caption": {
            "title": "$:/language/ControlPanel/Palette/ShowEditor/Caption",
            "text": "show editor"
        },
        "$:/language/ControlPanel/Parsing/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Caption",
            "text": "Parsing"
        },
        "$:/language/ControlPanel/Parsing/Hint": {
            "title": "$:/language/ControlPanel/Parsing/Hint",
            "text": "Here you can globally disable/enable wiki parser rules. For changes to take effect, save and reload your wiki. Disabling certain parser rules can prevent <$text text=\"TiddlyWiki\"/> from functioning correctly. Use [[safe mode|https://tiddlywiki.com/#SafeMode]] to restore normal operation."
        },
        "$:/language/ControlPanel/Parsing/Block/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Block/Caption",
            "text": "Block Parse Rules"
        },
        "$:/language/ControlPanel/Parsing/Inline/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Inline/Caption",
            "text": "Inline Parse Rules"
        },
        "$:/language/ControlPanel/Parsing/Pragma/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Pragma/Caption",
            "text": "Pragma Parse Rules"
        },
        "$:/language/ControlPanel/Plugins/Add/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Add/Caption",
            "text": "Get more plugins"
        },
        "$:/language/ControlPanel/Plugins/Add/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Add/Hint",
            "text": "Install plugins from the official library"
        },
        "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint": {
            "title": "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint",
            "text": "This plugin is already installed at version <$text text=<<installedVersion>>/>"
        },
        "$:/language/ControlPanel/Plugins/AlsoRequires": {
            "title": "$:/language/ControlPanel/Plugins/AlsoRequires",
            "text": "Also requires:"
        },
        "$:/language/ControlPanel/Plugins/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Caption",
            "text": "Plugins"
        },
        "$:/language/ControlPanel/Plugins/Disable/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Disable/Caption",
            "text": "disable"
        },
        "$:/language/ControlPanel/Plugins/Disable/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Disable/Hint",
            "text": "Disable this plugin when reloading page"
        },
        "$:/language/ControlPanel/Plugins/Disabled/Status": {
            "title": "$:/language/ControlPanel/Plugins/Disabled/Status",
            "text": "(disabled)"
        },
        "$:/language/ControlPanel/Plugins/Downgrade/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Downgrade/Caption",
            "text": "downgrade"
        },
        "$:/language/ControlPanel/Plugins/Empty/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Empty/Hint",
            "text": "None"
        },
        "$:/language/ControlPanel/Plugins/Enable/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Enable/Caption",
            "text": "enable"
        },
        "$:/language/ControlPanel/Plugins/Enable/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Enable/Hint",
            "text": "Enable this plugin when reloading page"
        },
        "$:/language/ControlPanel/Plugins/Install/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Install/Caption",
            "text": "install"
        },
        "$:/language/ControlPanel/Plugins/Installed/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Installed/Hint",
            "text": "Currently installed plugins:"
        },
        "$:/language/ControlPanel/Plugins/Languages/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Languages/Caption",
            "text": "Languages"
        },
        "$:/language/ControlPanel/Plugins/Languages/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Languages/Hint",
            "text": "Language pack plugins"
        },
        "$:/language/ControlPanel/Plugins/NoInfoFound/Hint": {
            "title": "$:/language/ControlPanel/Plugins/NoInfoFound/Hint",
            "text": "No ''\"<$text text=<<currentTab>>/>\"'' found"
        },
        "$:/language/ControlPanel/Plugins/NotInstalled/Hint": {
            "title": "$:/language/ControlPanel/Plugins/NotInstalled/Hint",
            "text": "This plugin is not currently installed"
        },
        "$:/language/ControlPanel/Plugins/OpenPluginLibrary": {
            "title": "$:/language/ControlPanel/Plugins/OpenPluginLibrary",
            "text": "open plugin library"
        },
        "$:/language/ControlPanel/Plugins/ClosePluginLibrary": {
            "title": "$:/language/ControlPanel/Plugins/ClosePluginLibrary",
            "text": "close plugin library"
        },
        "$:/language/ControlPanel/Plugins/PluginWillRequireReload": {
            "title": "$:/language/ControlPanel/Plugins/PluginWillRequireReload",
            "text": "(requires reload)"
        },
        "$:/language/ControlPanel/Plugins/Plugins/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Plugins/Caption",
            "text": "Plugins"
        },
        "$:/language/ControlPanel/Plugins/Plugins/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Plugins/Hint",
            "text": "Plugins"
        },
        "$:/language/ControlPanel/Plugins/Reinstall/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Reinstall/Caption",
            "text": "reinstall"
        },
        "$:/language/ControlPanel/Plugins/Themes/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Themes/Caption",
            "text": "Themes"
        },
        "$:/language/ControlPanel/Plugins/Themes/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Themes/Hint",
            "text": "Theme plugins"
        },
        "$:/language/ControlPanel/Plugins/Update/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Update/Caption",
            "text": "update"
        },
        "$:/language/ControlPanel/Plugins/Updates/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Updates/Caption",
            "text": "Updates"
        },
        "$:/language/ControlPanel/Plugins/Updates/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Updates/Hint",
            "text": "Available updates to installed plugins"
        },
        "$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption",
            "text": "Update <<update-count>> plugins"
        },
        "$:/language/ControlPanel/Plugins/SubPluginPrompt": {
            "title": "$:/language/ControlPanel/Plugins/SubPluginPrompt",
            "text": "With <<count>> sub-plugins available"
        },
        "$:/language/ControlPanel/Saving/Caption": {
            "title": "$:/language/ControlPanel/Saving/Caption",
            "text": "Saving"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description",
            "text": "Permit automatic saving for the download saver"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint",
            "text": "Enable Autosave for Download Saver"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/Caption": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/Caption",
            "text": "Download Saver"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/Hint": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/Hint",
            "text": "These settings apply to the HTML5-compatible download saver"
        },
        "$:/language/ControlPanel/Saving/General/Caption": {
            "title": "$:/language/ControlPanel/Saving/General/Caption",
            "text": "General"
        },
        "$:/language/ControlPanel/Saving/General/Hint": {
            "title": "$:/language/ControlPanel/Saving/General/Hint",
            "text": "These settings apply to all the loaded savers"
        },
        "$:/language/ControlPanel/Saving/Hint": {
            "title": "$:/language/ControlPanel/Saving/Hint",
            "text": "Settings used for saving the entire TiddlyWiki as a single file via a saver module"
        },
        "$:/language/ControlPanel/Saving/GitService/Branch": {
            "title": "$:/language/ControlPanel/Saving/GitService/Branch",
            "text": "Target branch for saving"
        },
        "$:/language/ControlPanel/Saving/GitService/CommitMessage": {
            "title": "$:/language/ControlPanel/Saving/GitService/CommitMessage",
            "text": "Saved by TiddlyWiki"
        },
        "$:/language/ControlPanel/Saving/GitService/Description": {
            "title": "$:/language/ControlPanel/Saving/GitService/Description",
            "text": "These settings are only used when saving to <<service-name>>"
        },
        "$:/language/ControlPanel/Saving/GitService/Filename": {
            "title": "$:/language/ControlPanel/Saving/GitService/Filename",
            "text": "Filename of target file (e.g. `index.html`)"
        },
        "$:/language/ControlPanel/Saving/GitService/Path": {
            "title": "$:/language/ControlPanel/Saving/GitService/Path",
            "text": "Path to target file (e.g. `/wiki/`)"
        },
        "$:/language/ControlPanel/Saving/GitService/Repo": {
            "title": "$:/language/ControlPanel/Saving/GitService/Repo",
            "text": "Target repository (e.g. `Jermolene/TiddlyWiki5`)"
        },
        "$:/language/ControlPanel/Saving/GitService/ServerURL": {
            "title": "$:/language/ControlPanel/Saving/GitService/ServerURL",
            "text": "Server API URL"
        },
        "$:/language/ControlPanel/Saving/GitService/UserName": {
            "title": "$:/language/ControlPanel/Saving/GitService/UserName",
            "text": "Username"
        },
        "$:/language/ControlPanel/Saving/GitService/GitHub/Caption": {
            "title": "$:/language/ControlPanel/Saving/GitService/GitHub/Caption",
            "text": "~GitHub Saver"
        },
        "$:/language/ControlPanel/Saving/GitService/GitHub/Password": {
            "title": "$:/language/ControlPanel/Saving/GitService/GitHub/Password",
            "text": "Password, OAUTH token, or personal access token (see [[GitHub help page|https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line]] for details)"
        },
        "$:/language/ControlPanel/Saving/GitService/GitLab/Caption": {
            "title": "$:/language/ControlPanel/Saving/GitService/GitLab/Caption",
            "text": "~GitLab Saver"
        },
        "$:/language/ControlPanel/Saving/GitService/GitLab/Password": {
            "title": "$:/language/ControlPanel/Saving/GitService/GitLab/Password",
            "text": "Personal access token for API (see [[GitLab help page|https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html]] for details)"
        },
        "$:/language/ControlPanel/Saving/GitService/Gitea/Caption": {
            "title": "$:/language/ControlPanel/Saving/GitService/Gitea/Caption",
            "text": "Gitea Saver"
        },
        "$:/language/ControlPanel/Saving/GitService/Gitea/Password": {
            "title": "$:/language/ControlPanel/Saving/GitService/Gitea/Password",
            "text": "Personal access token for API (via Gitea’s web interface: `Settings | Applications | Generate New Token`)"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading",
            "text": "Advanced Settings"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir",
            "text": "Backup Directory"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/ControlPanel": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/ControlPanel",
            "text": "~TiddlySpot Control Panel"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Backups": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Backups",
            "text": "Backups"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Caption": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Caption",
            "text": "~TiddlySpot Saver"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Description": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Description",
            "text": "These settings are only used when saving to http://tiddlyspot.com or a compatible remote server"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Filename": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Filename",
            "text": "Upload Filename"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Heading": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Heading",
            "text": "~TiddlySpot"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Hint": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Hint",
            "text": "//The server URL defaults to `http://<wikiname>.tiddlyspot.com/store.cgi` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.//"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Password": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Password",
            "text": "Password"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/ReadOnly": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/ReadOnly",
            "text": "The ~TiddlySpot service is currently only available in read-only form. Please see http://tiddlyspot.com/ for the latest details. The ~TiddlySpot saver can still be used to save to compatible servers."
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL",
            "text": "Server URL"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir",
            "text": "Upload Directory"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/UserName": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/UserName",
            "text": "Wiki Name"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Caption": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Caption",
            "text": "Autosave"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description",
            "text": "Do not save changes automatically"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description",
            "text": "Save changes automatically"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Hint": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Hint",
            "text": "Attempt to automatically save changes during editing when using a supporting saver"
        },
        "$:/language/ControlPanel/Settings/CamelCase/Caption": {
            "title": "$:/language/ControlPanel/Settings/CamelCase/Caption",
            "text": "Camel Case Wiki Links"
        },
        "$:/language/ControlPanel/Settings/CamelCase/Hint": {
            "title": "$:/language/ControlPanel/Settings/CamelCase/Hint",
            "text": "You can globally disable automatic linking of ~CamelCase phrases. Requires reload to take effect"
        },
        "$:/language/ControlPanel/Settings/CamelCase/Description": {
            "title": "$:/language/ControlPanel/Settings/CamelCase/Description",
            "text": "Enable automatic ~CamelCase linking"
        },
        "$:/language/ControlPanel/Settings/Caption": {
            "title": "$:/language/ControlPanel/Settings/Caption",
            "text": "Settings"
        },
        "$:/language/ControlPanel/Settings/EditorToolbar/Caption": {
            "title": "$:/language/ControlPanel/Settings/EditorToolbar/Caption",
            "text": "Editor Toolbar"
        },
        "$:/language/ControlPanel/Settings/EditorToolbar/Hint": {
            "title": "$:/language/ControlPanel/Settings/EditorToolbar/Hint",
            "text": "Enable or disable the editor toolbar:"
        },
        "$:/language/ControlPanel/Settings/EditorToolbar/Description": {
            "title": "$:/language/ControlPanel/Settings/EditorToolbar/Description",
            "text": "Show editor toolbar"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Caption": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Caption",
            "text": "Tiddler Info Panel Mode"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Hint": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Hint",
            "text": "Control when the tiddler info panel closes:"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description",
            "text": "Tiddler info panel closes automatically"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description",
            "text": "Tiddler info panel stays open until explicitly closed"
        },
        "$:/language/ControlPanel/Settings/Hint": {
            "title": "$:/language/ControlPanel/Settings/Hint",
            "text": "These settings let you customise the behaviour of TiddlyWiki."
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption",
            "text": "Navigation Address Bar"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint",
            "text": "Behaviour of the browser address bar when navigating to a tiddler:"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description",
            "text": "Do not update the address bar"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description",
            "text": "Include the target tiddler"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description",
            "text": "Include the target tiddler and the current story sequence"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/Caption": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/Caption",
            "text": "Navigation History"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/Hint": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/Hint",
            "text": "Update browser history when navigating to a tiddler:"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/No/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/No/Description",
            "text": "Do not update history"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description",
            "text": "Update history"
        },
        "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption": {
            "title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption",
            "text": "Permalink/permaview Mode"
        },
        "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint": {
            "title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint",
            "text": "Choose how permalink/permaview is handled:"
        },
        "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description",
            "text": "Copy permalink/permaview URL to clipboard"
        },
        "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description",
            "text": "Update address bar with permalink/permaview URL"
        },
        "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption": {
            "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption",
            "text": "Performance Instrumentation"
        },
        "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint": {
            "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint",
            "text": "Displays performance statistics in the browser developer console. Requires reload to take effect"
        },
        "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description": {
            "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description",
            "text": "Enable performance instrumentation"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption",
            "text": "Toolbar Button Style"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint",
            "text": "Choose the style for toolbar buttons:"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless",
            "text": "Borderless"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed",
            "text": "Boxed"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded",
            "text": "Rounded"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Caption": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Caption",
            "text": "Toolbar Buttons"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Hint": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Hint",
            "text": "Default toolbar button appearance:"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description",
            "text": "Include icon"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description",
            "text": "Include text"
        },
        "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption": {
            "title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption",
            "text": "Default Sidebar Tab"
        },
        "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint": {
            "title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint",
            "text": "Specify which sidebar tab is displayed by default"
        },
        "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption": {
            "title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption",
            "text": "Default More Sidebar Tab"
        },
        "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint": {
            "title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint",
            "text": "Specify which More sidebar tab is displayed by default"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption",
            "text": "Tiddler Opening Behaviour"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint",
            "text": "Navigation from //within// the story river"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint",
            "text": "Navigation from //outside// the story river"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove",
            "text": "Open above the current tiddler"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow",
            "text": "Open below the current tiddler"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop",
            "text": "Open at the top of the story river"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom",
            "text": "Open at the bottom of the story river"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/Caption": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/Caption",
            "text": "Tiddler Titles"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/Hint": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/Hint",
            "text": "Optionally display tiddler titles as links"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/No/Description": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/No/Description",
            "text": "Do not display tiddler titles as links"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description",
            "text": "Display tiddler titles as links"
        },
        "$:/language/ControlPanel/Settings/MissingLinks/Caption": {
            "title": "$:/language/ControlPanel/Settings/MissingLinks/Caption",
            "text": "Wiki Links"
        },
        "$:/language/ControlPanel/Settings/MissingLinks/Hint": {
            "title": "$:/language/ControlPanel/Settings/MissingLinks/Hint",
            "text": "Choose whether to link to tiddlers that do not exist yet"
        },
        "$:/language/ControlPanel/Settings/MissingLinks/Description": {
            "title": "$:/language/ControlPanel/Settings/MissingLinks/Description",
            "text": "Enable links to missing tiddlers"
        },
        "$:/language/ControlPanel/StoryView/Caption": {
            "title": "$:/language/ControlPanel/StoryView/Caption",
            "text": "Story View"
        },
        "$:/language/ControlPanel/StoryView/Prompt": {
            "title": "$:/language/ControlPanel/StoryView/Prompt",
            "text": "Current view:"
        },
        "$:/language/ControlPanel/Stylesheets/Caption": {
            "title": "$:/language/ControlPanel/Stylesheets/Caption",
            "text": "Stylesheets"
        },
        "$:/language/ControlPanel/Stylesheets/Expand/Caption": {
            "title": "$:/language/ControlPanel/Stylesheets/Expand/Caption",
            "text": "Expand All"
        },
        "$:/language/ControlPanel/Stylesheets/Hint": {
            "title": "$:/language/ControlPanel/Stylesheets/Hint",
            "text": "This is the rendered CSS of the current stylesheet tiddlers tagged with <<tag \"$:/tags/Stylesheet\">>"
        },
        "$:/language/ControlPanel/Stylesheets/Restore/Caption": {
            "title": "$:/language/ControlPanel/Stylesheets/Restore/Caption",
            "text": "Restore"
        },
        "$:/language/ControlPanel/Theme/Caption": {
            "title": "$:/language/ControlPanel/Theme/Caption",
            "text": "Theme"
        },
        "$:/language/ControlPanel/Theme/Prompt": {
            "title": "$:/language/ControlPanel/Theme/Prompt",
            "text": "Current theme:"
        },
        "$:/language/ControlPanel/TiddlerFields/Caption": {
            "title": "$:/language/ControlPanel/TiddlerFields/Caption",
            "text": "Tiddler Fields"
        },
        "$:/language/ControlPanel/TiddlerFields/Hint": {
            "title": "$:/language/ControlPanel/TiddlerFields/Hint",
            "text": "This is the full set of TiddlerFields in use in this wiki (including system tiddlers but excluding shadow tiddlers)."
        },
        "$:/language/ControlPanel/Toolbars/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/Caption",
            "text": "Toolbars"
        },
        "$:/language/ControlPanel/Toolbars/EditToolbar/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/EditToolbar/Caption",
            "text": "Edit Toolbar"
        },
        "$:/language/ControlPanel/Toolbars/EditToolbar/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/EditToolbar/Hint",
            "text": "Choose which buttons are displayed for tiddlers in edit mode. Drag and drop to change the ordering"
        },
        "$:/language/ControlPanel/Toolbars/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/Hint",
            "text": "Select which toolbar buttons are displayed"
        },
        "$:/language/ControlPanel/Toolbars/PageControls/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/PageControls/Caption",
            "text": "Page Toolbar"
        },
        "$:/language/ControlPanel/Toolbars/PageControls/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/PageControls/Hint",
            "text": "Choose which buttons are displayed on the main page toolbar. Drag and drop to change the ordering"
        },
        "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption",
            "text": "Editor Toolbar"
        },
        "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint",
            "text": "Choose which buttons are displayed in the editor toolbar. Note that some buttons will only appear when editing tiddlers of a certain type. Drag and drop to change the ordering"
        },
        "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption",
            "text": "View Toolbar"
        },
        "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint",
            "text": "Choose which buttons are displayed for tiddlers in view mode. Drag and drop to change the ordering"
        },
        "$:/language/ControlPanel/Tools/Download/Full/Caption": {
            "title": "$:/language/ControlPanel/Tools/Download/Full/Caption",
            "text": "Download full wiki"
        },
        "$:/language/Date/DaySuffix/1": {
            "title": "$:/language/Date/DaySuffix/1",
            "text": "st"
        },
        "$:/language/Date/DaySuffix/2": {
            "title": "$:/language/Date/DaySuffix/2",
            "text": "nd"
        },
        "$:/language/Date/DaySuffix/3": {
            "title": "$:/language/Date/DaySuffix/3",
            "text": "rd"
        },
        "$:/language/Date/DaySuffix/4": {
            "title": "$:/language/Date/DaySuffix/4",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/5": {
            "title": "$:/language/Date/DaySuffix/5",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/6": {
            "title": "$:/language/Date/DaySuffix/6",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/7": {
            "title": "$:/language/Date/DaySuffix/7",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/8": {
            "title": "$:/language/Date/DaySuffix/8",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/9": {
            "title": "$:/language/Date/DaySuffix/9",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/10": {
            "title": "$:/language/Date/DaySuffix/10",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/11": {
            "title": "$:/language/Date/DaySuffix/11",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/12": {
            "title": "$:/language/Date/DaySuffix/12",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/13": {
            "title": "$:/language/Date/DaySuffix/13",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/14": {
            "title": "$:/language/Date/DaySuffix/14",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/15": {
            "title": "$:/language/Date/DaySuffix/15",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/16": {
            "title": "$:/language/Date/DaySuffix/16",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/17": {
            "title": "$:/language/Date/DaySuffix/17",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/18": {
            "title": "$:/language/Date/DaySuffix/18",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/19": {
            "title": "$:/language/Date/DaySuffix/19",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/20": {
            "title": "$:/language/Date/DaySuffix/20",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/21": {
            "title": "$:/language/Date/DaySuffix/21",
            "text": "st"
        },
        "$:/language/Date/DaySuffix/22": {
            "title": "$:/language/Date/DaySuffix/22",
            "text": "nd"
        },
        "$:/language/Date/DaySuffix/23": {
            "title": "$:/language/Date/DaySuffix/23",
            "text": "rd"
        },
        "$:/language/Date/DaySuffix/24": {
            "title": "$:/language/Date/DaySuffix/24",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/25": {
            "title": "$:/language/Date/DaySuffix/25",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/26": {
            "title": "$:/language/Date/DaySuffix/26",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/27": {
            "title": "$:/language/Date/DaySuffix/27",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/28": {
            "title": "$:/language/Date/DaySuffix/28",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/29": {
            "title": "$:/language/Date/DaySuffix/29",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/30": {
            "title": "$:/language/Date/DaySuffix/30",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/31": {
            "title": "$:/language/Date/DaySuffix/31",
            "text": "st"
        },
        "$:/language/Date/Long/Day/0": {
            "title": "$:/language/Date/Long/Day/0",
            "text": "Sunday"
        },
        "$:/language/Date/Long/Day/1": {
            "title": "$:/language/Date/Long/Day/1",
            "text": "Monday"
        },
        "$:/language/Date/Long/Day/2": {
            "title": "$:/language/Date/Long/Day/2",
            "text": "Tuesday"
        },
        "$:/language/Date/Long/Day/3": {
            "title": "$:/language/Date/Long/Day/3",
            "text": "Wednesday"
        },
        "$:/language/Date/Long/Day/4": {
            "title": "$:/language/Date/Long/Day/4",
            "text": "Thursday"
        },
        "$:/language/Date/Long/Day/5": {
            "title": "$:/language/Date/Long/Day/5",
            "text": "Friday"
        },
        "$:/language/Date/Long/Day/6": {
            "title": "$:/language/Date/Long/Day/6",
            "text": "Saturday"
        },
        "$:/language/Date/Long/Month/1": {
            "title": "$:/language/Date/Long/Month/1",
            "text": "January"
        },
        "$:/language/Date/Long/Month/2": {
            "title": "$:/language/Date/Long/Month/2",
            "text": "February"
        },
        "$:/language/Date/Long/Month/3": {
            "title": "$:/language/Date/Long/Month/3",
            "text": "March"
        },
        "$:/language/Date/Long/Month/4": {
            "title": "$:/language/Date/Long/Month/4",
            "text": "April"
        },
        "$:/language/Date/Long/Month/5": {
            "title": "$:/language/Date/Long/Month/5",
            "text": "May"
        },
        "$:/language/Date/Long/Month/6": {
            "title": "$:/language/Date/Long/Month/6",
            "text": "June"
        },
        "$:/language/Date/Long/Month/7": {
            "title": "$:/language/Date/Long/Month/7",
            "text": "July"
        },
        "$:/language/Date/Long/Month/8": {
            "title": "$:/language/Date/Long/Month/8",
            "text": "August"
        },
        "$:/language/Date/Long/Month/9": {
            "title": "$:/language/Date/Long/Month/9",
            "text": "September"
        },
        "$:/language/Date/Long/Month/10": {
            "title": "$:/language/Date/Long/Month/10",
            "text": "October"
        },
        "$:/language/Date/Long/Month/11": {
            "title": "$:/language/Date/Long/Month/11",
            "text": "November"
        },
        "$:/language/Date/Long/Month/12": {
            "title": "$:/language/Date/Long/Month/12",
            "text": "December"
        },
        "$:/language/Date/Period/am": {
            "title": "$:/language/Date/Period/am",
            "text": "am"
        },
        "$:/language/Date/Period/pm": {
            "title": "$:/language/Date/Period/pm",
            "text": "pm"
        },
        "$:/language/Date/Short/Day/0": {
            "title": "$:/language/Date/Short/Day/0",
            "text": "Sun"
        },
        "$:/language/Date/Short/Day/1": {
            "title": "$:/language/Date/Short/Day/1",
            "text": "Mon"
        },
        "$:/language/Date/Short/Day/2": {
            "title": "$:/language/Date/Short/Day/2",
            "text": "Tue"
        },
        "$:/language/Date/Short/Day/3": {
            "title": "$:/language/Date/Short/Day/3",
            "text": "Wed"
        },
        "$:/language/Date/Short/Day/4": {
            "title": "$:/language/Date/Short/Day/4",
            "text": "Thu"
        },
        "$:/language/Date/Short/Day/5": {
            "title": "$:/language/Date/Short/Day/5",
            "text": "Fri"
        },
        "$:/language/Date/Short/Day/6": {
            "title": "$:/language/Date/Short/Day/6",
            "text": "Sat"
        },
        "$:/language/Date/Short/Month/1": {
            "title": "$:/language/Date/Short/Month/1",
            "text": "Jan"
        },
        "$:/language/Date/Short/Month/2": {
            "title": "$:/language/Date/Short/Month/2",
            "text": "Feb"
        },
        "$:/language/Date/Short/Month/3": {
            "title": "$:/language/Date/Short/Month/3",
            "text": "Mar"
        },
        "$:/language/Date/Short/Month/4": {
            "title": "$:/language/Date/Short/Month/4",
            "text": "Apr"
        },
        "$:/language/Date/Short/Month/5": {
            "title": "$:/language/Date/Short/Month/5",
            "text": "May"
        },
        "$:/language/Date/Short/Month/6": {
            "title": "$:/language/Date/Short/Month/6",
            "text": "Jun"
        },
        "$:/language/Date/Short/Month/7": {
            "title": "$:/language/Date/Short/Month/7",
            "text": "Jul"
        },
        "$:/language/Date/Short/Month/8": {
            "title": "$:/language/Date/Short/Month/8",
            "text": "Aug"
        },
        "$:/language/Date/Short/Month/9": {
            "title": "$:/language/Date/Short/Month/9",
            "text": "Sep"
        },
        "$:/language/Date/Short/Month/10": {
            "title": "$:/language/Date/Short/Month/10",
            "text": "Oct"
        },
        "$:/language/Date/Short/Month/11": {
            "title": "$:/language/Date/Short/Month/11",
            "text": "Nov"
        },
        "$:/language/Date/Short/Month/12": {
            "title": "$:/language/Date/Short/Month/12",
            "text": "Dec"
        },
        "$:/language/RelativeDate/Future/Days": {
            "title": "$:/language/RelativeDate/Future/Days",
            "text": "<<period>> days from now"
        },
        "$:/language/RelativeDate/Future/Hours": {
            "title": "$:/language/RelativeDate/Future/Hours",
            "text": "<<period>> hours from now"
        },
        "$:/language/RelativeDate/Future/Minutes": {
            "title": "$:/language/RelativeDate/Future/Minutes",
            "text": "<<period>> minutes from now"
        },
        "$:/language/RelativeDate/Future/Months": {
            "title": "$:/language/RelativeDate/Future/Months",
            "text": "<<period>> months from now"
        },
        "$:/language/RelativeDate/Future/Second": {
            "title": "$:/language/RelativeDate/Future/Second",
            "text": "1 second from now"
        },
        "$:/language/RelativeDate/Future/Seconds": {
            "title": "$:/language/RelativeDate/Future/Seconds",
            "text": "<<period>> seconds from now"
        },
        "$:/language/RelativeDate/Future/Years": {
            "title": "$:/language/RelativeDate/Future/Years",
            "text": "<<period>> years from now"
        },
        "$:/language/RelativeDate/Past/Days": {
            "title": "$:/language/RelativeDate/Past/Days",
            "text": "<<period>> days ago"
        },
        "$:/language/RelativeDate/Past/Hours": {
            "title": "$:/language/RelativeDate/Past/Hours",
            "text": "<<period>> hours ago"
        },
        "$:/language/RelativeDate/Past/Minutes": {
            "title": "$:/language/RelativeDate/Past/Minutes",
            "text": "<<period>> minutes ago"
        },
        "$:/language/RelativeDate/Past/Months": {
            "title": "$:/language/RelativeDate/Past/Months",
            "text": "<<period>> months ago"
        },
        "$:/language/RelativeDate/Past/Second": {
            "title": "$:/language/RelativeDate/Past/Second",
            "text": "1 second ago"
        },
        "$:/language/RelativeDate/Past/Seconds": {
            "title": "$:/language/RelativeDate/Past/Seconds",
            "text": "<<period>> seconds ago"
        },
        "$:/language/RelativeDate/Past/Years": {
            "title": "$:/language/RelativeDate/Past/Years",
            "text": "<<period>> years ago"
        },
        "$:/language/Docs/ModuleTypes/allfilteroperator": {
            "title": "$:/language/Docs/ModuleTypes/allfilteroperator",
            "text": "A sub-operator for the ''all'' filter operator."
        },
        "$:/language/Docs/ModuleTypes/animation": {
            "title": "$:/language/Docs/ModuleTypes/animation",
            "text": "Animations that may be used with the RevealWidget."
        },
        "$:/language/Docs/ModuleTypes/authenticator": {
            "title": "$:/language/Docs/ModuleTypes/authenticator",
            "text": "Defines how requests are authenticated by the built-in HTTP server."
        },
        "$:/language/Docs/ModuleTypes/bitmapeditoroperation": {
            "title": "$:/language/Docs/ModuleTypes/bitmapeditoroperation",
            "text": "A bitmap editor toolbar operation."
        },
        "$:/language/Docs/ModuleTypes/command": {
            "title": "$:/language/Docs/ModuleTypes/command",
            "text": "Commands that can be executed under Node.js."
        },
        "$:/language/Docs/ModuleTypes/config": {
            "title": "$:/language/Docs/ModuleTypes/config",
            "text": "Data to be inserted into `$tw.config`."
        },
        "$:/language/Docs/ModuleTypes/filteroperator": {
            "title": "$:/language/Docs/ModuleTypes/filteroperator",
            "text": "Individual filter operator methods."
        },
        "$:/language/Docs/ModuleTypes/global": {
            "title": "$:/language/Docs/ModuleTypes/global",
            "text": "Global data to be inserted into `$tw`."
        },
        "$:/language/Docs/ModuleTypes/info": {
            "title": "$:/language/Docs/ModuleTypes/info",
            "text": "Publishes system information via the [[$:/temp/info-plugin]] pseudo-plugin."
        },
        "$:/language/Docs/ModuleTypes/isfilteroperator": {
            "title": "$:/language/Docs/ModuleTypes/isfilteroperator",
            "text": "Operands for the ''is'' filter operator."
        },
        "$:/language/Docs/ModuleTypes/library": {
            "title": "$:/language/Docs/ModuleTypes/library",
            "text": "Generic module type for general purpose JavaScript modules."
        },
        "$:/language/Docs/ModuleTypes/macro": {
            "title": "$:/language/Docs/ModuleTypes/macro",
            "text": "JavaScript macro definitions."
        },
        "$:/language/Docs/ModuleTypes/parser": {
            "title": "$:/language/Docs/ModuleTypes/parser",
            "text": "Parsers for different content types."
        },
        "$:/language/Docs/ModuleTypes/route": {
            "title": "$:/language/Docs/ModuleTypes/route",
            "text": "Defines how individual URL patterns are handled by the built-in HTTP server."
        },
        "$:/language/Docs/ModuleTypes/saver": {
            "title": "$:/language/Docs/ModuleTypes/saver",
            "text": "Savers handle different methods for saving files from the browser."
        },
        "$:/language/Docs/ModuleTypes/startup": {
            "title": "$:/language/Docs/ModuleTypes/startup",
            "text": "Startup functions."
        },
        "$:/language/Docs/ModuleTypes/storyview": {
            "title": "$:/language/Docs/ModuleTypes/storyview",
            "text": "Story views customise the animation and behaviour of list widgets."
        },
        "$:/language/Docs/ModuleTypes/texteditoroperation": {
            "title": "$:/language/Docs/ModuleTypes/texteditoroperation",
            "text": "A text editor toolbar operation."
        },
        "$:/language/Docs/ModuleTypes/tiddlerdeserializer": {
            "title": "$:/language/Docs/ModuleTypes/tiddlerdeserializer",
            "text": "Converts different content types into tiddlers."
        },
        "$:/language/Docs/ModuleTypes/tiddlerfield": {
            "title": "$:/language/Docs/ModuleTypes/tiddlerfield",
            "text": "Defines the behaviour of an individual tiddler field."
        },
        "$:/language/Docs/ModuleTypes/tiddlermethod": {
            "title": "$:/language/Docs/ModuleTypes/tiddlermethod",
            "text": "Adds methods to the `$tw.Tiddler` prototype."
        },
        "$:/language/Docs/ModuleTypes/upgrader": {
            "title": "$:/language/Docs/ModuleTypes/upgrader",
            "text": "Applies upgrade processing to tiddlers during an upgrade/import."
        },
        "$:/language/Docs/ModuleTypes/utils": {
            "title": "$:/language/Docs/ModuleTypes/utils",
            "text": "Adds methods to `$tw.utils`."
        },
        "$:/language/Docs/ModuleTypes/utils-node": {
            "title": "$:/language/Docs/ModuleTypes/utils-node",
            "text": "Adds Node.js-specific methods to `$tw.utils`."
        },
        "$:/language/Docs/ModuleTypes/widget": {
            "title": "$:/language/Docs/ModuleTypes/widget",
            "text": "Widgets encapsulate DOM rendering and refreshing."
        },
        "$:/language/Docs/ModuleTypes/wikimethod": {
            "title": "$:/language/Docs/ModuleTypes/wikimethod",
            "text": "Adds methods to `$tw.Wiki`."
        },
        "$:/language/Docs/ModuleTypes/wikirule": {
            "title": "$:/language/Docs/ModuleTypes/wikirule",
            "text": "Individual parser rules for the main WikiText parser."
        },
        "$:/language/Docs/PaletteColours/alert-background": {
            "title": "$:/language/Docs/PaletteColours/alert-background",
            "text": "Alert background"
        },
        "$:/language/Docs/PaletteColours/alert-border": {
            "title": "$:/language/Docs/PaletteColours/alert-border",
            "text": "Alert border"
        },
        "$:/language/Docs/PaletteColours/alert-highlight": {
            "title": "$:/language/Docs/PaletteColours/alert-highlight",
            "text": "Alert highlight"
        },
        "$:/language/Docs/PaletteColours/alert-muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/alert-muted-foreground",
            "text": "Alert muted foreground"
        },
        "$:/language/Docs/PaletteColours/background": {
            "title": "$:/language/Docs/PaletteColours/background",
            "text": "General background"
        },
        "$:/language/Docs/PaletteColours/blockquote-bar": {
            "title": "$:/language/Docs/PaletteColours/blockquote-bar",
            "text": "Blockquote bar"
        },
        "$:/language/Docs/PaletteColours/button-background": {
            "title": "$:/language/Docs/PaletteColours/button-background",
            "text": "Default button background"
        },
        "$:/language/Docs/PaletteColours/button-border": {
            "title": "$:/language/Docs/PaletteColours/button-border",
            "text": "Default button border"
        },
        "$:/language/Docs/PaletteColours/button-foreground": {
            "title": "$:/language/Docs/PaletteColours/button-foreground",
            "text": "Default button foreground"
        },
        "$:/language/Docs/PaletteColours/dirty-indicator": {
            "title": "$:/language/Docs/PaletteColours/dirty-indicator",
            "text": "Unsaved changes indicator"
        },
        "$:/language/Docs/PaletteColours/code-background": {
            "title": "$:/language/Docs/PaletteColours/code-background",
            "text": "Code background"
        },
        "$:/language/Docs/PaletteColours/code-border": {
            "title": "$:/language/Docs/PaletteColours/code-border",
            "text": "Code border"
        },
        "$:/language/Docs/PaletteColours/code-foreground": {
            "title": "$:/language/Docs/PaletteColours/code-foreground",
            "text": "Code foreground"
        },
        "$:/language/Docs/PaletteColours/download-background": {
            "title": "$:/language/Docs/PaletteColours/download-background",
            "text": "Download button background"
        },
        "$:/language/Docs/PaletteColours/download-foreground": {
            "title": "$:/language/Docs/PaletteColours/download-foreground",
            "text": "Download button foreground"
        },
        "$:/language/Docs/PaletteColours/dragger-background": {
            "title": "$:/language/Docs/PaletteColours/dragger-background",
            "text": "Dragger background"
        },
        "$:/language/Docs/PaletteColours/dragger-foreground": {
            "title": "$:/language/Docs/PaletteColours/dragger-foreground",
            "text": "Dragger foreground"
        },
        "$:/language/Docs/PaletteColours/dropdown-background": {
            "title": "$:/language/Docs/PaletteColours/dropdown-background",
            "text": "Dropdown background"
        },
        "$:/language/Docs/PaletteColours/dropdown-border": {
            "title": "$:/language/Docs/PaletteColours/dropdown-border",
            "text": "Dropdown border"
        },
        "$:/language/Docs/PaletteColours/dropdown-tab-background-selected": {
            "title": "$:/language/Docs/PaletteColours/dropdown-tab-background-selected",
            "text": "Dropdown tab background for selected tabs"
        },
        "$:/language/Docs/PaletteColours/dropdown-tab-background": {
            "title": "$:/language/Docs/PaletteColours/dropdown-tab-background",
            "text": "Dropdown tab background"
        },
        "$:/language/Docs/PaletteColours/dropzone-background": {
            "title": "$:/language/Docs/PaletteColours/dropzone-background",
            "text": "Dropzone background"
        },
        "$:/language/Docs/PaletteColours/external-link-background-hover": {
            "title": "$:/language/Docs/PaletteColours/external-link-background-hover",
            "text": "External link background hover"
        },
        "$:/language/Docs/PaletteColours/external-link-background-visited": {
            "title": "$:/language/Docs/PaletteColours/external-link-background-visited",
            "text": "External link background visited"
        },
        "$:/language/Docs/PaletteColours/external-link-background": {
            "title": "$:/language/Docs/PaletteColours/external-link-background",
            "text": "External link background"
        },
        "$:/language/Docs/PaletteColours/external-link-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/external-link-foreground-hover",
            "text": "External link foreground hover"
        },
        "$:/language/Docs/PaletteColours/external-link-foreground-visited": {
            "title": "$:/language/Docs/PaletteColours/external-link-foreground-visited",
            "text": "External link foreground visited"
        },
        "$:/language/Docs/PaletteColours/external-link-foreground": {
            "title": "$:/language/Docs/PaletteColours/external-link-foreground",
            "text": "External link foreground"
        },
        "$:/language/Docs/PaletteColours/foreground": {
            "title": "$:/language/Docs/PaletteColours/foreground",
            "text": "General foreground"
        },
        "$:/language/Docs/PaletteColours/menubar-background": {
            "title": "$:/language/Docs/PaletteColours/menubar-background",
            "text": "Menu bar background"
        },
        "$:/language/Docs/PaletteColours/menubar-foreground": {
            "title": "$:/language/Docs/PaletteColours/menubar-foreground",
            "text": "Menu bar foreground"
        },
        "$:/language/Docs/PaletteColours/message-background": {
            "title": "$:/language/Docs/PaletteColours/message-background",
            "text": "Message box background"
        },
        "$:/language/Docs/PaletteColours/message-border": {
            "title": "$:/language/Docs/PaletteColours/message-border",
            "text": "Message box border"
        },
        "$:/language/Docs/PaletteColours/message-foreground": {
            "title": "$:/language/Docs/PaletteColours/message-foreground",
            "text": "Message box foreground"
        },
        "$:/language/Docs/PaletteColours/modal-backdrop": {
            "title": "$:/language/Docs/PaletteColours/modal-backdrop",
            "text": "Modal backdrop"
        },
        "$:/language/Docs/PaletteColours/modal-background": {
            "title": "$:/language/Docs/PaletteColours/modal-background",
            "text": "Modal background"
        },
        "$:/language/Docs/PaletteColours/modal-border": {
            "title": "$:/language/Docs/PaletteColours/modal-border",
            "text": "Modal border"
        },
        "$:/language/Docs/PaletteColours/modal-footer-background": {
            "title": "$:/language/Docs/PaletteColours/modal-footer-background",
            "text": "Modal footer background"
        },
        "$:/language/Docs/PaletteColours/modal-footer-border": {
            "title": "$:/language/Docs/PaletteColours/modal-footer-border",
            "text": "Modal footer border"
        },
        "$:/language/Docs/PaletteColours/modal-header-border": {
            "title": "$:/language/Docs/PaletteColours/modal-header-border",
            "text": "Modal header border"
        },
        "$:/language/Docs/PaletteColours/muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/muted-foreground",
            "text": "General muted foreground"
        },
        "$:/language/Docs/PaletteColours/notification-background": {
            "title": "$:/language/Docs/PaletteColours/notification-background",
            "text": "Notification background"
        },
        "$:/language/Docs/PaletteColours/notification-border": {
            "title": "$:/language/Docs/PaletteColours/notification-border",
            "text": "Notification border"
        },
        "$:/language/Docs/PaletteColours/page-background": {
            "title": "$:/language/Docs/PaletteColours/page-background",
            "text": "Page background"
        },
        "$:/language/Docs/PaletteColours/pre-background": {
            "title": "$:/language/Docs/PaletteColours/pre-background",
            "text": "Preformatted code background"
        },
        "$:/language/Docs/PaletteColours/pre-border": {
            "title": "$:/language/Docs/PaletteColours/pre-border",
            "text": "Preformatted code border"
        },
        "$:/language/Docs/PaletteColours/primary": {
            "title": "$:/language/Docs/PaletteColours/primary",
            "text": "General primary"
        },
        "$:/language/Docs/PaletteColours/select-tag-background": {
            "title": "$:/language/Docs/PaletteColours/select-tag-background",
            "text": "`<select>` element background"
        },
        "$:/language/Docs/PaletteColours/select-tag-foreground": {
            "title": "$:/language/Docs/PaletteColours/select-tag-foreground",
            "text": "`<select>` element text"
        },
        "$:/language/Docs/PaletteColours/sidebar-button-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-button-foreground",
            "text": "Sidebar button foreground"
        },
        "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover",
            "text": "Sidebar controls foreground hover"
        },
        "$:/language/Docs/PaletteColours/sidebar-controls-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground",
            "text": "Sidebar controls foreground"
        },
        "$:/language/Docs/PaletteColours/sidebar-foreground-shadow": {
            "title": "$:/language/Docs/PaletteColours/sidebar-foreground-shadow",
            "text": "Sidebar foreground shadow"
        },
        "$:/language/Docs/PaletteColours/sidebar-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-foreground",
            "text": "Sidebar foreground"
        },
        "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover",
            "text": "Sidebar muted foreground hover"
        },
        "$:/language/Docs/PaletteColours/sidebar-muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground",
            "text": "Sidebar muted foreground"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-background-selected": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-background-selected",
            "text": "Sidebar tab background for selected tabs"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-background": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-background",
            "text": "Sidebar tab background"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-border-selected": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-border-selected",
            "text": "Sidebar tab border for selected tabs"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-border": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-border",
            "text": "Sidebar tab border"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-divider": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-divider",
            "text": "Sidebar tab divider"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected",
            "text": "Sidebar tab foreground for selected tabs"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground",
            "text": "Sidebar tab foreground"
        },
        "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover",
            "text": "Sidebar tiddler link foreground hover"
        },
        "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground",
            "text": "Sidebar tiddler link foreground"
        },
        "$:/language/Docs/PaletteColours/site-title-foreground": {
            "title": "$:/language/Docs/PaletteColours/site-title-foreground",
            "text": "Site title foreground"
        },
        "$:/language/Docs/PaletteColours/static-alert-foreground": {
            "title": "$:/language/Docs/PaletteColours/static-alert-foreground",
            "text": "Static alert foreground"
        },
        "$:/language/Docs/PaletteColours/tab-background-selected": {
            "title": "$:/language/Docs/PaletteColours/tab-background-selected",
            "text": "Tab background for selected tabs"
        },
        "$:/language/Docs/PaletteColours/tab-background": {
            "title": "$:/language/Docs/PaletteColours/tab-background",
            "text": "Tab background"
        },
        "$:/language/Docs/PaletteColours/tab-border-selected": {
            "title": "$:/language/Docs/PaletteColours/tab-border-selected",
            "text": "Tab border for selected tabs"
        },
        "$:/language/Docs/PaletteColours/tab-border": {
            "title": "$:/language/Docs/PaletteColours/tab-border",
            "text": "Tab border"
        },
        "$:/language/Docs/PaletteColours/tab-divider": {
            "title": "$:/language/Docs/PaletteColours/tab-divider",
            "text": "Tab divider"
        },
        "$:/language/Docs/PaletteColours/tab-foreground-selected": {
            "title": "$:/language/Docs/PaletteColours/tab-foreground-selected",
            "text": "Tab foreground for selected tabs"
        },
        "$:/language/Docs/PaletteColours/tab-foreground": {
            "title": "$:/language/Docs/PaletteColours/tab-foreground",
            "text": "Tab foreground"
        },
        "$:/language/Docs/PaletteColours/table-border": {
            "title": "$:/language/Docs/PaletteColours/table-border",
            "text": "Table border"
        },
        "$:/language/Docs/PaletteColours/table-footer-background": {
            "title": "$:/language/Docs/PaletteColours/table-footer-background",
            "text": "Table footer background"
        },
        "$:/language/Docs/PaletteColours/table-header-background": {
            "title": "$:/language/Docs/PaletteColours/table-header-background",
            "text": "Table header background"
        },
        "$:/language/Docs/PaletteColours/tag-background": {
            "title": "$:/language/Docs/PaletteColours/tag-background",
            "text": "Tag background"
        },
        "$:/language/Docs/PaletteColours/tag-foreground": {
            "title": "$:/language/Docs/PaletteColours/tag-foreground",
            "text": "Tag foreground"
        },
        "$:/language/Docs/PaletteColours/tiddler-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-background",
            "text": "Tiddler background"
        },
        "$:/language/Docs/PaletteColours/tiddler-border": {
            "title": "$:/language/Docs/PaletteColours/tiddler-border",
            "text": "Tiddler border"
        },
        "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover",
            "text": "Tiddler controls foreground hover"
        },
        "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected": {
            "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected",
            "text": "Tiddler controls foreground for selected controls"
        },
        "$:/language/Docs/PaletteColours/tiddler-controls-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground",
            "text": "Tiddler controls foreground"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-background",
            "text": "Tiddler editor background"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-border-image": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-border-image",
            "text": "Tiddler editor border image"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-border": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-border",
            "text": "Tiddler editor border"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-fields-even": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-even",
            "text": "Tiddler editor background for even fields"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd",
            "text": "Tiddler editor background for odd fields"
        },
        "$:/language/Docs/PaletteColours/tiddler-info-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-info-background",
            "text": "Tiddler info panel background"
        },
        "$:/language/Docs/PaletteColours/tiddler-info-border": {
            "title": "$:/language/Docs/PaletteColours/tiddler-info-border",
            "text": "Tiddler info panel border"
        },
        "$:/language/Docs/PaletteColours/tiddler-info-tab-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-info-tab-background",
            "text": "Tiddler info panel tab background"
        },
        "$:/language/Docs/PaletteColours/tiddler-link-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-link-background",
            "text": "Tiddler link background"
        },
        "$:/language/Docs/PaletteColours/tiddler-link-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-link-foreground",
            "text": "Tiddler link foreground"
        },
        "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground",
            "text": "Tiddler subtitle foreground"
        },
        "$:/language/Docs/PaletteColours/tiddler-title-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-title-foreground",
            "text": "Tiddler title foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-new-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-new-button",
            "text": "Toolbar 'new tiddler' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-options-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-options-button",
            "text": "Toolbar 'options' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-save-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-save-button",
            "text": "Toolbar 'save' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-info-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-info-button",
            "text": "Toolbar 'info' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-edit-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-edit-button",
            "text": "Toolbar 'edit' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-close-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-close-button",
            "text": "Toolbar 'close' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-delete-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-delete-button",
            "text": "Toolbar 'delete' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-cancel-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-cancel-button",
            "text": "Toolbar 'cancel' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-done-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-done-button",
            "text": "Toolbar 'done' button foreground"
        },
        "$:/language/Docs/PaletteColours/untagged-background": {
            "title": "$:/language/Docs/PaletteColours/untagged-background",
            "text": "Untagged pill background"
        },
        "$:/language/Docs/PaletteColours/very-muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/very-muted-foreground",
            "text": "Very muted foreground"
        },
        "$:/language/EditTemplate/Body/External/Hint": {
            "title": "$:/language/EditTemplate/Body/External/Hint",
            "text": "This tiddler shows content stored outside of the main TiddlyWiki file. You can edit the tags and fields but cannot directly edit the content itself"
        },
        "$:/language/EditTemplate/Body/Placeholder": {
            "title": "$:/language/EditTemplate/Body/Placeholder",
            "text": "Type the text for this tiddler"
        },
        "$:/language/EditTemplate/Body/Preview/Type/Output": {
            "title": "$:/language/EditTemplate/Body/Preview/Type/Output",
            "text": "output"
        },
        "$:/language/EditTemplate/Field/Remove/Caption": {
            "title": "$:/language/EditTemplate/Field/Remove/Caption",
            "text": "remove field"
        },
        "$:/language/EditTemplate/Field/Remove/Hint": {
            "title": "$:/language/EditTemplate/Field/Remove/Hint",
            "text": "Remove field"
        },
        "$:/language/EditTemplate/Field/Dropdown/Caption": {
            "title": "$:/language/EditTemplate/Field/Dropdown/Caption",
            "text": "field list"
        },
        "$:/language/EditTemplate/Field/Dropdown/Hint": {
            "title": "$:/language/EditTemplate/Field/Dropdown/Hint",
            "text": "Show field list"
        },
        "$:/language/EditTemplate/Fields/Add/Button": {
            "title": "$:/language/EditTemplate/Fields/Add/Button",
            "text": "add"
        },
        "$:/language/EditTemplate/Fields/Add/Button/Hint": {
            "title": "$:/language/EditTemplate/Fields/Add/Button/Hint",
            "text": "Add the new field to the tiddler"
        },
        "$:/language/EditTemplate/Fields/Add/Name/Placeholder": {
            "title": "$:/language/EditTemplate/Fields/Add/Name/Placeholder",
            "text": "field name"
        },
        "$:/language/EditTemplate/Fields/Add/Prompt": {
            "title": "$:/language/EditTemplate/Fields/Add/Prompt",
            "text": "Add a new field:"
        },
        "$:/language/EditTemplate/Fields/Add/Value/Placeholder": {
            "title": "$:/language/EditTemplate/Fields/Add/Value/Placeholder",
            "text": "field value"
        },
        "$:/language/EditTemplate/Fields/Add/Dropdown/System": {
            "title": "$:/language/EditTemplate/Fields/Add/Dropdown/System",
            "text": "System fields"
        },
        "$:/language/EditTemplate/Fields/Add/Dropdown/User": {
            "title": "$:/language/EditTemplate/Fields/Add/Dropdown/User",
            "text": "User fields"
        },
        "$:/language/EditTemplate/Shadow/Warning": {
            "title": "$:/language/EditTemplate/Shadow/Warning",
            "text": "This is a shadow tiddler. Any changes you make will override the default version from the plugin <<pluginLink>>"
        },
        "$:/language/EditTemplate/Shadow/OverriddenWarning": {
            "title": "$:/language/EditTemplate/Shadow/OverriddenWarning",
            "text": "This is a modified shadow tiddler. You can revert to the default version in the plugin <<pluginLink>> by deleting this tiddler"
        },
        "$:/language/EditTemplate/Tags/Add/Button": {
            "title": "$:/language/EditTemplate/Tags/Add/Button",
            "text": "add"
        },
        "$:/language/EditTemplate/Tags/Add/Button/Hint": {
            "title": "$:/language/EditTemplate/Tags/Add/Button/Hint",
            "text": "add tag"
        },
        "$:/language/EditTemplate/Tags/Add/Placeholder": {
            "title": "$:/language/EditTemplate/Tags/Add/Placeholder",
            "text": "tag name"
        },
        "$:/language/EditTemplate/Tags/ClearInput/Caption": {
            "title": "$:/language/EditTemplate/Tags/ClearInput/Caption",
            "text": "clear input"
        },
        "$:/language/EditTemplate/Tags/ClearInput/Hint": {
            "title": "$:/language/EditTemplate/Tags/ClearInput/Hint",
            "text": "Clear tag input"
        },
        "$:/language/EditTemplate/Tags/Dropdown/Caption": {
            "title": "$:/language/EditTemplate/Tags/Dropdown/Caption",
            "text": "tag list"
        },
        "$:/language/EditTemplate/Tags/Dropdown/Hint": {
            "title": "$:/language/EditTemplate/Tags/Dropdown/Hint",
            "text": "Show tag list"
        },
        "$:/language/EditTemplate/Title/BadCharacterWarning": {
            "title": "$:/language/EditTemplate/Title/BadCharacterWarning",
            "text": "Warning: avoid using any of the characters <<bad-chars>> in tiddler titles"
        },
        "$:/language/EditTemplate/Title/Exists/Prompt": {
            "title": "$:/language/EditTemplate/Title/Exists/Prompt",
            "text": "Target tiddler already exists"
        },
        "$:/language/EditTemplate/Title/Relink/Prompt": {
            "title": "$:/language/EditTemplate/Title/Relink/Prompt",
            "text": "Update ''<$text text=<<fromTitle>>/>'' to ''<$text text=<<toTitle>>/>'' in the //tags// and //list// fields of other tiddlers"
        },
        "$:/language/EditTemplate/Title/References/Prompt": {
            "title": "$:/language/EditTemplate/Title/References/Prompt",
            "text": "The following references to this tiddler will not be automatically updated:"
        },
        "$:/language/EditTemplate/Type/Dropdown/Caption": {
            "title": "$:/language/EditTemplate/Type/Dropdown/Caption",
            "text": "content type list"
        },
        "$:/language/EditTemplate/Type/Dropdown/Hint": {
            "title": "$:/language/EditTemplate/Type/Dropdown/Hint",
            "text": "Show content type list"
        },
        "$:/language/EditTemplate/Type/Delete/Caption": {
            "title": "$:/language/EditTemplate/Type/Delete/Caption",
            "text": "delete content type"
        },
        "$:/language/EditTemplate/Type/Delete/Hint": {
            "title": "$:/language/EditTemplate/Type/Delete/Hint",
            "text": "Delete content type"
        },
        "$:/language/EditTemplate/Type/Placeholder": {
            "title": "$:/language/EditTemplate/Type/Placeholder",
            "text": "content type"
        },
        "$:/language/EditTemplate/Type/Prompt": {
            "title": "$:/language/EditTemplate/Type/Prompt",
            "text": "Type:"
        },
        "$:/language/Exporters/StaticRiver": {
            "title": "$:/language/Exporters/StaticRiver",
            "text": "Static HTML"
        },
        "$:/language/Exporters/JsonFile": {
            "title": "$:/language/Exporters/JsonFile",
            "text": "JSON file"
        },
        "$:/language/Exporters/CsvFile": {
            "title": "$:/language/Exporters/CsvFile",
            "text": "CSV file"
        },
        "$:/language/Exporters/TidFile": {
            "title": "$:/language/Exporters/TidFile",
            "text": "\".tid\" file"
        },
        "$:/language/Docs/Fields/_canonical_uri": {
            "title": "$:/language/Docs/Fields/_canonical_uri",
            "text": "The full URI of an external image tiddler"
        },
        "$:/language/Docs/Fields/bag": {
            "title": "$:/language/Docs/Fields/bag",
            "text": "The name of the bag from which a tiddler came"
        },
        "$:/language/Docs/Fields/caption": {
            "title": "$:/language/Docs/Fields/caption",
            "text": "The text to be displayed on a tab or button"
        },
        "$:/language/Docs/Fields/color": {
            "title": "$:/language/Docs/Fields/color",
            "text": "The CSS color value associated with a tiddler"
        },
        "$:/language/Docs/Fields/component": {
            "title": "$:/language/Docs/Fields/component",
            "text": "The name of the component responsible for an [[alert tiddler|AlertMechanism]]"
        },
        "$:/language/Docs/Fields/current-tiddler": {
            "title": "$:/language/Docs/Fields/current-tiddler",
            "text": "Used to cache the top tiddler in a [[history list|HistoryMechanism]]"
        },
        "$:/language/Docs/Fields/created": {
            "title": "$:/language/Docs/Fields/created",
            "text": "The date a tiddler was created"
        },
        "$:/language/Docs/Fields/creator": {
            "title": "$:/language/Docs/Fields/creator",
            "text": "The name of the person who created a tiddler"
        },
        "$:/language/Docs/Fields/dependents": {
            "title": "$:/language/Docs/Fields/dependents",
            "text": "For a plugin, lists the dependent plugin titles"
        },
        "$:/language/Docs/Fields/description": {
            "title": "$:/language/Docs/Fields/description",
            "text": "The descriptive text for a plugin, or a modal dialogue"
        },
        "$:/language/Docs/Fields/draft.of": {
            "title": "$:/language/Docs/Fields/draft.of",
            "text": "For draft tiddlers, contains the title of the tiddler of which this is a draft"
        },
        "$:/language/Docs/Fields/draft.title": {
            "title": "$:/language/Docs/Fields/draft.title",
            "text": "For draft tiddlers, contains the proposed new title of the tiddler"
        },
        "$:/language/Docs/Fields/footer": {
            "title": "$:/language/Docs/Fields/footer",
            "text": "The footer text for a wizard"
        },
        "$:/language/Docs/Fields/hide-body": {
            "title": "$:/language/Docs/Fields/hide-body",
            "text": "The view template will hide bodies of tiddlers if set to: ''yes''"
        },
        "$:/language/Docs/Fields/icon": {
            "title": "$:/language/Docs/Fields/icon",
            "text": "The title of the tiddler containing the icon associated with a tiddler"
        },
        "$:/language/Docs/Fields/library": {
            "title": "$:/language/Docs/Fields/library",
            "text": "Indicates that a tiddler should be saved as a JavaScript library if set to: ''yes''"
        },
        "$:/language/Docs/Fields/list": {
            "title": "$:/language/Docs/Fields/list",
            "text": "An ordered list of tiddler titles associated with a tiddler"
        },
        "$:/language/Docs/Fields/list-before": {
            "title": "$:/language/Docs/Fields/list-before",
            "text": "If set, the title of a tiddler before which this tiddler should be added to the ordered list of tiddler titles, or at the start of the list if this field is present but empty"
        },
        "$:/language/Docs/Fields/list-after": {
            "title": "$:/language/Docs/Fields/list-after",
            "text": "If set, the title of the tiddler after which this tiddler should be added to the ordered list of tiddler titles, or at the end of the list if this field is present but empty"
        },
        "$:/language/Docs/Fields/modified": {
            "title": "$:/language/Docs/Fields/modified",
            "text": "The date and time at which a tiddler was last modified"
        },
        "$:/language/Docs/Fields/modifier": {
            "title": "$:/language/Docs/Fields/modifier",
            "text": "The tiddler title associated with the person who last modified a tiddler"
        },
        "$:/language/Docs/Fields/name": {
            "title": "$:/language/Docs/Fields/name",
            "text": "The human readable name associated with a plugin tiddler"
        },
        "$:/language/Docs/Fields/plugin-priority": {
            "title": "$:/language/Docs/Fields/plugin-priority",
            "text": "A numerical value indicating the priority of a plugin tiddler"
        },
        "$:/language/Docs/Fields/plugin-type": {
            "title": "$:/language/Docs/Fields/plugin-type",
            "text": "The type of plugin in a plugin tiddler"
        },
        "$:/language/Docs/Fields/revision": {
            "title": "$:/language/Docs/Fields/revision",
            "text": "The revision of the tiddler held at the server"
        },
        "$:/language/Docs/Fields/released": {
            "title": "$:/language/Docs/Fields/released",
            "text": "Date of a TiddlyWiki release"
        },
        "$:/language/Docs/Fields/source": {
            "title": "$:/language/Docs/Fields/source",
            "text": "The source URL associated with a tiddler"
        },
        "$:/language/Docs/Fields/subtitle": {
            "title": "$:/language/Docs/Fields/subtitle",
            "text": "The subtitle text for a wizard"
        },
        "$:/language/Docs/Fields/tags": {
            "title": "$:/language/Docs/Fields/tags",
            "text": "A list of tags associated with a tiddler"
        },
        "$:/language/Docs/Fields/text": {
            "title": "$:/language/Docs/Fields/text",
            "text": "The body text of a tiddler"
        },
        "$:/language/Docs/Fields/throttle.refresh": {
            "title": "$:/language/Docs/Fields/throttle.refresh",
            "text": "If present, throttles refreshes of this tiddler"
        },
        "$:/language/Docs/Fields/title": {
            "title": "$:/language/Docs/Fields/title",
            "text": "The unique name of a tiddler"
        },
        "$:/language/Docs/Fields/toc-link": {
            "title": "$:/language/Docs/Fields/toc-link",
            "text": "Suppresses the tiddler's link in a Table of Contents tree if set to: ''no''"
        },
        "$:/language/Docs/Fields/type": {
            "title": "$:/language/Docs/Fields/type",
            "text": "The content type of a tiddler"
        },
        "$:/language/Docs/Fields/version": {
            "title": "$:/language/Docs/Fields/version",
            "text": "Version information for a plugin"
        },
        "$:/language/Docs/Fields/_is_skinny": {
            "title": "$:/language/Docs/Fields/_is_skinny",
            "text": "If present, indicates that the tiddler text field must be loaded from the server"
        },
        "$:/language/Filters/AllTiddlers": {
            "title": "$:/language/Filters/AllTiddlers",
            "text": "All tiddlers except system tiddlers"
        },
        "$:/language/Filters/RecentSystemTiddlers": {
            "title": "$:/language/Filters/RecentSystemTiddlers",
            "text": "Recently modified tiddlers, including system tiddlers"
        },
        "$:/language/Filters/RecentTiddlers": {
            "title": "$:/language/Filters/RecentTiddlers",
            "text": "Recently modified tiddlers"
        },
        "$:/language/Filters/AllTags": {
            "title": "$:/language/Filters/AllTags",
            "text": "All tags except system tags"
        },
        "$:/language/Filters/Missing": {
            "title": "$:/language/Filters/Missing",
            "text": "Missing tiddlers"
        },
        "$:/language/Filters/Drafts": {
            "title": "$:/language/Filters/Drafts",
            "text": "Draft tiddlers"
        },
        "$:/language/Filters/Orphans": {
            "title": "$:/language/Filters/Orphans",
            "text": "Orphan tiddlers"
        },
        "$:/language/Filters/SystemTiddlers": {
            "title": "$:/language/Filters/SystemTiddlers",
            "text": "System tiddlers"
        },
        "$:/language/Filters/ShadowTiddlers": {
            "title": "$:/language/Filters/ShadowTiddlers",
            "text": "Shadow tiddlers"
        },
        "$:/language/Filters/OverriddenShadowTiddlers": {
            "title": "$:/language/Filters/OverriddenShadowTiddlers",
            "text": "Overridden shadow tiddlers"
        },
        "$:/language/Filters/SessionTiddlers": {
            "title": "$:/language/Filters/SessionTiddlers",
            "text": "Tiddlers modified since the wiki was loaded"
        },
        "$:/language/Filters/SystemTags": {
            "title": "$:/language/Filters/SystemTags",
            "text": "System tags"
        },
        "$:/language/Filters/StoryList": {
            "title": "$:/language/Filters/StoryList",
            "text": "Tiddlers in the story river, excluding <$text text=\"$:/AdvancedSearch\"/>"
        },
        "$:/language/Filters/TypedTiddlers": {
            "title": "$:/language/Filters/TypedTiddlers",
            "text": "Non wiki-text tiddlers"
        },
        "GettingStarted": {
            "title": "GettingStarted",
            "text": "\\define lingo-base() $:/language/ControlPanel/Basics/\nWelcome to ~TiddlyWiki and the ~TiddlyWiki community\n\nBefore you start storing important information in ~TiddlyWiki it is vital to make sure that you can reliably save changes. See https://tiddlywiki.com/#GettingStarted for details\n\n!! Set up this ~TiddlyWiki\n\n<div class=\"tc-control-panel\">\n\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n</div>\n\nSee the [[control panel|$:/ControlPanel]] for more options.\n"
        },
        "$:/language/Help/build": {
            "title": "$:/language/Help/build",
            "description": "Automatically run configured commands",
            "text": "Build the specified build targets for the current wiki. If no build targets are specified then all available targets will be built.\n\n```\n--build <target> [<target> ...]\n```\n\nBuild targets are defined in the `tiddlywiki.info` file of a wiki folder.\n\n"
        },
        "$:/language/Help/clearpassword": {
            "title": "$:/language/Help/clearpassword",
            "description": "Clear a password for subsequent crypto operations",
            "text": "Clear the password for subsequent crypto operations\n\n```\n--clearpassword\n```\n"
        },
        "$:/language/Help/default": {
            "title": "$:/language/Help/default",
            "text": "\\define commandTitle()\n$:/language/Help/$(command)$\n\\end\n```\nusage: tiddlywiki [<wikifolder>] [--<command> [<args>...]...]\n```\n\nAvailable commands:\n\n<ul>\n<$list filter=\"[commands[]sort[title]]\" variable=\"command\">\n<li><$link to=<<commandTitle>>><$macrocall $name=\"command\" $type=\"text/plain\" $output=\"text/plain\"/></$link>: <$transclude tiddler=<<commandTitle>> field=\"description\"/></li>\n</$list>\n</ul>\n\nTo get detailed help on a command:\n\n```\ntiddlywiki --help <command>\n```\n"
        },
        "$:/language/Help/deletetiddlers": {
            "title": "$:/language/Help/deletetiddlers",
            "description": "Deletes a group of tiddlers",
            "text": "<<.from-version \"5.1.20\">> Deletes a group of tiddlers identified by a filter.\n\n```\n--deletetiddlers <filter>\n```\n"
        },
        "$:/language/Help/editions": {
            "title": "$:/language/Help/editions",
            "description": "Lists the available editions of TiddlyWiki",
            "text": "Lists the names and descriptions of the available editions. You can create a new wiki of a specified edition with the `--init` command.\n\n```\n--editions\n```\n"
        },
        "$:/language/Help/fetch": {
            "title": "$:/language/Help/fetch",
            "description": "Fetch tiddlers from wiki by URL",
            "text": "Fetch one or more files over HTTP/HTTPS, and import the tiddlers matching a filter, optionally transforming the incoming titles.\n\n```\n--fetch file <url> <import-filter> <transform-filter>\n--fetch files <url-filter> <import-filter> <transform-filter>\n--fetch raw-file <url> <transform-filter>\n--fetch raw-files <url-filter> <transform-filter>\n```\n\nThe \"file\" and \"files\" variants fetch the specified files and attempt to import the tiddlers within them (the same processing as if the files were dragged into the browser window). The \"raw-file\" and \"raw-files\" variants fetch the specified files and then store the raw file data in tiddlers, without applying the import logic.\n\nWith the \"file\" and \"raw-file\" variants only a single file is fetched and the first parameter is the URL of the file to read.\n\nWith the \"files\" and \"raw-files\" variants, multiple files are fetched and the first parameter is a filter yielding a list of URLs of the files to read. For example, given a set of tiddlers tagged \"remote-server\" that have a field \"url\" the filter `[tag[remote-server]get[url]]` will retrieve all the available URLs.\n\nFor the \"file\" and \"files\" variants, the `<import-filter>` parameter specifies a filter determining which tiddlers are imported. It defaults to `[all[tiddlers]]` if not provided.\n\nFor all variants, the `<transform-filter>` parameter specifies an optional filter that transforms the titles of the imported tiddlers. For example, `[addprefix[$:/myimports/]]` would add the prefix `$:/myimports/` to each title.\n\nPreceding the `--fetch` command with `--verbose` will output progress information during the import.\n\nNote that TiddlyWiki will not fetch an older version of an already loaded plugin.\n\nThe following example retrieves all the non-system tiddlers from https://tiddlywiki.com and saves them to a JSON file:\n\n```\ntiddlywiki --verbose --fetch file \"https://tiddlywiki.com/\" \"[!is[system]]\" \"\" --rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[!is[system]]\"\n```\n\nThe following example retrieves the \"favicon\" file from tiddlywiki.com and saves it in a file called \"output.ico\". Note that the intermediate tiddler \"Icon Tiddler\" is quoted in the \"--fetch\" command because it is being used as a transformation filter to replace the default title, while there are no quotes for the \"--savetiddler\" command because it is being used directly as a title.\n\n```\ntiddlywiki --verbose --fetch raw-file \"https://tiddlywiki.com/favicon.ico\" \"[[Icon Tiddler]]\" --savetiddler \"Icon Tiddler\" output.ico\n```\n\n"
        },
        "$:/language/Help/help": {
            "title": "$:/language/Help/help",
            "description": "Display help for TiddlyWiki commands",
            "text": "Displays help text for a command:\n\n```\n--help [<command>]\n```\n\nIf the command name is omitted then a list of available commands is displayed.\n"
        },
        "$:/language/Help/import": {
            "title": "$:/language/Help/import",
            "description": "Import tiddlers from a file",
            "text": "Import tiddlers from TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` or other local files. The deserializer must be explicitly specified, unlike the `load` command which infers the deserializer from the file extension.\n\n```\n--import <filepath> <deserializer> [<title>] [<encoding>]\n```\n\nThe deserializers in the core include:\n\n* application/javascript\n* application/json\n* application/x-tiddler\n* application/x-tiddler-html-div\n* application/x-tiddlers\n* text/html\n* text/plain\n\nThe title of the imported tiddler defaults to the filename.\n\nThe encoding defaults to \"utf8\", but can be \"base64\" for importing binary files.\n\nNote that TiddlyWiki will not import an older version of an already loaded plugin.\n"
        },
        "$:/language/Help/init": {
            "title": "$:/language/Help/init",
            "description": "Initialise a new wiki folder",
            "text": "Initialise an empty [[WikiFolder|WikiFolders]] with a copy of the specified edition.\n\n```\n--init <edition> [<edition> ...]\n```\n\nFor example:\n\n```\ntiddlywiki ./MyWikiFolder --init empty\n```\n\nNote:\n\n* The wiki folder directory will be created if necessary\n* The \"edition\" defaults to ''empty''\n* The init command will fail if the wiki folder is not empty\n* The init command removes any `includeWikis` definitions in the edition's `tiddlywiki.info` file\n* When multiple editions are specified, editions initialised later will overwrite any files shared with earlier editions (so, the final `tiddlywiki.info` file will be copied from the last edition)\n* `--editions` returns a list of available editions\n"
        },
        "$:/language/Help/listen": {
            "title": "$:/language/Help/listen",
            "description": "Provides an HTTP server interface to TiddlyWiki",
            "text": "Serves a wiki over HTTP.\n\nThe listen command uses NamedCommandParameters:\n\n```\n--listen [<name>=<value>]...\n```\n\nAll parameters are optional with safe defaults, and can be specified in any order. The recognised parameters are:\n\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''path-prefix'' - optional prefix for paths\n* ''port'' - port number on which to listen; non-numeric values are interpreted as a system environment variable from which the port number is extracted (defaults to \"8080\")\n* ''credentials'' - pathname of credentials CSV file (relative to wiki folder)\n* ''anon-username'' - the username for signing edits for anonymous users\n* ''username'' - optional username for basic authentication\n* ''password'' - optional password for basic authentication\n* ''authenticated-user-header'' - optional name of header to be used for trusted authentication\n* ''readers'' - comma separated list of principals allowed to read from this wiki\n* ''writers'' - comma separated list of principals allowed to write to this wiki\n* ''csrf-disable'' - set to \"yes\" to disable CSRF checks (defaults to \"no\")\n* ''root-tiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''root-render-type'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''root-serve-type'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''tls-cert'' - pathname of TLS certificate file (relative to wiki folder)\n* ''tls-key'' - pathname of TLS key file (relative to wiki folder)\n* ''debug-level'' - optional debug level; set to \"debug\" to view request details (defaults to \"none\")\n* ''gzip'' - set to \"yes\" to enable gzip compression for some http endpoints (defaults to \"no\")\n\nFor information on opening up your instance to the entire local network, and possible security concerns, see the WebServer tiddler at TiddlyWiki.com.\n\n"
        },
        "$:/language/Help/load": {
            "title": "$:/language/Help/load",
            "description": "Load tiddlers from a file",
            "text": "Load tiddlers from TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` or other local files. The processing applied to incoming files is determined by the file extension. Use the alternative `import` command if you need to specify the deserializer and encoding explicitly.\n\n```\n--load <filepath> [noerror]\n--load <dirpath> [noerror]\n```\n\nBy default, the load command raises an error if no tiddlers are found. The error can be suppressed by providing the optional \"noerror\" parameter.\n\nTo load tiddlers from an encrypted TiddlyWiki file you should first specify the password with the PasswordCommand. For example:\n\n```\ntiddlywiki ./MyWiki --password pa55w0rd --load my_encrypted_wiki.html\n```\n\nNote that TiddlyWiki will not load an older version of an already loaded plugin.\n"
        },
        "$:/language/Help/makelibrary": {
            "title": "$:/language/Help/makelibrary",
            "description": "Construct library plugin required by upgrade process",
            "text": "Constructs the `$:/UpgradeLibrary` tiddler for the upgrade process.\n\nThe upgrade library is formatted as an ordinary plugin tiddler with the plugin type `library`. It contains a copy of each of the plugins, themes and language packs available within the TiddlyWiki5 repository.\n\nThis command is intended for internal use; it is only relevant to users constructing a custom upgrade procedure.\n\n```\n--makelibrary <title>\n```\n\nThe title argument defaults to `$:/UpgradeLibrary`.\n"
        },
        "$:/language/Help/notfound": {
            "title": "$:/language/Help/notfound",
            "text": "No such help item"
        },
        "$:/language/Help/output": {
            "title": "$:/language/Help/output",
            "description": "Set the base output directory for subsequent commands",
            "text": "Sets the base output directory for subsequent commands. The default output directory is the `output` subdirectory of the edition directory.\n\n```\n--output <pathname>\n```\n\nIf the specified pathname is relative then it is resolved relative to the current working directory. For example `--output .` sets the output directory to the current working directory.\n\n"
        },
        "$:/language/Help/password": {
            "title": "$:/language/Help/password",
            "description": "Set a password for subsequent crypto operations",
            "text": "Set a password for subsequent crypto operations\n\n```\n--password <password>\n```\n\n''Note'': This should not be used for serving TiddlyWiki with password protection. Instead, see the password option under the [[ServerCommand]].\n"
        },
        "$:/language/Help/render": {
            "title": "$:/language/Help/render",
            "description": "Renders individual tiddlers to files",
            "text": "Render individual tiddlers identified by a filter and save the results to the specified files.\n\nOptionally, the title of a template tiddler can be specified. In this case, instead of directly rendering each tiddler, the template tiddler is rendered with the \"currentTiddler\" variable set to the title of the tiddler that is being rendered.\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--render <tiddler-filter> [<filename-filter>] [<render-type>] [<template>] [<name>] [<value>]\n```\n\n* ''tiddler-filter'': A filter identifying the tiddler(s) to be rendered\n* ''filename-filter'': Optional filter transforming tiddler titles into pathnames. If omitted, defaults to `[is[tiddler]addsuffix[.html]]`, which uses the unchanged tiddler title as the filename\n* ''render-type'': Optional render type: `text/html` (the default) returns the full HTML text and `text/plain` just returns the text content (ie it ignores HTML tags and other unprintable material)\n* ''template'': Optional template through which each tiddler is rendered\n* ''name'': Name of optional variable\n* ''value'': Value of optional variable\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nNotes:\n\n* The output directory is not cleared of any existing files\n* Any missing directories in the path to the filename are automatically created.\n* When referring to a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--render \"[[Motovun Jack.jpg]]\"`\n* The filename filter is evaluated with the selected items being set to the title of the tiddler currently being rendered, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/`\n* The `--render` command is a more flexible replacement for both the `--rendertiddler` and `--rendertiddlers` commands, which are deprecated\n\nExamples:\n\n* `--render \"[!is[system]]\" \"[encodeuricomponent[]addprefix[tiddlers/]addsuffix[.html]]\"` -- renders all non-system tiddlers as files in the subdirectory \"tiddlers\" with URL-encoded titles and the extension HTML\n\n"
        },
        "$:/language/Help/rendertiddler": {
            "title": "$:/language/Help/rendertiddler",
            "description": "Render an individual tiddler as a specified ContentType",
            "text": "(Note: The `--rendertiddler` command is deprecated in favour of the new, more flexible `--render` command)\n\nRender an individual tiddler as a specified ContentType, defaulting to `text/html` and save it to the specified filename.\n\nOptionally the title of a template tiddler can be specified, in which case the template tiddler is rendered with the \"currentTiddler\" variable set to the tiddler that is being rendered (the first parameter value).\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--rendertiddler <title> <filename> [<type>] [<template>] [<name>] [<value>]\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n\nFor example, the following command saves all tiddlers matching the filter `[tag[done]]` to a JSON file titled `output.json` by employing the core template `$:/core/templates/exporters/JsonFile`.\n\n```\n--rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[tag[done]]\"\n```\n"
        },
        "$:/language/Help/rendertiddlers": {
            "title": "$:/language/Help/rendertiddlers",
            "description": "Render tiddlers matching a filter to a specified ContentType",
            "text": "(Note: The `--rendertiddlers` command is deprecated in favour of the new, more flexible `--render` command)\n\nRender a set of tiddlers matching a filter to separate files of a specified ContentType (defaults to `text/html`) and extension (defaults to `.html`).\n\n```\n--rendertiddlers '<filter>' <template> <pathname> [<type>] [<extension>] [\"noclean\"]\n```\n\nFor example:\n\n```\n--rendertiddlers '[!is[system]]' $:/core/templates/static.tiddler.html ./static text/plain\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny files in the target directory are deleted unless the ''noclean'' flag is specified. The target directory is recursively created if it is missing.\n"
        },
        "$:/language/Help/save": {
            "title": "$:/language/Help/save",
            "description": "Saves individual raw tiddlers to files",
            "text": "Saves individual tiddlers identified by a filter in their raw text or binary format to the specified files.\n\n```\n--save <tiddler-filter> <filename-filter>\n```\n\n* ''tiddler-filter'': A filter identifying the tiddler(s) to be saved\n* ''filename-filter'': Optional filter transforming tiddler titles into pathnames. If omitted, defaults to `[is[tiddler]]`, which uses the unchanged tiddler title as the filename\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nNotes:\n\n* The output directory is not cleared of any existing files\n* Any missing directories in the path to the filename are automatically created.\n* When saving a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--save \"[[Motovun Jack.jpg]]\"`\n* The filename filter is evaluated with the selected items being set to the title of the tiddler currently being saved, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/`\n* The `--save` command is a more flexible replacement for both the `--savetiddler` and `--savetiddlers` commands, which are deprecated\n\nExamples:\n\n* `--save \"[!is[system]is[image]]\" \"[encodeuricomponent[]addprefix[tiddlers/]]\"` -- saves all non-system image tiddlers as files in the subdirectory \"tiddlers\" with URL-encoded titles\n"
        },
        "$:/language/Help/savetiddler": {
            "title": "$:/language/Help/savetiddler",
            "description": "Saves a raw tiddler to a file",
            "text": "(Note: The `--savetiddler` command is deprecated in favour of the new, more flexible `--save` command)\n\nSaves an individual tiddler in its raw text or binary format to the specified filename.\n\n```\n--savetiddler <title> <filename>\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n"
        },
        "$:/language/Help/savetiddlers": {
            "title": "$:/language/Help/savetiddlers",
            "description": "Saves a group of raw tiddlers to a directory",
            "text": "(Note: The `--savetiddlers` command is deprecated in favour of the new, more flexible `--save` command)\n\nSaves a group of tiddlers in their raw text or binary format to the specified directory.\n\n```\n--savetiddlers <filter> <pathname> [\"noclean\"]\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nThe output directory is cleared of existing files before saving the specified files. The deletion can be disabled by specifying the ''noclean'' flag.\n\nAny missing directories in the pathname are automatically created.\n"
        },
        "$:/language/Help/savewikifolder": {
            "title": "$:/language/Help/savewikifolder",
            "description": "Saves a wiki to a new wiki folder",
            "text": "<<.from-version \"5.1.20\">> Saves the current wiki as a wiki folder, including tiddlers, plugins and configuration:\n\n```\n--savewikifolder <wikifolderpath> [<filter>]\n```\n\n* The target wiki folder must be empty or non-existent\n* The filter specifies which tiddlers should be included. It is optional, defaulting to `[all[tiddlers]]`\n* Plugins from the official plugin library are replaced with references to those plugins in the `tiddlywiki.info` file\n* Custom plugins are unpacked into their own folder\n\nA common usage is to convert a TiddlyWiki HTML file into a wiki folder:\n\n```\ntiddlywiki --load ./mywiki.html --savewikifolder ./mywikifolder\n```\n"
        },
        "$:/language/Help/server": {
            "title": "$:/language/Help/server",
            "description": "Provides an HTTP server interface to TiddlyWiki (deprecated in favour of the new listen command)",
            "text": "Legacy command to serve a wiki over HTTP.\n\n```\n--server <port> <root-tiddler> <root-render-type> <root-serve-type> <username> <password> <host> <path-prefix> <debug-level>\n```\n\nThe parameters are:\n\n* ''port'' - port number on which to listen; non-numeric values are interpreted as a system environment variable from which the port number is extracted (defaults to \"8080\")\n* ''root-tiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''root-render-type'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''root-serve-type'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''username'' - the default username for signing edits\n* ''password'' - optional password for basic authentication\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''path-prefix'' - optional prefix for paths\n* ''debug-level'' - optional debug level; set to \"debug\" to view request details (defaults to \"none\")\n\nIf the password parameter is specified then the browser will prompt the user for the username and password. Note that the password is transmitted in plain text so this implementation should only be used on a trusted network or over HTTPS.\n\nFor example:\n\n```\n--server 8080 $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n\nThe username and password can be specified as empty strings if you need to set the hostname or pathprefix and don't want to require a password.\n\n\n```\n--server 8080 $:/core/save/all text/plain text/html \"\" \"\" 192.168.0.245\n```\n\nUsing an address like this exposes your system to the local network. For information on opening up your instance to the entire local network, and possible security concerns, see the WebServer tiddler at TiddlyWiki.com.\n\nTo run multiple TiddlyWiki servers at the same time you'll need to put each one on a different port. It can be useful to use an environment variable to pass the port number to the Node.js process. This example references an environment variable called \"MY_PORT_NUMBER\":\n\n```\n--server MY_PORT_NUMBER $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n"
        },
        "$:/language/Help/setfield": {
            "title": "$:/language/Help/setfield",
            "description": "Prepares external tiddlers for use",
            "text": "//Note that this command is experimental and may change or be replaced before being finalised//\n\nSets the specified field of a group of tiddlers to the result of wikifying a template tiddler with the `currentTiddler` variable set to the tiddler.\n\n```\n--setfield <filter> <fieldname> <templatetitle> <rendertype>\n```\n\nThe parameters are:\n\n* ''filter'' - filter identifying the tiddlers to be affected\n* ''fieldname'' - the field to modify (defaults to \"text\")\n* ''templatetitle'' - the tiddler to wikify into the specified field. If blank or missing then the specified field is deleted\n* ''rendertype'' - the text type to render (defaults to \"text/plain\"; \"text/html\" can be used to include HTML tags)\n"
        },
        "$:/language/Help/unpackplugin": {
            "title": "$:/language/Help/unpackplugin",
            "description": "Unpack the payload tiddlers from a plugin",
            "text": "Extract the payload tiddlers from a plugin, creating them as ordinary tiddlers:\n\n```\n--unpackplugin <title>\n```\n"
        },
        "$:/language/Help/verbose": {
            "title": "$:/language/Help/verbose",
            "description": "Triggers verbose output mode",
            "text": "Triggers verbose output, useful for debugging\n\n```\n--verbose\n```\n"
        },
        "$:/language/Help/version": {
            "title": "$:/language/Help/version",
            "description": "Displays the version number of TiddlyWiki",
            "text": "Displays the version number of TiddlyWiki.\n\n```\n--version\n```\n"
        },
        "$:/language/Import/Imported/Hint": {
            "title": "$:/language/Import/Imported/Hint",
            "text": "The following tiddlers were imported:"
        },
        "$:/language/Import/Listing/Cancel/Caption": {
            "title": "$:/language/Import/Listing/Cancel/Caption",
            "text": "Cancel"
        },
        "$:/language/Import/Listing/Hint": {
            "title": "$:/language/Import/Listing/Hint",
            "text": "These tiddlers are ready to import:"
        },
        "$:/language/Import/Listing/Import/Caption": {
            "title": "$:/language/Import/Listing/Import/Caption",
            "text": "Import"
        },
        "$:/language/Import/Listing/Select/Caption": {
            "title": "$:/language/Import/Listing/Select/Caption",
            "text": "Select"
        },
        "$:/language/Import/Listing/Status/Caption": {
            "title": "$:/language/Import/Listing/Status/Caption",
            "text": "Status"
        },
        "$:/language/Import/Listing/Title/Caption": {
            "title": "$:/language/Import/Listing/Title/Caption",
            "text": "Title"
        },
        "$:/language/Import/Listing/Preview": {
            "title": "$:/language/Import/Listing/Preview",
            "text": "Preview:"
        },
        "$:/language/Import/Listing/Preview/Text": {
            "title": "$:/language/Import/Listing/Preview/Text",
            "text": "Text"
        },
        "$:/language/Import/Listing/Preview/TextRaw": {
            "title": "$:/language/Import/Listing/Preview/TextRaw",
            "text": "Text (Raw)"
        },
        "$:/language/Import/Listing/Preview/Fields": {
            "title": "$:/language/Import/Listing/Preview/Fields",
            "text": "Fields"
        },
        "$:/language/Import/Listing/Preview/Diff": {
            "title": "$:/language/Import/Listing/Preview/Diff",
            "text": "Diff"
        },
        "$:/language/Import/Listing/Preview/DiffFields": {
            "title": "$:/language/Import/Listing/Preview/DiffFields",
            "text": "Diff (Fields)"
        },
        "$:/language/Import/Listing/Rename/Tooltip": {
            "title": "$:/language/Import/Listing/Rename/Tooltip",
            "text": "Rename tiddler before importing"
        },
        "$:/language/Import/Listing/Rename/Prompt": {
            "title": "$:/language/Import/Listing/Rename/Prompt",
            "text": "Rename to:"
        },
        "$:/language/Import/Listing/Rename/ConfirmRename": {
            "title": "$:/language/Import/Listing/Rename/ConfirmRename",
            "text": "Rename tiddler"
        },
        "$:/language/Import/Listing/Rename/CancelRename": {
            "title": "$:/language/Import/Listing/Rename/CancelRename",
            "text": "Cancel"
        },
        "$:/language/Import/Listing/Rename/OverwriteWarning": {
            "title": "$:/language/Import/Listing/Rename/OverwriteWarning",
            "text": "A tiddler with this title already exists."
        },
        "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible": {
            "title": "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible",
            "text": "Blocked incompatible or obsolete plugin."
        },
        "$:/language/Import/Upgrader/Plugins/Suppressed/Version": {
            "title": "$:/language/Import/Upgrader/Plugins/Suppressed/Version",
            "text": "Blocked plugin (due to incoming <<incoming>> not being newer than existing <<existing>>)."
        },
        "$:/language/Import/Upgrader/Plugins/Upgraded": {
            "title": "$:/language/Import/Upgrader/Plugins/Upgraded",
            "text": "Upgraded plugin from <<incoming>> to <<upgraded>>."
        },
        "$:/language/Import/Upgrader/State/Suppressed": {
            "title": "$:/language/Import/Upgrader/State/Suppressed",
            "text": "Blocked temporary state tiddler."
        },
        "$:/language/Import/Upgrader/System/Suppressed": {
            "title": "$:/language/Import/Upgrader/System/Suppressed",
            "text": "Blocked system tiddler."
        },
        "$:/language/Import/Upgrader/System/Warning": {
            "title": "$:/language/Import/Upgrader/System/Warning",
            "text": "Core module tiddler."
        },
        "$:/language/Import/Upgrader/System/Alert": {
            "title": "$:/language/Import/Upgrader/System/Alert",
            "text": "You are about to import a tiddler that will overwrite a core module tiddler. This is not recommended as it may make the system unstable."
        },
        "$:/language/Import/Upgrader/ThemeTweaks/Created": {
            "title": "$:/language/Import/Upgrader/ThemeTweaks/Created",
            "text": "Migrated theme tweak from <$text text=<<from>>/>."
        },
        "$:/language/AboveStory/ClassicPlugin/Warning": {
            "title": "$:/language/AboveStory/ClassicPlugin/Warning",
            "text": "It looks like you are trying to load a plugin designed for ~TiddlyWiki Classic. Please note that [[these plugins do not work with TiddlyWiki version 5.x.x|https://tiddlywiki.com/#TiddlyWikiClassic]]. ~TiddlyWiki Classic plugins detected:"
        },
        "$:/language/BinaryWarning/Prompt": {
            "title": "$:/language/BinaryWarning/Prompt",
            "text": "This tiddler contains binary data"
        },
        "$:/language/ClassicWarning/Hint": {
            "title": "$:/language/ClassicWarning/Hint",
            "text": "This tiddler is written in TiddlyWiki Classic wiki text format, which is not fully compatible with TiddlyWiki version 5. See https://tiddlywiki.com/static/Upgrading.html for more details."
        },
        "$:/language/ClassicWarning/Upgrade/Caption": {
            "title": "$:/language/ClassicWarning/Upgrade/Caption",
            "text": "upgrade"
        },
        "$:/language/CloseAll/Button": {
            "title": "$:/language/CloseAll/Button",
            "text": "close all"
        },
        "$:/language/ColourPicker/Recent": {
            "title": "$:/language/ColourPicker/Recent",
            "text": "Recent:"
        },
        "$:/language/ConfirmCancelTiddler": {
            "title": "$:/language/ConfirmCancelTiddler",
            "text": "Do you wish to discard changes to the tiddler \"<$text text=<<title>>/>\"?"
        },
        "$:/language/ConfirmDeleteTiddler": {
            "title": "$:/language/ConfirmDeleteTiddler",
            "text": "Do you wish to delete the tiddler \"<$text text=<<title>>/>\"?"
        },
        "$:/language/ConfirmOverwriteTiddler": {
            "title": "$:/language/ConfirmOverwriteTiddler",
            "text": "Do you wish to overwrite the tiddler \"<$text text=<<title>>/>\"?"
        },
        "$:/language/ConfirmEditShadowTiddler": {
            "title": "$:/language/ConfirmEditShadowTiddler",
            "text": "You are about to edit a ShadowTiddler. Any changes will override the default system making future upgrades non-trivial. Are you sure you want to edit \"<$text text=<<title>>/>\"?"
        },
        "$:/language/ConfirmAction": {
            "title": "$:/language/ConfirmAction",
            "text": "Do you wish to proceed?"
        },
        "$:/language/Count": {
            "title": "$:/language/Count",
            "text": "count"
        },
        "$:/language/DefaultNewTiddlerTitle": {
            "title": "$:/language/DefaultNewTiddlerTitle",
            "text": "New Tiddler"
        },
        "$:/language/Diffs/CountMessage": {
            "title": "$:/language/Diffs/CountMessage",
            "text": "<<diff-count>> differences"
        },
        "$:/language/DropMessage": {
            "title": "$:/language/DropMessage",
            "text": "Drop here (or use the 'Escape' key to cancel)"
        },
        "$:/language/Encryption/Cancel": {
            "title": "$:/language/Encryption/Cancel",
            "text": "Cancel"
        },
        "$:/language/Encryption/ConfirmClearPassword": {
            "title": "$:/language/Encryption/ConfirmClearPassword",
            "text": "Do you wish to clear the password? This will remove the encryption applied when saving this wiki"
        },
        "$:/language/Encryption/PromptSetPassword": {
            "title": "$:/language/Encryption/PromptSetPassword",
            "text": "Set a new password for this TiddlyWiki"
        },
        "$:/language/Encryption/Username": {
            "title": "$:/language/Encryption/Username",
            "text": "Username"
        },
        "$:/language/Encryption/Password": {
            "title": "$:/language/Encryption/Password",
            "text": "Password"
        },
        "$:/language/Encryption/RepeatPassword": {
            "title": "$:/language/Encryption/RepeatPassword",
            "text": "Repeat password"
        },
        "$:/language/Encryption/PasswordNoMatch": {
            "title": "$:/language/Encryption/PasswordNoMatch",
            "text": "Passwords do not match"
        },
        "$:/language/Encryption/SetPassword": {
            "title": "$:/language/Encryption/SetPassword",
            "text": "Set password"
        },
        "$:/language/Error/Caption": {
            "title": "$:/language/Error/Caption",
            "text": "Error"
        },
        "$:/language/Error/EditConflict": {
            "title": "$:/language/Error/EditConflict",
            "text": "File changed on server"
        },
        "$:/language/Error/Filter": {
            "title": "$:/language/Error/Filter",
            "text": "Filter error"
        },
        "$:/language/Error/FilterSyntax": {
            "title": "$:/language/Error/FilterSyntax",
            "text": "Syntax error in filter expression"
        },
        "$:/language/Error/FilterRunPrefix": {
            "title": "$:/language/Error/FilterRunPrefix",
            "text": "Filter Error: Unknown prefix for filter run"
        },
        "$:/language/Error/IsFilterOperator": {
            "title": "$:/language/Error/IsFilterOperator",
            "text": "Filter Error: Unknown operand for the 'is' filter operator"
        },
        "$:/language/Error/FormatFilterOperator": {
            "title": "$:/language/Error/FormatFilterOperator",
            "text": "Filter Error: Unknown suffix for the 'format' filter operator"
        },
        "$:/language/Error/LoadingPluginLibrary": {
            "title": "$:/language/Error/LoadingPluginLibrary",
            "text": "Error loading plugin library"
        },
        "$:/language/Error/NetworkErrorAlert": {
            "title": "$:/language/Error/NetworkErrorAlert",
            "text": "`<h2>''Network Error''</h2>It looks like the connection to the server has been lost. This may indicate a problem with your network connection. Please attempt to restore network connectivity before continuing.<br><br>''Any unsaved changes will be automatically synchronised when connectivity is restored''.`"
        },
        "$:/language/Error/RecursiveTransclusion": {
            "title": "$:/language/Error/RecursiveTransclusion",
            "text": "Recursive transclusion error in transclude widget"
        },
        "$:/language/Error/RetrievingSkinny": {
            "title": "$:/language/Error/RetrievingSkinny",
            "text": "Error retrieving skinny tiddler list"
        },
        "$:/language/Error/SavingToTWEdit": {
            "title": "$:/language/Error/SavingToTWEdit",
            "text": "Error saving to TWEdit"
        },
        "$:/language/Error/WhileSaving": {
            "title": "$:/language/Error/WhileSaving",
            "text": "Error while saving"
        },
        "$:/language/Error/XMLHttpRequest": {
            "title": "$:/language/Error/XMLHttpRequest",
            "text": "XMLHttpRequest error code"
        },
        "$:/language/InternalJavaScriptError/Title": {
            "title": "$:/language/InternalJavaScriptError/Title",
            "text": "Internal JavaScript Error"
        },
        "$:/language/InternalJavaScriptError/Hint": {
            "title": "$:/language/InternalJavaScriptError/Hint",
            "text": "Well, this is embarrassing. It is recommended that you restart TiddlyWiki by refreshing your browser"
        },
        "$:/language/InvalidFieldName": {
            "title": "$:/language/InvalidFieldName",
            "text": "Illegal characters in field name \"<$text text=<<fieldName>>/>\". Fields can only contain lowercase letters, digits and the characters underscore (`_`), hyphen (`-`) and period (`.`)"
        },
        "$:/language/LayoutSwitcher/Description": {
            "title": "$:/language/LayoutSwitcher/Description",
            "text": "Open the layout switcher"
        },
        "$:/language/LazyLoadingWarning": {
            "title": "$:/language/LazyLoadingWarning",
            "text": "<p>Trying to load external content from ''<$text text={{!!_canonical_uri}}/>''</p><p>If this message doesn't disappear, either the tiddler content type doesn't match the type of the external content, or you may be using a browser that doesn't support external content for wikis loaded as standalone files. See https://tiddlywiki.com/#ExternalText</p>"
        },
        "$:/language/LoginToTiddlySpace": {
            "title": "$:/language/LoginToTiddlySpace",
            "text": "Login to TiddlySpace"
        },
        "$:/language/Manager/Controls/FilterByTag/None": {
            "title": "$:/language/Manager/Controls/FilterByTag/None",
            "text": "(none)"
        },
        "$:/language/Manager/Controls/FilterByTag/Prompt": {
            "title": "$:/language/Manager/Controls/FilterByTag/Prompt",
            "text": "Filter by tag:"
        },
        "$:/language/Manager/Controls/Order/Prompt": {
            "title": "$:/language/Manager/Controls/Order/Prompt",
            "text": "Reverse order"
        },
        "$:/language/Manager/Controls/Search/Placeholder": {
            "title": "$:/language/Manager/Controls/Search/Placeholder",
            "text": "Search"
        },
        "$:/language/Manager/Controls/Search/Prompt": {
            "title": "$:/language/Manager/Controls/Search/Prompt",
            "text": "Search:"
        },
        "$:/language/Manager/Controls/Show/Option/Tags": {
            "title": "$:/language/Manager/Controls/Show/Option/Tags",
            "text": "tags"
        },
        "$:/language/Manager/Controls/Show/Option/Tiddlers": {
            "title": "$:/language/Manager/Controls/Show/Option/Tiddlers",
            "text": "tiddlers"
        },
        "$:/language/Manager/Controls/Show/Prompt": {
            "title": "$:/language/Manager/Controls/Show/Prompt",
            "text": "Show:"
        },
        "$:/language/Manager/Controls/Sort/Prompt": {
            "title": "$:/language/Manager/Controls/Sort/Prompt",
            "text": "Sort by:"
        },
        "$:/language/Manager/Item/Colour": {
            "title": "$:/language/Manager/Item/Colour",
            "text": "Colour"
        },
        "$:/language/Manager/Item/Fields": {
            "title": "$:/language/Manager/Item/Fields",
            "text": "Fields"
        },
        "$:/language/Manager/Item/Icon/None": {
            "title": "$:/language/Manager/Item/Icon/None",
            "text": "(none)"
        },
        "$:/language/Manager/Item/Icon": {
            "title": "$:/language/Manager/Item/Icon",
            "text": "Icon"
        },
        "$:/language/Manager/Item/RawText": {
            "title": "$:/language/Manager/Item/RawText",
            "text": "Raw text"
        },
        "$:/language/Manager/Item/Tags": {
            "title": "$:/language/Manager/Item/Tags",
            "text": "Tags"
        },
        "$:/language/Manager/Item/Tools": {
            "title": "$:/language/Manager/Item/Tools",
            "text": "Tools"
        },
        "$:/language/Manager/Item/WikifiedText": {
            "title": "$:/language/Manager/Item/WikifiedText",
            "text": "Wikified text"
        },
        "$:/language/MissingTiddler/Hint": {
            "title": "$:/language/MissingTiddler/Hint",
            "text": "Missing tiddler \"<$text text=<<currentTiddler>>/>\" -- click {{||$:/core/ui/Buttons/edit}} to create"
        },
        "$:/language/No": {
            "title": "$:/language/No",
            "text": "No"
        },
        "$:/language/OfficialPluginLibrary": {
            "title": "$:/language/OfficialPluginLibrary",
            "text": "Official ~TiddlyWiki Plugin Library"
        },
        "$:/language/OfficialPluginLibrary/Hint": {
            "title": "$:/language/OfficialPluginLibrary/Hint",
            "text": "The official ~TiddlyWiki plugin library at tiddlywiki.com. Plugins, themes and language packs are maintained by the core team."
        },
        "$:/language/PageTemplate/Description": {
            "title": "$:/language/PageTemplate/Description",
            "text": "the default ~TiddlyWiki layout"
        },
        "$:/language/PageTemplate/Name": {
            "title": "$:/language/PageTemplate/Name",
            "text": "Default ~PageTemplate"
        },
        "$:/language/PluginReloadWarning": {
            "title": "$:/language/PluginReloadWarning",
            "text": "Please save {{$:/core/ui/Buttons/save-wiki}} and reload {{$:/core/ui/Buttons/refresh}} to allow changes to ~JavaScript plugins to take effect"
        },
        "$:/language/RecentChanges/DateFormat": {
            "title": "$:/language/RecentChanges/DateFormat",
            "text": "DDth MMM YYYY"
        },
        "$:/language/Shortcuts/Input/AdvancedSearch/Hint": {
            "title": "$:/language/Shortcuts/Input/AdvancedSearch/Hint",
            "text": "Open the ~AdvancedSearch panel from within the sidebar search field"
        },
        "$:/language/Shortcuts/Input/Accept/Hint": {
            "title": "$:/language/Shortcuts/Input/Accept/Hint",
            "text": "Accept the selected item"
        },
        "$:/language/Shortcuts/Input/AcceptVariant/Hint": {
            "title": "$:/language/Shortcuts/Input/AcceptVariant/Hint",
            "text": "Accept the selected item (variant)"
        },
        "$:/language/Shortcuts/Input/Cancel/Hint": {
            "title": "$:/language/Shortcuts/Input/Cancel/Hint",
            "text": "Clear the input field"
        },
        "$:/language/Shortcuts/Input/Down/Hint": {
            "title": "$:/language/Shortcuts/Input/Down/Hint",
            "text": "Select the next item"
        },
        "$:/language/Shortcuts/Input/Tab-Left/Hint": {
            "title": "$:/language/Shortcuts/Input/Tab-Left/Hint",
            "text": "Select the previous Tab"
        },
        "$:/language/Shortcuts/Input/Tab-Right/Hint": {
            "title": "$:/language/Shortcuts/Input/Tab-Right/Hint",
            "text": "Select the next Tab"
        },
        "$:/language/Shortcuts/Input/Up/Hint": {
            "title": "$:/language/Shortcuts/Input/Up/Hint",
            "text": "Select the previous item"
        },
        "$:/language/Shortcuts/SidebarLayout/Hint": {
            "title": "$:/language/Shortcuts/SidebarLayout/Hint",
            "text": "Change the sidebar layout"
        },
        "$:/language/Switcher/Subtitle/theme": {
            "title": "$:/language/Switcher/Subtitle/theme",
            "text": "Switch Theme"
        },
        "$:/language/Switcher/Subtitle/layout": {
            "title": "$:/language/Switcher/Subtitle/layout",
            "text": "Switch Layout"
        },
        "$:/language/Switcher/Subtitle/language": {
            "title": "$:/language/Switcher/Subtitle/language",
            "text": "Switch Language"
        },
        "$:/language/Switcher/Subtitle/palette": {
            "title": "$:/language/Switcher/Subtitle/palette",
            "text": "Switch Palette"
        },
        "$:/language/SystemTiddler/Tooltip": {
            "title": "$:/language/SystemTiddler/Tooltip",
            "text": "This is a system tiddler"
        },
        "$:/language/SystemTiddlers/Include/Prompt": {
            "title": "$:/language/SystemTiddlers/Include/Prompt",
            "text": "Include system tiddlers"
        },
        "$:/language/TagManager/Colour/Heading": {
            "title": "$:/language/TagManager/Colour/Heading",
            "text": "Colour"
        },
        "$:/language/TagManager/Count/Heading": {
            "title": "$:/language/TagManager/Count/Heading",
            "text": "Count"
        },
        "$:/language/TagManager/Icon/Heading": {
            "title": "$:/language/TagManager/Icon/Heading",
            "text": "Icon"
        },
        "$:/language/TagManager/Icons/None": {
            "title": "$:/language/TagManager/Icons/None",
            "text": "None"
        },
        "$:/language/TagManager/Info/Heading": {
            "title": "$:/language/TagManager/Info/Heading",
            "text": "Info"
        },
        "$:/language/TagManager/Tag/Heading": {
            "title": "$:/language/TagManager/Tag/Heading",
            "text": "Tag"
        },
        "$:/language/Tiddler/DateFormat": {
            "title": "$:/language/Tiddler/DateFormat",
            "text": "DDth MMM YYYY at hh12:0mmam"
        },
        "$:/language/UnsavedChangesWarning": {
            "title": "$:/language/UnsavedChangesWarning",
            "text": "You have unsaved changes in TiddlyWiki"
        },
        "$:/language/Yes": {
            "title": "$:/language/Yes",
            "text": "Yes"
        },
        "$:/language/Modals/Download": {
            "title": "$:/language/Modals/Download",
            "subtitle": "Download changes",
            "footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
            "help": "https://tiddlywiki.com/static/DownloadingChanges.html",
            "text": "Your browser only supports manual saving.\n\nTo save your modified wiki, right click on the download link below and select \"Download file\" or \"Save file\", and then choose the folder and filename.\n\n//You can marginally speed things up by clicking the link with the control key (Windows) or the options/alt key (Mac OS X). You will not be prompted for the folder or filename, but your browser is likely to give it an unrecognisable name -- you may need to rename the file to include an `.html` extension before you can do anything useful with it.//\n\nOn smartphones that do not allow files to be downloaded you can instead bookmark the link, and then sync your bookmarks to a desktop computer from where the wiki can be saved normally.\n"
        },
        "$:/language/Modals/SaveInstructions": {
            "title": "$:/language/Modals/SaveInstructions",
            "subtitle": "Save your work",
            "footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
            "help": "https://tiddlywiki.com/static/SavingChanges.html",
            "text": "Your changes to this wiki need to be saved as a ~TiddlyWiki HTML file.\n\n!!! Desktop browsers\n\n# Select ''Save As'' from the ''File'' menu\n# Choose a filename and location\n#* Some browsers also require you to explicitly specify the file saving format as ''Webpage, HTML only'' or similar\n# Close this tab\n\n!!! Smartphone browsers\n\n# Create a bookmark to this page\n#* If you've got iCloud or Google Sync set up then the bookmark will automatically sync to your desktop where you can open it and save it as above\n# Close this tab\n\n//If you open the bookmark again in Mobile Safari you will see this message again. If you want to go ahead and use the file, just click the ''close'' button below//\n"
        },
        "$:/config/NewJournal/Title": {
            "title": "$:/config/NewJournal/Title",
            "text": "DDth MMM YYYY"
        },
        "$:/config/NewJournal/Text": {
            "title": "$:/config/NewJournal/Text",
            "text": ""
        },
        "$:/config/NewJournal/Tags": {
            "title": "$:/config/NewJournal/Tags",
            "text": "Journal\n"
        },
        "$:/language/Notifications/Save/Done": {
            "title": "$:/language/Notifications/Save/Done",
            "text": "Saved wiki"
        },
        "$:/language/Notifications/Save/Starting": {
            "title": "$:/language/Notifications/Save/Starting",
            "text": "Starting to save wiki"
        },
        "$:/language/Notifications/CopiedToClipboard/Succeeded": {
            "title": "$:/language/Notifications/CopiedToClipboard/Succeeded",
            "text": "Copied to clipboard!"
        },
        "$:/language/Notifications/CopiedToClipboard/Failed": {
            "title": "$:/language/Notifications/CopiedToClipboard/Failed",
            "text": "Failed to copy to clipboard!"
        },
        "$:/language/Search/DefaultResults/Caption": {
            "title": "$:/language/Search/DefaultResults/Caption",
            "text": "List"
        },
        "$:/language/Search/Filter/Caption": {
            "title": "$:/language/Search/Filter/Caption",
            "text": "Filter"
        },
        "$:/language/Search/Filter/Hint": {
            "title": "$:/language/Search/Filter/Hint",
            "text": "Search via a [[filter expression|https://tiddlywiki.com/static/Filters.html]]"
        },
        "$:/language/Search/Filter/Matches": {
            "title": "$:/language/Search/Filter/Matches",
            "text": "//<small><<resultCount>> matches</small>//"
        },
        "$:/language/Search/Matches": {
            "title": "$:/language/Search/Matches",
            "text": "//<small><<resultCount>> matches</small>//"
        },
        "$:/language/Search/Matches/All": {
            "title": "$:/language/Search/Matches/All",
            "text": "All matches:"
        },
        "$:/language/Search/Matches/Title": {
            "title": "$:/language/Search/Matches/Title",
            "text": "Title matches:"
        },
        "$:/language/Search/Search": {
            "title": "$:/language/Search/Search",
            "text": "Search"
        },
        "$:/language/Search/Search/TooShort": {
            "title": "$:/language/Search/Search/TooShort",
            "text": "Search text too short"
        },
        "$:/language/Search/Shadows/Caption": {
            "title": "$:/language/Search/Shadows/Caption",
            "text": "Shadows"
        },
        "$:/language/Search/Shadows/Hint": {
            "title": "$:/language/Search/Shadows/Hint",
            "text": "Search for shadow tiddlers"
        },
        "$:/language/Search/Shadows/Matches": {
            "title": "$:/language/Search/Shadows/Matches",
            "text": "//<small><<resultCount>> matches</small>//"
        },
        "$:/language/Search/Standard/Caption": {
            "title": "$:/language/Search/Standard/Caption",
            "text": "Standard"
        },
        "$:/language/Search/Standard/Hint": {
            "title": "$:/language/Search/Standard/Hint",
            "text": "Search for standard tiddlers"
        },
        "$:/language/Search/Standard/Matches": {
            "title": "$:/language/Search/Standard/Matches",
            "text": "//<small><<resultCount>> matches</small>//"
        },
        "$:/language/Search/System/Caption": {
            "title": "$:/language/Search/System/Caption",
            "text": "System"
        },
        "$:/language/Search/System/Hint": {
            "title": "$:/language/Search/System/Hint",
            "text": "Search for system tiddlers"
        },
        "$:/language/Search/System/Matches": {
            "title": "$:/language/Search/System/Matches",
            "text": "//<small><<resultCount>> matches</small>//"
        },
        "$:/language/SideBar/All/Caption": {
            "title": "$:/language/SideBar/All/Caption",
            "text": "All"
        },
        "$:/language/SideBar/Contents/Caption": {
            "title": "$:/language/SideBar/Contents/Caption",
            "text": "Contents"
        },
        "$:/language/SideBar/Drafts/Caption": {
            "title": "$:/language/SideBar/Drafts/Caption",
            "text": "Drafts"
        },
        "$:/language/SideBar/Explorer/Caption": {
            "title": "$:/language/SideBar/Explorer/Caption",
            "text": "Explorer"
        },
        "$:/language/SideBar/Missing/Caption": {
            "title": "$:/language/SideBar/Missing/Caption",
            "text": "Missing"
        },
        "$:/language/SideBar/More/Caption": {
            "title": "$:/language/SideBar/More/Caption",
            "text": "More"
        },
        "$:/language/SideBar/Open/Caption": {
            "title": "$:/language/SideBar/Open/Caption",
            "text": "Open"
        },
        "$:/language/SideBar/Orphans/Caption": {
            "title": "$:/language/SideBar/Orphans/Caption",
            "text": "Orphans"
        },
        "$:/language/SideBar/Recent/Caption": {
            "title": "$:/language/SideBar/Recent/Caption",
            "text": "Recent"
        },
        "$:/language/SideBar/Shadows/Caption": {
            "title": "$:/language/SideBar/Shadows/Caption",
            "text": "Shadows"
        },
        "$:/language/SideBar/System/Caption": {
            "title": "$:/language/SideBar/System/Caption",
            "text": "System"
        },
        "$:/language/SideBar/Tags/Caption": {
            "title": "$:/language/SideBar/Tags/Caption",
            "text": "Tags"
        },
        "$:/language/SideBar/Tags/Untagged/Caption": {
            "title": "$:/language/SideBar/Tags/Untagged/Caption",
            "text": "untagged"
        },
        "$:/language/SideBar/Tools/Caption": {
            "title": "$:/language/SideBar/Tools/Caption",
            "text": "Tools"
        },
        "$:/language/SideBar/Types/Caption": {
            "title": "$:/language/SideBar/Types/Caption",
            "text": "Types"
        },
        "$:/SiteSubtitle": {
            "title": "$:/SiteSubtitle",
            "text": "a non-linear personal web notebook"
        },
        "$:/SiteTitle": {
            "title": "$:/SiteTitle",
            "text": "My ~TiddlyWiki"
        },
        "$:/language/Snippets/ListByTag": {
            "title": "$:/language/Snippets/ListByTag",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "List of tiddlers by tag",
            "text": "<<list-links \"[tag[task]sort[title]]\">>\n"
        },
        "$:/language/Snippets/MacroDefinition": {
            "title": "$:/language/Snippets/MacroDefinition",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "Macro definition",
            "text": "\\define macroName(param1:\"default value\",param2)\nText of the macro\n\\end\n"
        },
        "$:/language/Snippets/Table4x3": {
            "title": "$:/language/Snippets/Table4x3",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "Table with 4 columns by 3 rows",
            "text": "|! |!Alpha |!Beta |!Gamma |!Delta |\n|!One | | | | |\n|!Two | | | | |\n|!Three | | | | |\n"
        },
        "$:/language/Snippets/TableOfContents": {
            "title": "$:/language/Snippets/TableOfContents",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "Table of Contents",
            "text": "<div class=\"tc-table-of-contents\">\n\n<<toc-selective-expandable 'TableOfContents'>>\n\n</div>"
        },
        "$:/language/ThemeTweaks/ThemeTweaks": {
            "title": "$:/language/ThemeTweaks/ThemeTweaks",
            "text": "Theme Tweaks"
        },
        "$:/language/ThemeTweaks/ThemeTweaks/Hint": {
            "title": "$:/language/ThemeTweaks/ThemeTweaks/Hint",
            "text": "You can tweak certain aspects of the ''Vanilla'' theme."
        },
        "$:/language/ThemeTweaks/Options": {
            "title": "$:/language/ThemeTweaks/Options",
            "text": "Options"
        },
        "$:/language/ThemeTweaks/Options/SidebarLayout": {
            "title": "$:/language/ThemeTweaks/Options/SidebarLayout",
            "text": "Sidebar layout"
        },
        "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid": {
            "title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid",
            "text": "Fixed story, fluid sidebar"
        },
        "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed": {
            "title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed",
            "text": "Fluid story, fixed sidebar"
        },
        "$:/language/ThemeTweaks/Options/StickyTitles": {
            "title": "$:/language/ThemeTweaks/Options/StickyTitles",
            "text": "Sticky titles"
        },
        "$:/language/ThemeTweaks/Options/StickyTitles/Hint": {
            "title": "$:/language/ThemeTweaks/Options/StickyTitles/Hint",
            "text": "Causes tiddler titles to \"stick\" to the top of the browser window"
        },
        "$:/language/ThemeTweaks/Options/CodeWrapping": {
            "title": "$:/language/ThemeTweaks/Options/CodeWrapping",
            "text": "Wrap long lines in code blocks"
        },
        "$:/language/ThemeTweaks/Settings": {
            "title": "$:/language/ThemeTweaks/Settings",
            "text": "Settings"
        },
        "$:/language/ThemeTweaks/Settings/FontFamily": {
            "title": "$:/language/ThemeTweaks/Settings/FontFamily",
            "text": "Font family"
        },
        "$:/language/ThemeTweaks/Settings/CodeFontFamily": {
            "title": "$:/language/ThemeTweaks/Settings/CodeFontFamily",
            "text": "Code font family"
        },
        "$:/language/ThemeTweaks/Settings/EditorFontFamily": {
            "title": "$:/language/ThemeTweaks/Settings/EditorFontFamily",
            "text": "Editor font family"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImage": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImage",
            "text": "Page background image"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment",
            "text": "Page background image attachment"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll",
            "text": "Scroll with tiddlers"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed",
            "text": "Fixed to window"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize",
            "text": "Page background image size"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto",
            "text": "Auto"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover",
            "text": "Cover"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain",
            "text": "Contain"
        },
        "$:/language/ThemeTweaks/Metrics": {
            "title": "$:/language/ThemeTweaks/Metrics",
            "text": "Sizes"
        },
        "$:/language/ThemeTweaks/Metrics/FontSize": {
            "title": "$:/language/ThemeTweaks/Metrics/FontSize",
            "text": "Font size"
        },
        "$:/language/ThemeTweaks/Metrics/LineHeight": {
            "title": "$:/language/ThemeTweaks/Metrics/LineHeight",
            "text": "Line height"
        },
        "$:/language/ThemeTweaks/Metrics/BodyFontSize": {
            "title": "$:/language/ThemeTweaks/Metrics/BodyFontSize",
            "text": "Font size for tiddler body"
        },
        "$:/language/ThemeTweaks/Metrics/BodyLineHeight": {
            "title": "$:/language/ThemeTweaks/Metrics/BodyLineHeight",
            "text": "Line height for tiddler body"
        },
        "$:/language/ThemeTweaks/Metrics/StoryLeft": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryLeft",
            "text": "Story left position"
        },
        "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint",
            "text": "how far the left margin of the story river<br>(tiddler area) is from the left of the page"
        },
        "$:/language/ThemeTweaks/Metrics/StoryTop": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryTop",
            "text": "Story top position"
        },
        "$:/language/ThemeTweaks/Metrics/StoryTop/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryTop/Hint",
            "text": "how far the top margin of the story river<br>is from the top of the page"
        },
        "$:/language/ThemeTweaks/Metrics/StoryRight": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryRight",
            "text": "Story right"
        },
        "$:/language/ThemeTweaks/Metrics/StoryRight/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryRight/Hint",
            "text": "how far the left margin of the sidebar <br>is from the left of the page"
        },
        "$:/language/ThemeTweaks/Metrics/StoryWidth": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryWidth",
            "text": "Story width"
        },
        "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint",
            "text": "the overall width of the story river"
        },
        "$:/language/ThemeTweaks/Metrics/TiddlerWidth": {
            "title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth",
            "text": "Tiddler width"
        },
        "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint",
            "text": "within the story river"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint",
            "text": "Sidebar breakpoint"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint",
            "text": "the minimum page width at which the story<br>river and sidebar will appear side by side"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarWidth": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarWidth",
            "text": "Sidebar width"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint",
            "text": "the width of the sidebar in fluid-fixed layout"
        },
        "$:/language/TiddlerInfo/Advanced/Caption": {
            "title": "$:/language/TiddlerInfo/Advanced/Caption",
            "text": "Advanced"
        },
        "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint",
            "text": "none"
        },
        "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading": {
            "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading",
            "text": "Plugin Details"
        },
        "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint",
            "text": "This plugin contains the following shadow tiddlers:"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading",
            "text": "Shadow Status"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint",
            "text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is not a shadow tiddler"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint",
            "text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is a shadow tiddler"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source",
            "text": "It is defined in the plugin <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link>"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint",
            "text": "It is overridden by an ordinary tiddler"
        },
        "$:/language/TiddlerInfo/Fields/Caption": {
            "title": "$:/language/TiddlerInfo/Fields/Caption",
            "text": "Fields"
        },
        "$:/language/TiddlerInfo/List/Caption": {
            "title": "$:/language/TiddlerInfo/List/Caption",
            "text": "List"
        },
        "$:/language/TiddlerInfo/List/Empty": {
            "title": "$:/language/TiddlerInfo/List/Empty",
            "text": "This tiddler does not have a list"
        },
        "$:/language/TiddlerInfo/Listed/Caption": {
            "title": "$:/language/TiddlerInfo/Listed/Caption",
            "text": "Listed"
        },
        "$:/language/TiddlerInfo/Listed/Empty": {
            "title": "$:/language/TiddlerInfo/Listed/Empty",
            "text": "This tiddler is not listed by any others"
        },
        "$:/language/TiddlerInfo/References/Caption": {
            "title": "$:/language/TiddlerInfo/References/Caption",
            "text": "Backlinks"
        },
        "$:/language/TiddlerInfo/References/Empty": {
            "title": "$:/language/TiddlerInfo/References/Empty",
            "text": "No tiddlers link to this one"
        },
        "$:/language/TiddlerInfo/Tagging/Caption": {
            "title": "$:/language/TiddlerInfo/Tagging/Caption",
            "text": "Tagging"
        },
        "$:/language/TiddlerInfo/Tagging/Empty": {
            "title": "$:/language/TiddlerInfo/Tagging/Empty",
            "text": "No tiddlers are tagged with this one"
        },
        "$:/language/TiddlerInfo/Tools/Caption": {
            "title": "$:/language/TiddlerInfo/Tools/Caption",
            "text": "Tools"
        },
        "$:/language/Docs/Types/application/javascript": {
            "title": "$:/language/Docs/Types/application/javascript",
            "description": "JavaScript code",
            "name": "application/javascript",
            "group": "Developer",
            "group-sort": "2"
        },
        "$:/language/Docs/Types/application/json": {
            "title": "$:/language/Docs/Types/application/json",
            "description": "JSON data",
            "name": "application/json",
            "group": "Developer",
            "group-sort": "2"
        },
        "$:/language/Docs/Types/application/x-tiddler-dictionary": {
            "title": "$:/language/Docs/Types/application/x-tiddler-dictionary",
            "description": "Data dictionary",
            "name": "application/x-tiddler-dictionary",
            "group": "Developer",
            "group-sort": "2"
        },
        "$:/language/Docs/Types/image/gif": {
            "title": "$:/language/Docs/Types/image/gif",
            "description": "GIF image",
            "name": "image/gif",
            "group": "Image",
            "group-sort": "1"
        },
        "$:/language/Docs/Types/image/jpeg": {
            "title": "$:/language/Docs/Types/image/jpeg",
            "description": "JPEG image",
            "name": "image/jpeg",
            "group": "Image",
            "group-sort": "1"
        },
        "$:/language/Docs/Types/image/png": {
            "title": "$:/language/Docs/Types/image/png",
            "description": "PNG image",
            "name": "image/png",
            "group": "Image",
            "group-sort": "1"
        },
        "$:/language/Docs/Types/image/svg+xml": {
            "title": "$:/language/Docs/Types/image/svg+xml",
            "description": "Structured Vector Graphics image",
            "name": "image/svg+xml",
            "group": "Image",
            "group-sort": "1"
        },
        "$:/language/Docs/Types/image/x-icon": {
            "title": "$:/language/Docs/Types/image/x-icon",
            "description": "ICO format icon file",
            "name": "image/x-icon",
            "group": "Image",
            "group-sort": "1"
        },
        "$:/language/Docs/Types/text/css": {
            "title": "$:/language/Docs/Types/text/css",
            "description": "Static stylesheet",
            "name": "text/css",
            "group": "Developer",
            "group-sort": "2"
        },
        "$:/language/Docs/Types/text/html": {
            "title": "$:/language/Docs/Types/text/html",
            "description": "HTML markup",
            "name": "text/html",
            "group": "Text",
            "group-sort": "0"
        },
        "$:/language/Docs/Types/text/plain": {
            "title": "$:/language/Docs/Types/text/plain",
            "description": "Plain text",
            "name": "text/plain",
            "group": "Text",
            "group-sort": "0"
        },
        "$:/language/Docs/Types/text/vnd.tiddlywiki": {
            "title": "$:/language/Docs/Types/text/vnd.tiddlywiki",
            "description": "TiddlyWiki 5",
            "name": "text/vnd.tiddlywiki",
            "group": "Text",
            "group-sort": "0"
        },
        "$:/language/Docs/Types/text/x-tiddlywiki": {
            "title": "$:/language/Docs/Types/text/x-tiddlywiki",
            "description": "TiddlyWiki Classic",
            "name": "text/x-tiddlywiki",
            "group": "Text",
            "group-sort": "0"
        },
        "$:/languages/en-GB/icon": {
            "title": "$:/languages/en-GB/icon",
            "type": "image/svg+xml",
            "text": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 60 30\" width=\"1200\" height=\"600\">\n<clipPath id=\"t\">\n\t<path d=\"M30,15 h30 v15 z v15 h-30 z h-30 v-15 z v-15 h30 z\"/>\n</clipPath>\n<path d=\"M0,0 v30 h60 v-30 z\" fill=\"#00247d\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" stroke=\"#fff\" stroke-width=\"6\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" clip-path=\"url(#t)\" stroke=\"#cf142b\" stroke-width=\"4\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#fff\" stroke-width=\"10\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#cf142b\" stroke-width=\"6\"/>\n</svg>\n"
        },
        "$:/languages/en-GB": {
            "title": "$:/languages/en-GB",
            "name": "en-GB",
            "description": "English (British)",
            "author": "JeremyRuston",
            "core-version": ">=5.0.0\"",
            "text": "Stub pseudo-plugin for the default language"
        },
        "$:/core/modules/commander.js": {
            "title": "$:/core/modules/commander.js",
            "text": "/*\\\ntitle: $:/core/modules/commander.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Commander class is a command interpreter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse a sequence of commands\n\tcommandTokens: an array of command string tokens\n\twiki: reference to the wiki store object\n\tstreams: {output:, error:}, each of which has a write(string) method\n\tcallback: a callback invoked as callback(err) where err is null if there was no error\n*/\nvar Commander = function(commandTokens,callback,wiki,streams) {\n\tvar path = require(\"path\");\n\tthis.commandTokens = commandTokens;\n\tthis.nextToken = 0;\n\tthis.callback = callback;\n\tthis.wiki = wiki;\n\tthis.streams = streams;\n\tthis.outputPath = path.resolve($tw.boot.wikiPath,$tw.config.wikiOutputSubDir);\n};\n\n/*\nLog a string if verbose flag is set\n*/\nCommander.prototype.log = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str + \"\\n\");\n\t}\n};\n\n/*\nWrite a string if verbose flag is set\n*/\nCommander.prototype.write = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str);\n\t}\n};\n\n/*\nAdd a string of tokens to the command queue\n*/\nCommander.prototype.addCommandTokens = function(commandTokens) {\n\tvar params = commandTokens.slice(0);\n\tparams.unshift(0);\n\tparams.unshift(this.nextToken);\n\tArray.prototype.splice.apply(this.commandTokens,params);\n};\n\n/*\nExecute the sequence of commands and invoke a callback on completion\n*/\nCommander.prototype.execute = function() {\n\tthis.executeNextCommand();\n};\n\n/*\nExecute the next command in the sequence\n*/\nCommander.prototype.executeNextCommand = function() {\n\tvar self = this;\n\t// Invoke the callback if there are no more commands\n\tif(this.nextToken >= this.commandTokens.length) {\n\t\tthis.callback(null);\n\t} else {\n\t\t// Get and check the command token\n\t\tvar commandName = this.commandTokens[this.nextToken++];\n\t\tif(commandName.substr(0,2) !== \"--\") {\n\t\t\tthis.callback(\"Missing command: \" + commandName);\n\t\t} else {\n\t\t\tcommandName = commandName.substr(2); // Trim off the --\n\t\t\t// Accumulate the parameters to the command\n\t\t\tvar params = [];\n\t\t\twhile(this.nextToken < this.commandTokens.length && \n\t\t\t\tthis.commandTokens[this.nextToken].substr(0,2) !== \"--\") {\n\t\t\t\tparams.push(this.commandTokens[this.nextToken++]);\n\t\t\t}\n\t\t\t// Get the command info\n\t\t\tvar command = $tw.commands[commandName],\n\t\t\t\tc,err;\n\t\t\tif(!command) {\n\t\t\t\tthis.callback(\"Unknown command: \" + commandName);\n\t\t\t} else {\n\t\t\t\tif(this.verbose) {\n\t\t\t\t\tthis.streams.output.write(\"Executing command: \" + commandName + \" \" + params.join(\" \") + \"\\n\");\n\t\t\t\t}\n\t\t\t\t// Parse named parameters if required\n\t\t\t\tif(command.info.namedParameterMode) {\n\t\t\t\t\tparams = this.extractNamedParameters(params,command.info.mandatoryParameters);\n\t\t\t\t\tif(typeof params === \"string\") {\n\t\t\t\t\t\treturn this.callback(params);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(command.info.synchronous) {\n\t\t\t\t\t// Synchronous command\n\t\t\t\t\tc = new command.Command(params,this);\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.executeNextCommand();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Asynchronous command\n\t\t\t\t\tc = new command.Command(params,this,function(err) {\n\t\t\t\t\t\tif(err) {\n\t\t\t\t\t\t\tself.callback(err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself.executeNextCommand();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nGiven an array of parameter strings `params` in name:value format, and an array of mandatory parameter names in `mandatoryParameters`, returns a hashmap of values or a string if error\n*/\nCommander.prototype.extractNamedParameters = function(params,mandatoryParameters) {\n\tmandatoryParameters = mandatoryParameters || [];\n\tvar errors = [],\n\t\tparamsByName = Object.create(null);\n\t// Extract the parameters\n\t$tw.utils.each(params,function(param) {\n\t\tvar index = param.indexOf(\"=\");\n\t\tif(index < 1) {\n\t\t\terrors.push(\"malformed named parameter: '\" + param + \"'\");\n\t\t}\n\t\tparamsByName[param.slice(0,index)] = $tw.utils.trim(param.slice(index+1));\n\t});\n\t// Check the mandatory parameters are present\n\t$tw.utils.each(mandatoryParameters,function(mandatoryParameter) {\n\t\tif(!$tw.utils.hop(paramsByName,mandatoryParameter)) {\n\t\t\terrors.push(\"missing mandatory parameter: '\" + mandatoryParameter + \"'\");\n\t\t}\n\t});\n\t// Return any errors\n\tif(errors.length > 0) {\n\t\treturn errors.join(\" and\\n\");\n\t} else {\n\t\treturn paramsByName;\t\t\n\t}\n};\n\nCommander.initCommands = function(moduleType) {\n\tmoduleType = moduleType || \"command\";\n\t$tw.commands = {};\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tvar c = $tw.commands[module.info.name] = {};\n\t\t// Add the methods defined by the module\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\tc[f] = module[f];\n\t\t\t}\n\t\t}\n\t});\n};\n\nexports.Commander = Commander;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/commands/build.js": {
            "title": "$:/core/modules/commands/build.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/build.js\ntype: application/javascript\nmodule-type: command\n\nCommand to build a build target\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"build\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\t// Get the build targets defined in the wiki\n\tvar buildTargets = $tw.boot.wikiInfo.build;\n\tif(!buildTargets) {\n\t\treturn \"No build targets defined\";\n\t}\n\t// Loop through each of the specified targets\n\tvar targets;\n\tif(this.params.length > 0) {\n\t\ttargets = this.params;\n\t} else {\n\t\ttargets = Object.keys(buildTargets);\n\t}\n\tfor(var targetIndex=0; targetIndex<targets.length; targetIndex++) {\n\t\tvar target = targets[targetIndex],\n\t\t\tcommands = buildTargets[target];\n\t\tif(!commands) {\n\t\t\treturn \"Build target '\" + target + \"' not found\";\n\t\t}\n\t\t// Add the commands to the queue\n\t\tthis.commander.addCommandTokens(commands);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/clearpassword.js": {
            "title": "$:/core/modules/commands/clearpassword.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/clearpassword.js\ntype: application/javascript\nmodule-type: command\n\nClear password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"clearpassword\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\t$tw.crypto.setPassword(null);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/deletetiddlers.js": {
            "title": "$:/core/modules/commands/deletetiddlers.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/deletetiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to delete tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"deletetiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filter\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\twiki.deleteTiddler(title);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/editions.js": {
            "title": "$:/core/modules/commands/editions.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/editions.js\ntype: application/javascript\nmodule-type: command\n\nCommand to list the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"editions\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this;\n\t// Output the list\n\tthis.commander.streams.output.write(\"Available editions:\\n\\n\");\n\tvar editionInfo = $tw.utils.getEditionInfo();\n\t$tw.utils.each(editionInfo,function(info,name) {\n\t\tself.commander.streams.output.write(\"    \" + name + \": \" + info.description + \"\\n\");\n\t});\n\tthis.commander.streams.output.write(\"\\n\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/fetch.js": {
            "title": "$:/core/modules/commands/fetch.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/fetch.js\ntype: application/javascript\nmodule-type: command\n\nCommands to fetch external tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"fetch\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing subcommand and url\";\n\t}\n\tswitch(this.params[0]) {\n\t\tcase \"raw-file\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\traw: true,\n\t\t\t\turl: this.params[1],\n\t\t\t\ttransformFilter: this.params[2] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"file\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turl: this.params[1],\n\t\t\t\timportFilter: this.params[2],\n\t\t\t\ttransformFilter: this.params[3] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"raw-files\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\traw: true,\n\t\t\t\turlFilter: this.params[1],\n\t\t\t\ttransformFilter: this.params[2] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"files\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turlFilter: this.params[1],\n\t\t\t\timportFilter: this.params[2],\n\t\t\t\ttransformFilter: this.params[3] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t}\n\treturn null;\n};\n\nCommand.prototype.fetchFiles = function(options) {\n\tvar self = this;\n\t// Get the list of URLs\n\tvar urls;\n\tif(options.url) {\n\t\turls = [options.url]\n\t} else if(options.urlFilter) {\n\t\turls = this.commander.wiki.filterTiddlers(options.urlFilter);\n\t} else {\n\t\treturn \"Missing URL\";\n\t}\n\t// Process each URL in turn\n\tvar next = 0;\n\tvar getNextFile = function(err) {\n\t\tif(err) {\n\t\t\treturn options.callback(err);\n\t\t}\n\t\tif(next < urls.length) {\n\t\t\tself.fetchFile(urls[next++],options,getNextFile);\n\t\t} else {\n\t\t\toptions.callback(null);\n\t\t}\n\t};\n\tgetNextFile(null);\n\t// Success\n\treturn null;\n};\n\nCommand.prototype.fetchFile = function(url,options,callback,redirectCount) {\n\tif(redirectCount > 10) {\n\t\treturn callback(\"Error too many redirects retrieving \" + url);\n\t}\n\tvar self = this,\n\t\tlib = url.substr(0,8) === \"https://\" ? require(\"https\") : require(\"http\");\n\tlib.get(url).on(\"response\",function(response) {\n\t    var type = (response.headers[\"content-type\"] || \"\").split(\";\")[0],\n\t    \tdata = [];\n\t    self.commander.write(\"Reading \" + url + \": \");\n\t    response.on(\"data\",function(chunk) {\n\t        data.push(chunk);\n\t        self.commander.write(\".\");\n\t    });\n\t    response.on(\"end\",function() {\n\t        self.commander.write(\"\\n\");\n\t        if(response.statusCode === 200) {\n\t\t        self.processBody(Buffer.concat(data),type,options,url);\n\t\t        callback(null);\n\t        } else {\n\t        \tif(response.statusCode === 302 || response.statusCode === 303 || response.statusCode === 307) {\n\t        \t\treturn self.fetchFile(response.headers.location,options,callback,redirectCount + 1);\n\t        \t} else {\n\t\t        \treturn callback(\"Error \" + response.statusCode + \" retrieving \" + url)\t        \t\t\n\t        \t}\n\t        }\n\t   \t});\n\t   \tresponse.on(\"error\",function(e) {\n\t\t\tconsole.log(\"Error on GET request: \" + e);\n\t\t\tcallback(e);\n\t   \t});\n\t});\n\treturn null;\n};\n\nCommand.prototype.processBody = function(body,type,options,url) {\n\tvar self = this;\n\t// Collect the tiddlers in a wiki\n\tvar incomingWiki = new $tw.Wiki();\n\tif(options.raw) {\n\t\tvar typeInfo = type ? $tw.config.contentTypeInfo[type] : null,\n\t\t\tencoding = typeInfo ? typeInfo.encoding : \"utf8\";\n\t\tincomingWiki.addTiddler(new $tw.Tiddler({\n\t\t\ttitle: url,\n\t\t\ttype: type,\n\t\t\ttext: body.toString(encoding)\n\t\t}));\n\t} else {\n\t\t// Deserialise the file to extract the tiddlers\n\t\tvar tiddlers = this.commander.wiki.deserializeTiddlers(type || \"text/html\",body.toString(\"utf8\"),{});\n\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\tincomingWiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t});\n\t}\n\t// Filter the tiddlers to select the ones we want\n\tvar filteredTitles = incomingWiki.filterTiddlers(options.importFilter || \"[all[tiddlers]]\");\n\t// Import the selected tiddlers\n\tvar count = 0;\n\tincomingWiki.each(function(tiddler,title) {\n\t\tif(filteredTitles.indexOf(title) !== -1) {\n\t\t\tvar newTiddler;\n\t\t\tif(options.transformFilter) {\n\t\t\t\tvar transformedTitle = (incomingWiki.filterTiddlers(options.transformFilter,null,self.commander.wiki.makeTiddlerIterator([title])) || [\"\"])[0];\n\t\t\t\tif(transformedTitle) {\n\t\t\t\t\tself.commander.log(\"Importing \" + title + \" as \" + transformedTitle)\n\t\t\t\t\tnewTiddler = new $tw.Tiddler(tiddler,{title: transformedTitle});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.commander.log(\"Importing \" + title)\n\t\t\t\tnewTiddler = tiddler;\n\t\t\t}\n\t\t\tself.commander.wiki.importTiddler(newTiddler);\n\t\t\tcount++;\n\t\t}\n\t});\n\tself.commander.log(\"Imported \" + count + \" tiddlers\")\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/help.js": {
            "title": "$:/core/modules/commands/help.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/help.js\ntype: application/javascript\nmodule-type: command\n\nHelp command\n\n\\*/\n(function(){\n\n/*jshint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"help\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar subhelp = this.params[0] || \"default\",\n\t\thelpBase = \"$:/language/Help/\",\n\t\ttext;\n\tif(!this.commander.wiki.getTiddler(helpBase + subhelp)) {\n\t\tsubhelp = \"notfound\";\n\t}\n\t// Wikify the help as formatted text (ie block elements generate newlines)\n\ttext = this.commander.wiki.renderTiddler(\"text/plain-formatted\",helpBase + subhelp);\n\t// Remove any leading linebreaks\n\ttext = text.replace(/^(\\r?\\n)*/g,\"\");\n\tthis.commander.streams.output.write(text);\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/import.js": {
            "title": "$:/core/modules/commands/import.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/import.js\ntype: application/javascript\nmodule-type: command\n\nCommand to import tiddlers from a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"import\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 2) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar filename = self.params[0],\n\t\tdeserializer = self.params[1],\n\t\ttitle = self.params[2] || filename,\n\t\tencoding = self.params[3] || \"utf8\",\n\t\ttext = fs.readFileSync(filename,encoding),\n\t\ttiddlers = this.commander.wiki.deserializeTiddlers(null,text,{title: title},{deserializer: deserializer});\n\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddler));\n\t});\n\tthis.commander.log(tiddlers.length + \" tiddler(s) imported\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/init.js": {
            "title": "$:/core/modules/commands/init.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/init.js\ntype: application/javascript\nmodule-type: command\n\nCommand to initialise an empty wiki folder\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"init\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\t// Check that we don't already have a valid wiki folder\n\tif($tw.boot.wikiTiddlersPath || ($tw.utils.isDirectory($tw.boot.wikiPath) && !$tw.utils.isDirectoryEmpty($tw.boot.wikiPath))) {\n\t\treturn \"Wiki folder is not empty\";\n\t}\n\t// Loop through each of the specified editions\n\tvar editions = this.params.length > 0 ? this.params : [\"empty\"];\n\tfor(var editionIndex=0; editionIndex<editions.length; editionIndex++) {\n\t\tvar editionName = editions[editionIndex];\n\t\t// Check the edition exists\n\t\tvar editionPath = $tw.findLibraryItem(editionName,$tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar));\n\t\tif(!$tw.utils.isDirectory(editionPath)) {\n\t\t\treturn \"Edition '\" + editionName + \"' not found\";\n\t\t}\n\t\t// Copy the edition content\n\t\tvar err = $tw.utils.copyDirectory(editionPath,$tw.boot.wikiPath);\n\t\tif(!err) {\n\t\t\tthis.commander.streams.output.write(\"Copied edition '\" + editionName + \"' to \" + $tw.boot.wikiPath + \"\\n\");\n\t\t} else {\n\t\t\treturn err;\n\t\t}\n\t}\n\t// Tweak the tiddlywiki.info to remove any included wikis\n\tvar packagePath = $tw.boot.wikiPath + \"/tiddlywiki.info\",\n\t\tpackageJson = JSON.parse(fs.readFileSync(packagePath));\n\tdelete packageJson.includeWikis;\n\tfs.writeFileSync(packagePath,JSON.stringify(packageJson,null,$tw.config.preferences.jsonSpaces));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/listen.js": {
            "title": "$:/core/modules/commands/listen.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/listen.js\ntype: application/javascript\nmodule-type: command\n\nListen for HTTP requests and serve tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Server = require(\"$:/core/modules/server/server.js\").Server;\n\nexports.info = {\n\tname: \"listen\",\n\tsynchronous: true,\n\tnamedParameterMode: true,\n\tmandatoryParameters: [],\n};\n\nvar Command = function(params,commander,callback) {\n\tvar self = this;\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this;\n\tif(!$tw.boot.wikiTiddlersPath) {\n\t\t$tw.utils.warning(\"Warning: Wiki folder '\" + $tw.boot.wikiPath + \"' does not exist or is missing a tiddlywiki.info file\");\n\t}\n\t// Set up server\n\tthis.server = new Server({\n\t\twiki: this.commander.wiki,\n\t\tvariables: self.params\n\t});\n\tvar nodeServer = this.server.listen();\n\t$tw.hooks.invokeHook(\"th-server-command-post-start\",this.server,nodeServer,\"tiddlywiki\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/load.js": {
            "title": "$:/core/modules/commands/load.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/load.js\ntype: application/javascript\nmodule-type: command\n\nCommand to load tiddlers from a file or directory\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"load\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar tiddlers = $tw.loadTiddlersFromPath(self.params[0]),\n\t\tcount = 0;\n\t$tw.utils.each(tiddlers,function(tiddlerInfo) {\n\t\t$tw.utils.each(tiddlerInfo.tiddlers,function(tiddler) {\n\t\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddler));\n\t\t\tcount++;\n\t\t});\n\t});\n\tif(!count && self.params[1] !== \"noerror\") {\n\t\tself.callback(\"No tiddlers found in file \\\"\" + self.params[0] + \"\\\"\");\n\t} else {\n\t\tself.callback(null);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/makelibrary.js": {
            "title": "$:/core/modules/commands/makelibrary.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/makelibrary.js\ntype: application/javascript\nmodule-type: command\n\nCommand to pack all of the plugins in the library into a plugin tiddler of type \"library\"\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"makelibrary\",\n\tsynchronous: true\n};\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar wiki = this.commander.wiki,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tupgradeLibraryTitle = this.params[0] || UPGRADE_LIBRARY_TITLE,\n\t\ttiddlers = {};\n\t// Collect up the library plugins\n\tvar collectPlugins = function(folder) {\n\t\t\tvar pluginFolders = $tw.utils.getSubdirectories(folder) || [];\n\t\t\tfor(var p=0; p<pluginFolders.length; p++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(pluginFolders[p])) {\n\t\t\t\t\tpluginFields = $tw.loadPluginFolder(path.resolve(folder,\"./\" + pluginFolders[p]));\n\t\t\t\t\tif(pluginFields && pluginFields.title) {\n\t\t\t\t\t\ttiddlers[pluginFields.title] = pluginFields;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcollectPublisherPlugins = function(folder) {\n\t\t\tvar publisherFolders = $tw.utils.getSubdirectories(folder) || [];\n\t\t\tfor(var t=0; t<publisherFolders.length; t++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(publisherFolders[t])) {\n\t\t\t\t\tcollectPlugins(path.resolve(folder,\"./\" + publisherFolders[t]));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.pluginsPath,$tw.config.pluginsEnvVar),collectPublisherPlugins);\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.themesPath,$tw.config.themesEnvVar),collectPublisherPlugins);\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.languagesPath,$tw.config.languagesEnvVar),collectPlugins);\n\t// Save the upgrade library tiddler\n\tvar pluginFields = {\n\t\ttitle: upgradeLibraryTitle,\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"library\",\n\t\t\"text\": JSON.stringify({tiddlers: tiddlers})\n\t};\n\twiki.addTiddler(new $tw.Tiddler(pluginFields));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/output.js": {
            "title": "$:/core/modules/commands/output.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/output.js\ntype: application/javascript\nmodule-type: command\n\nCommand to set the default output location (defaults to current working directory)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"output\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing output path\";\n\t}\n\tthis.commander.outputPath = path.resolve(process.cwd(),this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/password.js": {
            "title": "$:/core/modules/commands/password.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/password.js\ntype: application/javascript\nmodule-type: command\n\nSave password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"password\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing password\";\n\t}\n\t$tw.crypto.setPassword(this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/render.js": {
            "title": "$:/core/modules/commands/render.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/render.js\ntype: application/javascript\nmodule-type: command\n\nRender individual tiddlers and save the results to the specified files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"render\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing tiddler filter\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\ttiddlerFilter = this.params[0],\n\t\tfilenameFilter = this.params[1] || \"[is[tiddler]addsuffix[.html]]\",\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tvarName = this.params[4],\n\t\tvarValue = this.params[5],\n\t\ttiddlers = wiki.filterTiddlers(tiddlerFilter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template || title),\n\t\t\tvariables = {currentTiddler: title};\n\t\tif(varName) {\n\t\t\tvariables[varName] = varValue || \"\";\n\t\t}\n\t\tvar widgetNode = wiki.makeWidget(parser,{variables: variables}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\tfilepath = path.resolve(self.commander.outputPath,wiki.filterTiddlers(filenameFilter,$tw.rootWidget,wiki.makeTiddlerIterator([title]))[0]);\n\t\tif(self.commander.verbose) {\n\t\t\tconsole.log(\"Rendering \\\"\" + title + \"\\\" to \\\"\" + filepath + \"\\\"\");\n\t\t}\n\t\t$tw.utils.createFileDirectories(filepath);\n\t\tfs.writeFileSync(filepath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/rendertiddler.js": {
            "title": "$:/core/modules/commands/rendertiddler.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/rendertiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render a tiddler and save it to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"rendertiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tname = this.params[4],\n\t\tvalue = this.params[5],\n\t\tvariables = {};\n\t$tw.utils.createFileDirectories(filename);\n\tif(template) {\n\t\tvariables.currentTiddler = title;\n\t\ttitle = template;\n\t}\n\tif(name && value) {\n\t\tvariables[name] = value;\n\t}\n\tfs.writeFile(filename,this.commander.wiki.renderTiddler(type,title,{variables: variables}),\"utf8\",function(err) {\n\t\tself.callback(err);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/rendertiddlers.js": {
            "title": "$:/core/modules/commands/rendertiddlers.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/rendertiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"rendertiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\ttemplate = this.params[1],\n\t\toutputPath = this.commander.outputPath,\n\t\tpathname = path.resolve(outputPath,this.params[2]),\t\t\n\t\ttype = this.params[3] || \"text/html\",\n\t\textension = this.params[4] || \".html\",\n\t\tdeleteDirectory = (this.params[5] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template),\n\t\t\twidgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\texportPath = null;\n\t\tif($tw.utils.hop($tw.macros,\"tv-get-export-path\")) {\n\t\t\tvar macroPath = $tw.macros[\"tv-get-export-path\"].run.apply(self,[title]);\n\t\t\tif(macroPath) {\n\t\t\t\texportPath = path.resolve(outputPath,macroPath + extension);\n\t\t\t}\n\t\t}\n\t\tvar finalPath = exportPath || path.resolve(pathname,encodeURIComponent(title) + extension);\n\t\t$tw.utils.createFileDirectories(finalPath);\n\t\tfs.writeFileSync(finalPath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/save.js": {
            "title": "$:/core/modules/commands/save.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/save.js\ntype: application/javascript\nmodule-type: command\n\nSaves individual tiddlers in their raw text or binary format to the specified files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"save\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename filter\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\ttiddlerFilter = this.params[0],\n\t\tfilenameFilter = this.params[1] || \"[is[tiddler]]\",\n\t\ttiddlers = wiki.filterTiddlers(tiddlerFilter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilepath = path.resolve(self.commander.outputPath,wiki.filterTiddlers(filenameFilter,$tw.rootWidget,wiki.makeTiddlerIterator([title]))[0]);\n\t\tif(self.commander.verbose) {\n\t\t\tconsole.log(\"Saving \\\"\" + title + \"\\\" to \\\"\" + filepath + \"\\\"\");\n\t\t}\n\t\t$tw.utils.createFileDirectories(filepath);\n\t\tfs.writeFileSync(filepath,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/savelibrarytiddlers.js": {
            "title": "$:/core/modules/commands/savelibrarytiddlers.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/savelibrarytiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the subtiddlers of a bundle tiddler as a series of JSON files\n\n--savelibrarytiddlers <tiddler> <tiddler-filter> <pathname> <skinnylisting>\n\nThe tiddler identifies the bundle tiddler that contains the subtiddlers.\n\nThe tiddler filter specifies the plugins to be included.\n\nThe pathname specifies the pathname to the folder in which the JSON files should be saved. The filename is the URL encoded title of the subtiddler.\n\nThe skinnylisting specifies the title of the tiddler to which a JSON catalogue of the subtiddlers will be saved. The JSON file contains the same data as the bundle tiddler but with the `text` field removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savelibrarytiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tcontainerTitle = this.params[0],\n\t\tfilter = this.params[1],\n\t\tbasepath = this.params[2],\n\t\tskinnyListTitle = this.params[3];\n\t// Get the container tiddler as data\n\tvar containerData = self.commander.wiki.getTiddlerDataCached(containerTitle,undefined);\n\tif(!containerData) {\n\t\treturn \"'\" + containerTitle + \"' is not a tiddler bundle\";\n\t}\n\t// Filter the list of plugins\n\tvar pluginList = [];\n\t$tw.utils.each(containerData.tiddlers,function(tiddler,title) {\n\t\tpluginList.push(title);\n\t});\n\tvar filteredPluginList;\n\tif(filter) {\n\t\tfilteredPluginList = self.commander.wiki.filterTiddlers(filter,null,self.commander.wiki.makeTiddlerIterator(pluginList));\n\t} else {\n\t\tfilteredPluginList = pluginList;\n\t}\n\t// Iterate through the plugins\n\tvar skinnyList = [];\n\t$tw.utils.each(filteredPluginList,function(title) {\n\t\tvar tiddler = containerData.tiddlers[title];\n\t\t// Save each JSON file and collect the skinny data\n\t\tvar pathname = path.resolve(self.commander.outputPath,basepath + encodeURIComponent(title) + \".json\");\n\t\t$tw.utils.createFileDirectories(pathname);\n\t\tfs.writeFileSync(pathname,JSON.stringify(tiddler),\"utf8\");\n\t\t// Collect the skinny list data\n\t\tvar pluginTiddlers = JSON.parse(tiddler.text),\n\t\t\treadmeContent = (pluginTiddlers.tiddlers[title + \"/readme\"] || {}).text,\n\t\t\tdoesRequireReload = !!self.commander.wiki.doesPluginInfoRequireReload(pluginTiddlers),\n\t\t\ticonTiddler = pluginTiddlers.tiddlers[title + \"/icon\"] || {},\n\t\t\ticonType = iconTiddler.type,\n\t\t\ticonText = iconTiddler.text,\n\t\t\ticonContent;\n\t\tif(iconType && iconText) {\n\t\t\ticonContent = $tw.utils.makeDataUri(iconText,iconType);\n\t\t}\n\t\tskinnyList.push($tw.utils.extend({},tiddler,{\n\t\t\ttext: undefined,\n\t\t\treadme: readmeContent,\n\t\t\t\"requires-reload\": doesRequireReload ? \"yes\" : \"no\",\n\t\t\ticon: iconContent\n\t\t}));\n\t});\n\t// Save the catalogue tiddler\n\tif(skinnyListTitle) {\n\t\tself.commander.wiki.setTiddlerData(skinnyListTitle,skinnyList);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/savetiddler.js": {
            "title": "$:/core/modules/commands/savetiddler.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/savetiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the content of a tiddler to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savetiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttiddler = this.commander.wiki.getTiddler(title);\n\tif(tiddler) {\n\t\tvar type = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"};\n\t\t$tw.utils.createFileDirectories(filename);\n\t\tfs.writeFile(filename,tiddler.fields.text,contentTypeInfo.encoding,function(err) {\n\t\t\tself.callback(err);\n\t\t});\n\t} else {\n\t\treturn \"Missing tiddler: \" + title;\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/savetiddlers.js": {
            "title": "$:/core/modules/commands/savetiddlers.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/savetiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"savetiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tpathname = path.resolve(this.commander.outputPath,this.params[1]),\n\t\tdeleteDirectory = (this.params[2] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.createDirectory(pathname);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilename = path.resolve(pathname,encodeURIComponent(title));\n\t\tfs.writeFileSync(filename,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/savewikifolder.js": {
            "title": "$:/core/modules/commands/savewikifolder.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/savewikifolder.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the current wiki as a wiki folder\n\n--savewikifolder <wikifolderpath> [<filter>]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savewikifolder\",\n\tsynchronous: true\n};\n\nvar fs,path;\nif($tw.node) {\n\tfs = require(\"fs\");\n\tpath = require(\"path\");\n}\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing wiki folder path\";\n\t}\n\tvar wikifoldermaker = new WikiFolderMaker(this.params[0],this.params[1],this.commander);\n\treturn wikifoldermaker.save();\n};\n\nfunction WikiFolderMaker(wikiFolderPath,wikiFilter,commander) {\n\tthis.wikiFolderPath = wikiFolderPath;\n\tthis.wikiFilter = wikiFilter || \"[all[tiddlers]]\";\n\tthis.commander = commander;\n\tthis.wiki = commander.wiki;\n\tthis.savedPaths = []; // So that we can detect filename clashes\n}\n\nWikiFolderMaker.prototype.log = function(str) {\n\tif(this.commander.verbose) {\n\t\tconsole.log(str);\n\t}\n};\n\nWikiFolderMaker.prototype.tiddlersToIgnore = [\n\t\"$:/boot/boot.css\",\n\t\"$:/boot/boot.js\",\n\t\"$:/boot/bootprefix.js\",\n\t\"$:/core\",\n\t\"$:/library/sjcl.js\",\n\t\"$:/temp/info-plugin\"\n];\n\n/*\nReturns null if successful, or an error string if there was an error\n*/\nWikiFolderMaker.prototype.save = function() {\n\tvar self = this;\n\t// Check that the output directory doesn't exist\n\tif(fs.existsSync(this.wikiFolderPath) && !$tw.utils.isDirectoryEmpty(this.wikiFolderPath)) {\n\t\treturn \"The unpackwiki command requires that the output wiki folder be empty\";\n\t}\n\t// Get the tiddlers from the source wiki\n\tvar tiddlerTitles = this.wiki.filterTiddlers(this.wikiFilter);\n\t// Initialise a new tiddlwiki.info file\n\tvar newWikiInfo = {};\n\t// Process each incoming tiddler in turn\n\t$tw.utils.each(tiddlerTitles,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\tif(tiddler) {\n\t\t\tif(self.tiddlersToIgnore.indexOf(title) !== -1) {\n\t\t\t\t// Ignore the core plugin and the ephemeral info plugin\n\t\t\t\tself.log(\"Ignoring tiddler: \" + title);\n\t\t\t} else {\n\t\t\t\tvar type = tiddler.fields.type,\n\t\t\t\t\tpluginType = tiddler.fields[\"plugin-type\"];\n\t\t\t\tif(type === \"application/json\" && pluginType) {\n\t\t\t\t\t// Plugin tiddler\n\t\t\t\t\tvar libraryDetails = self.findPluginInLibrary(title);\n\t\t\t\t\tif(libraryDetails) {\n\t\t\t\t\t\t// A plugin from the core library\n\t\t\t\t\t\tself.log(\"Adding built-in plugin: \" + libraryDetails.name);\n\t\t\t\t\t\tnewWikiInfo[libraryDetails.type] = newWikiInfo[libraryDetails.type]  || [];\n\t\t\t\t\t\t$tw.utils.pushTop(newWikiInfo[libraryDetails.type],libraryDetails.name);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// A custom plugin\n\t\t\t\t\t\tself.log(\"Processing custom plugin: \" + title);\n\t\t\t\t\t\tself.saveCustomPlugin(tiddler);\n\t\t\t\t\t}\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t// Ordinary tiddler\n\t\t\t\t\tself.saveTiddler(\"tiddlers\",tiddler);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// Save the tiddlywiki.info file\n\tthis.saveJSONFile(\"tiddlywiki.info\",newWikiInfo);\n\tself.log(\"Writing tiddlywiki.info: \" + JSON.stringify(newWikiInfo,null,$tw.config.preferences.jsonSpaces));\n\treturn null;\n};\n\n/*\nTest whether the specified tiddler is a plugin in the plugin library\n*/\nWikiFolderMaker.prototype.findPluginInLibrary = function(title) {\n\tvar parts = title.split(\"/\"),\n\t\tpluginPath, type, name;\n\tif(parts[0] === \"$:\") {\n\t\tif(parts[1] === \"languages\" && parts.length === 3) {\n\t\t\tpluginPath = \"languages\" + path.sep + parts[2];\n\t\t\ttype = parts[1];\n\t\t\tname = parts[2];\n\t\t} else if(parts[1] === \"plugins\" || parts[1] === \"themes\" && parts.length === 4) {\n\t\t\tpluginPath = parts[1] + path.sep + parts[2] + path.sep + parts[3];\n\t\t\ttype = parts[1];\n\t\t\tname = parts[2] + \"/\" + parts[3];\n\t\t}\n\t}\n\tif(pluginPath && type && name) {\n\t\tpluginPath = path.resolve($tw.boot.bootPath,\"..\",pluginPath);\n\t\tif(fs.existsSync(pluginPath)) {\n\t\t\treturn {\n\t\t\t\tpluginPath: pluginPath,\n\t\t\t\ttype: type,\n\t\t\t\tname: name\n\t\t\t};\n\t\t}\n\t}\n\treturn false;\n};\n\nWikiFolderMaker.prototype.saveCustomPlugin = function(pluginTiddler) {\n\tvar self = this,\n\t\tpluginTitle = pluginTiddler.fields.title,\n\t\ttitleParts = pluginTitle.split(\"/\"),\n\t\tdirectory = $tw.utils.generateTiddlerFilepath(titleParts[titleParts.length - 1],{\n\t\t\tdirectory: path.resolve(this.wikiFolderPath,pluginTiddler.fields[\"plugin-type\"] + \"s\")\n\t\t}),\n\t\tpluginInfo = pluginTiddler.getFieldStrings({exclude: [\"text\",\"type\"]});\n\tthis.saveJSONFile(directory + path.sep + \"plugin.info\",pluginInfo);\n\tself.log(\"Writing \" + directory + path.sep + \"plugin.info: \" + JSON.stringify(pluginInfo,null,$tw.config.preferences.jsonSpaces));\n\tvar pluginTiddlers = JSON.parse(pluginTiddler.fields.text).tiddlers; // A hashmap of tiddlers in the plugin\n\t$tw.utils.each(pluginTiddlers,function(tiddler) {\n\t\tself.saveTiddler(directory,new $tw.Tiddler(tiddler));\n\t});\n};\n\nWikiFolderMaker.prototype.saveTiddler = function(directory,tiddler) {\n\tvar fileInfo = $tw.utils.generateTiddlerFileInfo(tiddler,{\n\t\tdirectory: path.resolve(this.wikiFolderPath,directory),\n\t\twiki: this.wiki\n\t});\n\t$tw.utils.saveTiddlerToFileSync(tiddler,fileInfo);\n};\n\nWikiFolderMaker.prototype.saveJSONFile = function(filename,json) {\n\tthis.saveTextFile(filename,JSON.stringify(json,null,$tw.config.preferences.jsonSpaces));\n};\n\nWikiFolderMaker.prototype.saveTextFile = function(filename,data) {\n\tthis.saveFile(filename,\"utf8\",data);\n};\n\nWikiFolderMaker.prototype.saveFile = function(filename,encoding,data) {\n\tvar filepath = path.resolve(this.wikiFolderPath,filename);\n\t$tw.utils.createFileDirectories(filepath);\n\tfs.writeFileSync(filepath,data,encoding);\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/server.js": {
            "title": "$:/core/modules/commands/server.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/server.js\ntype: application/javascript\nmodule-type: command\n\nDeprecated legacy command for serving tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Server = require(\"$:/core/modules/server/server.js\").Server;\n\nexports.info = {\n\tname: \"server\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tvar self = this;\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(!$tw.boot.wikiTiddlersPath) {\n\t\t$tw.utils.warning(\"Warning: Wiki folder '\" + $tw.boot.wikiPath + \"' does not exist or is missing a tiddlywiki.info file\");\n\t}\n\t// Set up server\n\tthis.server = new Server({\n\t\twiki: this.commander.wiki,\n\t\tvariables: {\n\t\t\tport: this.params[0],\n\t\t\thost: this.params[6],\n\t\t\t\"root-tiddler\": this.params[1],\n\t\t\t\"root-render-type\": this.params[2],\n\t\t\t\"root-serve-type\": this.params[3],\n\t\t\tusername: this.params[4],\n\t\t\tpassword: this.params[5],\n\t\t\t\"path-prefix\": this.params[7],\n\t\t\t\"debug-level\": this.params[8]\n\t\t}\n\t});\n\tvar nodeServer = this.server.listen();\n\t$tw.hooks.invokeHook(\"th-server-command-post-start\",this.server,nodeServer,\"tiddlywiki\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/setfield.js": {
            "title": "$:/core/modules/commands/setfield.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/setfield.js\ntype: application/javascript\nmodule-type: command\n\nCommand to modify selected tiddlers to set a field to the text of a template tiddler that has been wikified with the selected tiddler as the current tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"setfield\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 4) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tfieldname = this.params[1] || \"text\",\n\t\ttemplatetitle = this.params[2],\n\t\trendertype = this.params[3] || \"text/plain\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(templatetitle),\n\t\t\tnewFields = {},\n\t\t\ttiddler = wiki.getTiddler(title);\n\t\tif(parser) {\n\t\t\tvar widgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}});\n\t\t\tvar container = $tw.fakeDocument.createElement(\"div\");\n\t\t\twidgetNode.render(container,null);\n\t\t\tnewFields[fieldname] = rendertype === \"text/html\" ? container.innerHTML : container.textContent;\n\t\t} else {\n\t\t\tnewFields[fieldname] = undefined;\n\t\t}\n\t\twiki.addTiddler(new $tw.Tiddler(tiddler,newFields));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/unpackplugin.js": {
            "title": "$:/core/modules/commands/unpackplugin.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/unpackplugin.js\ntype: application/javascript\nmodule-type: command\n\nCommand to extract the shadow tiddlers from within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"unpackplugin\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing plugin name\";\n\t}\n\tvar self = this,\n\t\ttitle = this.params[0],\n\t\tpluginData = this.commander.wiki.getTiddlerDataCached(title);\n\tif(!pluginData) {\n\t\treturn \"Plugin '\" + title + \"' not found\";\n\t}\n\t$tw.utils.each(pluginData.tiddlers,function(tiddler) {\n\t\tself.commander.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/verbose.js": {
            "title": "$:/core/modules/commands/verbose.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/verbose.js\ntype: application/javascript\nmodule-type: command\n\nVerbose command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"verbose\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.verbose = true;\n\t// Output the boot message log\n\tthis.commander.streams.output.write(\"Boot log:\\n  \" + $tw.boot.logMessages.join(\"\\n  \") + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/version.js": {
            "title": "$:/core/modules/commands/version.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/version.js\ntype: application/javascript\nmodule-type: command\n\nVersion command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"version\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.streams.output.write($tw.version + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/config.js": {
            "title": "$:/core/modules/config.js",
            "text": "/*\\\ntitle: $:/core/modules/config.js\ntype: application/javascript\nmodule-type: config\n\nCore configuration constants\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.preferences = {};\n\nexports.preferences.notificationDuration = 3 * 1000;\nexports.preferences.jsonSpaces = 4;\n\nexports.textPrimitives = {\n\tupperLetter: \"[A-Z\\u00c0-\\u00d6\\u00d8-\\u00de\\u0150\\u0170]\",\n\tlowerLetter: \"[a-z\\u00df-\\u00f6\\u00f8-\\u00ff\\u0151\\u0171]\",\n\tanyLetter:   \"[A-Za-z0-9\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\",\n\tblockPrefixLetters:\t\"[A-Za-z0-9-_\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\"\n};\n\nexports.textPrimitives.unWikiLink = \"~\";\nexports.textPrimitives.wikiLink = exports.textPrimitives.upperLetter + \"+\" +\n\texports.textPrimitives.lowerLetter + \"+\" +\n\texports.textPrimitives.upperLetter +\n\texports.textPrimitives.anyLetter + \"*\";\n\nexports.htmlEntities = {quot:34, amp:38, apos:39, lt:60, gt:62, nbsp:160, iexcl:161, cent:162, pound:163, curren:164, yen:165, brvbar:166, sect:167, uml:168, copy:169, ordf:170, laquo:171, not:172, shy:173, reg:174, macr:175, deg:176, plusmn:177, sup2:178, sup3:179, acute:180, micro:181, para:182, middot:183, cedil:184, sup1:185, ordm:186, raquo:187, frac14:188, frac12:189, frac34:190, iquest:191, Agrave:192, Aacute:193, Acirc:194, Atilde:195, Auml:196, Aring:197, AElig:198, Ccedil:199, Egrave:200, Eacute:201, Ecirc:202, Euml:203, Igrave:204, Iacute:205, Icirc:206, Iuml:207, ETH:208, Ntilde:209, Ograve:210, Oacute:211, Ocirc:212, Otilde:213, Ouml:214, times:215, Oslash:216, Ugrave:217, Uacute:218, Ucirc:219, Uuml:220, Yacute:221, THORN:222, szlig:223, agrave:224, aacute:225, acirc:226, atilde:227, auml:228, aring:229, aelig:230, ccedil:231, egrave:232, eacute:233, ecirc:234, euml:235, igrave:236, iacute:237, icirc:238, iuml:239, eth:240, ntilde:241, ograve:242, oacute:243, ocirc:244, otilde:245, ouml:246, divide:247, oslash:248, ugrave:249, uacute:250, ucirc:251, uuml:252, yacute:253, thorn:254, yuml:255, OElig:338, oelig:339, Scaron:352, scaron:353, Yuml:376, fnof:402, circ:710, tilde:732, Alpha:913, Beta:914, Gamma:915, Delta:916, Epsilon:917, Zeta:918, Eta:919, Theta:920, Iota:921, Kappa:922, Lambda:923, Mu:924, Nu:925, Xi:926, Omicron:927, Pi:928, Rho:929, Sigma:931, Tau:932, Upsilon:933, Phi:934, Chi:935, Psi:936, Omega:937, alpha:945, beta:946, gamma:947, delta:948, epsilon:949, zeta:950, eta:951, theta:952, iota:953, kappa:954, lambda:955, mu:956, nu:957, xi:958, omicron:959, pi:960, rho:961, sigmaf:962, sigma:963, tau:964, upsilon:965, phi:966, chi:967, psi:968, omega:969, thetasym:977, upsih:978, piv:982, ensp:8194, emsp:8195, thinsp:8201, zwnj:8204, zwj:8205, lrm:8206, rlm:8207, ndash:8211, mdash:8212, lsquo:8216, rsquo:8217, sbquo:8218, ldquo:8220, rdquo:8221, bdquo:8222, dagger:8224, Dagger:8225, bull:8226, hellip:8230, permil:8240, prime:8242, Prime:8243, lsaquo:8249, rsaquo:8250, oline:8254, frasl:8260, euro:8364, image:8465, weierp:8472, real:8476, trade:8482, alefsym:8501, larr:8592, uarr:8593, rarr:8594, darr:8595, harr:8596, crarr:8629, lArr:8656, uArr:8657, rArr:8658, dArr:8659, hArr:8660, forall:8704, part:8706, exist:8707, empty:8709, nabla:8711, isin:8712, notin:8713, ni:8715, prod:8719, sum:8721, minus:8722, lowast:8727, radic:8730, prop:8733, infin:8734, ang:8736, and:8743, or:8744, cap:8745, cup:8746, int:8747, there4:8756, sim:8764, cong:8773, asymp:8776, ne:8800, equiv:8801, le:8804, ge:8805, sub:8834, sup:8835, nsub:8836, sube:8838, supe:8839, oplus:8853, otimes:8855, perp:8869, sdot:8901, lceil:8968, rceil:8969, lfloor:8970, rfloor:8971, lang:9001, rang:9002, loz:9674, spades:9824, clubs:9827, hearts:9829, diams:9830 };\n\nexports.htmlVoidElements = \"area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr\".split(\",\");\n\nexports.htmlBlockElements = \"address,article,aside,audio,blockquote,canvas,dd,div,dl,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,li,noscript,ol,output,p,pre,section,table,tfoot,ul,video\".split(\",\");\n\nexports.htmlUnsafeElements = \"script\".split(\",\");\n\n})();\n",
            "type": "application/javascript",
            "module-type": "config"
        },
        "$:/core/modules/deserializers.js": {
            "title": "$:/core/modules/deserializers.js",
            "text": "/*\\\ntitle: $:/core/modules/deserializers.js\ntype: application/javascript\nmodule-type: tiddlerdeserializer\n\nFunctions to deserialise tiddlers from a block of text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nUtility function to parse an old-style tiddler DIV in a *.tid file. It looks like this:\n\n<div title=\"Title\" creator=\"JoeBloggs\" modifier=\"JoeBloggs\" created=\"201102111106\" modified=\"201102111310\" tags=\"myTag [[my long tag]]\">\n<pre>The text of the tiddler (without the expected HTML encoding).\n</pre>\n</div>\n\nNote that the field attributes are HTML encoded, but that the body of the <PRE> tag is not encoded.\n\nWhen these tiddler DIVs are encountered within a TiddlyWiki HTML file then the body is encoded in the usual way.\n*/\nvar parseTiddlerDiv = function(text /* [,fields] */) {\n\t// Slot together the default results\n\tvar result = {};\n\tif(arguments.length > 1) {\n\t\tfor(var f=1; f<arguments.length; f++) {\n\t\t\tvar fields = arguments[f];\n\t\t\tfor(var t in fields) {\n\t\t\t\tresult[t] = fields[t];\t\t\n\t\t\t}\n\t\t}\n\t}\n\t// Parse the DIV body\n\tvar startRegExp = /^\\s*<div\\s+([^>]*)>(\\s*<pre>)?/gi,\n\t\tendRegExp,\n\t\tmatch = startRegExp.exec(text);\n\tif(match) {\n\t\t// Old-style DIVs don't have the <pre> tag\n\t\tif(match[2]) {\n\t\t\tendRegExp = /<\\/pre>\\s*<\\/div>\\s*$/gi;\n\t\t} else {\n\t\t\tendRegExp = /<\\/div>\\s*$/gi;\n\t\t}\n\t\tvar endMatch = endRegExp.exec(text);\n\t\tif(endMatch) {\n\t\t\t// Extract the text\n\t\t\tresult.text = text.substring(match.index + match[0].length,endMatch.index);\n\t\t\t// Process the attributes\n\t\t\tvar attrRegExp = /\\s*([^=\\s]+)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)')/gi,\n\t\t\t\tattrMatch;\n\t\t\tdo {\n\t\t\t\tattrMatch = attrRegExp.exec(match[1]);\n\t\t\t\tif(attrMatch) {\n\t\t\t\t\tvar name = attrMatch[1];\n\t\t\t\t\tvar value = attrMatch[2] !== undefined ? attrMatch[2] : attrMatch[3];\n\t\t\t\t\tresult[name] = value;\n\t\t\t\t}\n\t\t\t} while(attrMatch);\n\t\t\treturn result;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports[\"application/x-tiddler-html-div\"] = function(text,fields) {\n\treturn [parseTiddlerDiv(text,fields)];\n};\n\nexports[\"application/json\"] = function(text,fields) {\n\tvar incoming,\n\t\tresults = [];\n\ttry {\n\t\tincoming = JSON.parse(text);\n\t} catch(e) {\n\t\tincoming = [{\n\t\t\ttitle: \"JSON error: \" + e,\n\t\t\ttext: \"\"\n\t\t}]\n\t}\n\tif(!$tw.utils.isArray(incoming)) {\n\t\tincoming = [incoming];\n\t}\n\tfor(var t=0; t<incoming.length; t++) {\n\t\tvar incomingFields = incoming[t],\n\t\t\tfields = {};\n\t\tfor(var f in incomingFields) {\n\t\t\tif(typeof incomingFields[f] === \"string\") {\n\t\t\t\tfields[f] = incomingFields[f];\n\t\t\t}\n\t\t}\n\t\tresults.push(fields);\n\t}\n\treturn results;\n};\n\n/*\nParse an HTML file into tiddlers. There are three possibilities:\n# A TiddlyWiki classic HTML file containing `text/x-tiddlywiki` tiddlers\n# A TiddlyWiki5 HTML file containing `text/vnd.tiddlywiki` tiddlers\n# An ordinary HTML file\n*/\nexports[\"text/html\"] = function(text,fields) {\n\t// Check if we've got a store area\n\tvar storeAreaMarkerRegExp = /<div id=[\"']?storeArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\tmatch = storeAreaMarkerRegExp.exec(text);\n\tif(match) {\n\t\t// If so, it's either a classic TiddlyWiki file or an unencrypted TW5 file\n\t\t// First read the normal tiddlers\n\t\tvar results = deserializeTiddlyWikiFile(text,storeAreaMarkerRegExp.lastIndex,!!match[1],fields);\n\t\t// Then any system tiddlers\n\t\tvar systemAreaMarkerRegExp = /<div id=[\"']?systemArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\t\tsysMatch = systemAreaMarkerRegExp.exec(text);\n\t\tif(sysMatch) {\n\t\t\tresults.push.apply(results,deserializeTiddlyWikiFile(text,systemAreaMarkerRegExp.lastIndex,!!sysMatch[1],fields));\n\t\t}\n\t\treturn results;\n\t} else {\n\t\t// Check whether we've got an encrypted file\n\t\tvar encryptedStoreArea = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedStoreArea) {\n\t\t\t// If so, attempt to decrypt it using the current password\n\t\t\treturn $tw.utils.decryptStoreArea(encryptedStoreArea);\n\t\t} else {\n\t\t\t// It's not a TiddlyWiki so we'll return the entire HTML file as a tiddler\n\t\t\treturn deserializeHtmlFile(text,fields);\n\t\t}\n\t}\n};\n\nfunction deserializeHtmlFile(text,fields) {\n\tvar result = {};\n\t$tw.utils.each(fields,function(value,name) {\n\t\tresult[name] = value;\n\t});\n\tresult.text = text;\n\tresult.type = \"text/html\";\n\treturn [result];\n}\n\nfunction deserializeTiddlyWikiFile(text,storeAreaEnd,isTiddlyWiki5,fields) {\n\tvar results = [],\n\t\tendOfDivRegExp = /(<\\/div>\\s*)/gi,\n\t\tstartPos = storeAreaEnd,\n\t\tdefaultType = isTiddlyWiki5 ? undefined : \"text/x-tiddlywiki\";\n\tendOfDivRegExp.lastIndex = startPos;\n\tvar match = endOfDivRegExp.exec(text);\n\twhile(match) {\n\t\tvar endPos = endOfDivRegExp.lastIndex,\n\t\t\ttiddlerFields = parseTiddlerDiv(text.substring(startPos,endPos),fields,{type: defaultType});\n\t\tif(!tiddlerFields) {\n\t\t\tbreak;\n\t\t}\n\t\t$tw.utils.each(tiddlerFields,function(value,name) {\n\t\t\tif(typeof value === \"string\") {\n\t\t\t\ttiddlerFields[name] = $tw.utils.htmlDecode(value);\n\t\t\t}\n\t\t});\n\t\tif(tiddlerFields.text !== null) {\n\t\t\tresults.push(tiddlerFields);\n\t\t}\n\t\tstartPos = endPos;\n\t\tmatch = endOfDivRegExp.exec(text);\n\t}\n\treturn results;\n}\n\n})();\n",
            "type": "application/javascript",
            "module-type": "tiddlerdeserializer"
        },
        "$:/core/modules/editor/engines/framed.js": {
            "title": "$:/core/modules/editor/engines/framed.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/engines/framed.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea within an iframe. This is done so that the selection is preserved even when clicking away from the textarea\n\n\\*/\n(function(){\n\n/*jslint node: true,browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction FramedEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Create our hidden dummy text area for reading styles\n\tthis.dummyTextArea = this.widget.document.createElement(\"textarea\");\n\tif(this.widget.editClass) {\n\t\tthis.dummyTextArea.className = this.widget.editClass;\n\t}\n\tthis.dummyTextArea.setAttribute(\"hidden\",\"true\");\n\tthis.parentNode.insertBefore(this.dummyTextArea,this.nextSibling);\n\tthis.widget.domNodes.push(this.dummyTextArea);\n\t// Create the iframe\n\tthis.iframeNode = this.widget.document.createElement(\"iframe\");\n\tthis.parentNode.insertBefore(this.iframeNode,this.nextSibling);\n\tthis.iframeDoc = this.iframeNode.contentWindow.document;\n\t// (Firefox requires us to put some empty content in the iframe)\n\tthis.iframeDoc.open();\n\tthis.iframeDoc.write(\"\");\n\tthis.iframeDoc.close();\n\t// Style the iframe\n\tthis.iframeNode.className = this.dummyTextArea.className;\n\tthis.iframeNode.style.border = \"none\";\n\tthis.iframeNode.style.padding = \"0\";\n\tthis.iframeNode.style.resize = \"none\";\n\tthis.iframeDoc.body.style.margin = \"0\";\n\tthis.iframeDoc.body.style.padding = \"0\";\n\tthis.widget.domNodes.push(this.iframeNode);\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.iframeDoc.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.iframeDoc.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editTabIndex) {\n\t\tthis.iframeNode.setAttribute(\"tabindex\",this.widget.editTabIndex);\n\t}\n\tif(this.widget.editAutoComplete) {\n\t\tthis.domNode.setAttribute(\"autocomplete\",this.widget.editAutoComplete);\n\t}\n\tif(this.widget.isDisabled === \"yes\") {\n\t\tthis.domNode.setAttribute(\"disabled\",true);\n\t}\t\n\t// Copy the styles from the dummy textarea\n\tthis.copyStyles();\n\t// Add event listeners\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"click\",handlerObject: this,handlerMethod: \"handleClickEvent\"},\n\t\t{name: \"input\",handlerObject: this,handlerMethod: \"handleInputEvent\"},\n\t\t{name: \"keydown\",handlerObject: this.widget,handlerMethod: \"handleKeydownEvent\"},\n\t\t{name: \"focus\",handlerObject: this,handlerMethod: \"handleFocusEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.iframeDoc.body.appendChild(this.domNode);\n}\n\n/*\nCopy styles from the dummy text area to the textarea in the iframe\n*/\nFramedEngine.prototype.copyStyles = function() {\n\t// Copy all styles\n\t$tw.utils.copyStyles(this.dummyTextArea,this.domNode);\n\t// Override the ones that should not be set the same as the dummy textarea\n\tthis.domNode.style.display = \"block\";\n\tthis.domNode.style.width = \"100%\";\n\tthis.domNode.style.margin = \"0\";\n\t// In Chrome setting -webkit-text-fill-color overrides the placeholder text colour\n\tthis.domNode.style[\"-webkit-text-fill-color\"] = \"currentcolor\";\n};\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nFramedEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode) {\n\t\t\tthis.updateDomNodeText(text);\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nUpdate the DomNode with the new text\n*/\nFramedEngine.prototype.updateDomNodeText = function(text) {\n\tthis.domNode.value = text;\n};\n\n/*\nGet the text of the engine\n*/\nFramedEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nFramedEngine.prototype.fixHeight = function() {\n\t// Make sure styles are updated\n\tthis.copyStyles();\n\t// Adjust height\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\tvar newHeight = $tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t\tthis.iframeNode.style.height = (newHeight + 14) + \"px\"; // +14 for the border on the textarea\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t\tthis.iframeNode.style.height = (fixedHeight + 14) + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nFramedEngine.prototype.focus  = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a focus event\n*/\nFramedEngine.prototype.handleFocusEvent = function(event) {\n\tif(this.widget.editCancelPopups) {\n\t\t$tw.popup.cancel(0);\t\n\t}\n};\n\n/*\nHandle a click\n*/\nFramedEngine.prototype.handleClickEvent = function(event) {\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nFramedEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\tif(this.widget.editInputActions) {\n\t\tthis.widget.invokeActionString(this.widget.editInputActions);\n\t}\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nFramedEngine.prototype.createTextOperation = function() {\n\tvar operation = {\n\t\ttext: this.domNode.value,\n\t\tselStart: this.domNode.selectionStart,\n\t\tselEnd: this.domNode.selectionEnd,\n\t\tcutStart: null,\n\t\tcutEnd: null,\n\t\treplacement: null,\n\t\tnewSelStart: null,\n\t\tnewSelEnd: null\n\t};\n\toperation.selection = operation.text.substring(operation.selStart,operation.selEnd);\n\treturn operation;\n};\n\n/*\nExecute a text operation\n*/\nFramedEngine.prototype.executeTextOperation = function(operation) {\n\t// Perform the required changes to the text area and the underlying tiddler\n\tvar newText = operation.text;\n\tif(operation.replacement !== null) {\n\t\tnewText = operation.text.substring(0,operation.cutStart) + operation.replacement + operation.text.substring(operation.cutEnd);\n\t\t// Attempt to use a execCommand to modify the value of the control\n\t\tif(this.iframeDoc.queryCommandSupported(\"insertText\") && this.iframeDoc.queryCommandSupported(\"delete\") && !$tw.browser.isFirefox) {\n\t\t\tthis.domNode.focus();\n\t\t\tthis.domNode.setSelectionRange(operation.cutStart,operation.cutEnd);\n\t\t\tif(operation.replacement === \"\") {\n\t\t\t\tthis.iframeDoc.execCommand(\"delete\",false,\"\");\n\t\t\t} else {\n\t\t\t\tthis.iframeDoc.execCommand(\"insertText\",false,operation.replacement);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.domNode.value = newText;\n\t\t}\n\t\tthis.domNode.focus();\n\t\tthis.domNode.setSelectionRange(operation.newSelStart,operation.newSelEnd);\n\t}\n\tthis.domNode.focus();\n\treturn newText;\n};\n\nexports.FramedEngine = FramedEngine;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "library"
        },
        "$:/core/modules/editor/engines/simple.js": {
            "title": "$:/core/modules/editor/engines/simple.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/engines/simple.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction SimpleEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.widget.document.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.widget.document.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editClass) {\n\t\tthis.domNode.className = this.widget.editClass;\n\t}\n\tif(this.widget.editTabIndex) {\n\t\tthis.domNode.setAttribute(\"tabindex\",this.widget.editTabIndex);\n\t}\n\tif(this.widget.editAutoComplete) {\n\t\tthis.domNode.setAttribute(\"autocomplete\",this.widget.editAutoComplete);\n\t}\n\tif(this.widget.isDisabled === \"yes\") {\n\t\tthis.domNode.setAttribute(\"disabled\",true);\n\t}\n\t// Add an input event handler\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"focus\", handlerObject: this, handlerMethod: \"handleFocusEvent\"},\n\t\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInputEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.parentNode.insertBefore(this.domNode,this.nextSibling);\n\tthis.widget.domNodes.push(this.domNode);\n}\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nSimpleEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode || text === \"\") {\n\t\t\tthis.updateDomNodeText(text);\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nUpdate the DomNode with the new text\n*/\nSimpleEngine.prototype.updateDomNodeText = function(text) {\n\tthis.domNode.value = text;\n};\n\n/*\nGet the text of the engine\n*/\nSimpleEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nSimpleEngine.prototype.fixHeight = function() {\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\t$tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nSimpleEngine.prototype.focus  = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nSimpleEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\tif(this.widget.editInputActions) {\n\t\tthis.widget.invokeActionString(this.widget.editInputActions);\n\t}\n\treturn true;\n};\n\n/*\nHandle a dom \"focus\" event\n*/\nSimpleEngine.prototype.handleFocusEvent = function(event) {\n\tif(this.widget.editCancelPopups) {\n\t\t$tw.popup.cancel(0);\n\t}\n\tif(this.widget.editFocusPopup) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNode,\n\t\t\ttitle: this.widget.editFocusPopup,\n\t\t\twiki: this.widget.wiki,\n\t\t\tforce: true\n\t\t});\n\t}\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nSimpleEngine.prototype.createTextOperation = function() {\n\treturn null;\n};\n\n/*\nExecute a text operation\n*/\nSimpleEngine.prototype.executeTextOperation = function(operation) {\n};\n\nexports.SimpleEngine = SimpleEngine;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "library"
        },
        "$:/core/modules/editor/factory.js": {
            "title": "$:/core/modules/editor/factory.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/factory.js\ntype: application/javascript\nmodule-type: library\n\nFactory for constructing text editor widgets with specified engines for the toolbar and non-toolbar cases\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_MIN_TEXT_AREA_HEIGHT = \"100px\"; // Minimum height of textareas in pixels\n\n// Configuration tiddlers\nvar HEIGHT_MODE_TITLE = \"$:/config/TextEditor/EditorHeight/Mode\";\nvar ENABLE_TOOLBAR_TITLE = \"$:/config/TextEditor/EnableToolbar\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nfunction editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {\n\n\tvar EditTextWidget = function(parseTreeNode,options) {\n\t\t// Initialise the editor operations if they've not been done already\n\t\tif(!this.editorOperations) {\n\t\t\tEditTextWidget.prototype.editorOperations = {};\n\t\t\t$tw.modules.applyMethods(\"texteditoroperation\",this.editorOperations);\n\t\t}\n\t\tthis.initialise(parseTreeNode,options);\n\t};\n\n\t/*\n\tInherit from the base widget class\n\t*/\n\tEditTextWidget.prototype = new Widget();\n\n\t/*\n\tRender this widget into the DOM\n\t*/\n\tEditTextWidget.prototype.render = function(parent,nextSibling) {\n\t\t// Save the parent dom node\n\t\tthis.parentDomNode = parent;\n\t\t// Compute our attributes\n\t\tthis.computeAttributes();\n\t\t// Execute our logic\n\t\tthis.execute();\n\t\t// Create the wrapper for the toolbar and render its content\n\t\tif(this.editShowToolbar) {\n\t\t\tthis.toolbarNode = this.document.createElement(\"div\");\n\t\t\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\t\t\tparent.insertBefore(this.toolbarNode,nextSibling);\n\t\t\tthis.renderChildren(this.toolbarNode,null);\n\t\t\tthis.domNodes.push(this.toolbarNode);\n\t\t}\n\t\t// Create our element\n\t\tvar editInfo = this.getEditInfo(),\n\t\t\tEngine = this.editShowToolbar ? toolbarEngine : nonToolbarEngine;\n\t\tthis.engine = new Engine({\n\t\t\t\twidget: this,\n\t\t\t\tvalue: editInfo.value,\n\t\t\t\ttype: editInfo.type,\n\t\t\t\tparentNode: parent,\n\t\t\t\tnextSibling: nextSibling\n\t\t\t});\n\t\t// Call the postRender hook\n\t\tif(this.postRender) {\n\t\t\tthis.postRender();\n\t\t}\n\t\t// Fix height\n\t\tthis.engine.fixHeight();\n\t\t// Focus if required\n\t\tif(this.editFocus === \"true\" || this.editFocus === \"yes\") {\n\t\t\tthis.engine.focus();\n\t\t}\n\t\t// Add widget message listeners\n\t\tthis.addEventListeners([\n\t\t\t{type: \"tm-edit-text-operation\", handler: \"handleEditTextOperationMessage\"}\n\t\t]);\n\t};\n\n\t/*\n\tGet the tiddler being edited and current value\n\t*/\n\tEditTextWidget.prototype.getEditInfo = function() {\n\t\t// Get the edit value\n\t\tvar self = this,\n\t\t\tvalue,\n\t\t\ttype = \"text/plain\",\n\t\t\tupdate;\n\t\tif(this.editIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.editTitle,this.editIndex,this.editDefault);\n\t\t\tupdate = function(value) {\n\t\t\t\tvar data = self.wiki.getTiddlerData(self.editTitle,{});\n\t\t\t\tif(data[self.editIndex] !== value) {\n\t\t\t\t\tdata[self.editIndex] = value;\n\t\t\t\t\tself.wiki.setTiddlerData(self.editTitle,data);\n\t\t\t\t}\n\t\t\t};\n\t\t} else {\n\t\t\t// Get the current tiddler and the field name\n\t\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\t\tif(tiddler) {\n\t\t\t\t// If we've got a tiddler, the value to display is the field string value\n\t\t\t\tvalue = tiddler.getFieldString(this.editField);\n\t\t\t\tif(this.editField === \"text\") {\n\t\t\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise, we need to construct a default value for the editor\n\t\t\t\tswitch(this.editField) {\n\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\tvalue = \"Type the text for the tiddler '\" + this.editTitle + \"'\";\n\t\t\t\t\t\ttype = \"text/vnd.tiddlywiki\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"title\":\n\t\t\t\t\t\tvalue = this.editTitle;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvalue = \"\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(this.editDefault !== undefined) {\n\t\t\t\t\tvalue = this.editDefault;\n\t\t\t\t}\n\t\t\t}\n\t\t\tupdate = function(value) {\n\t\t\t\tvar tiddler = self.wiki.getTiddler(self.editTitle),\n\t\t\t\t\tupdateFields = {\n\t\t\t\t\t\ttitle: self.editTitle\n\t\t\t\t\t};\n\t\t\t\tupdateFields[self.editField] = value;\n\t\t\t\tself.wiki.addTiddler(new $tw.Tiddler(self.wiki.getCreationFields(),tiddler,updateFields,self.wiki.getModificationFields()));\n\t\t\t};\n\t\t}\n\t\tif(this.editType) {\n\t\t\ttype = this.editType;\n\t\t}\n\t\treturn {value: value || \"\", type: type, update: update};\n\t};\n\n\t/*\n\tHandle an edit text operation message from the toolbar\n\t*/\n\tEditTextWidget.prototype.handleEditTextOperationMessage = function(event) {\n\t\t// Prepare information about the operation\n\t\tvar operation = this.engine.createTextOperation();\n\t\t// Invoke the handler for the selected operation\n\t\tvar handler = this.editorOperations[event.param];\n\t\tif(handler) {\n\t\t\thandler.call(this,event,operation);\n\t\t}\n\t\t// Execute the operation via the engine\n\t\tvar newText = this.engine.executeTextOperation(operation);\n\t\t// Fix the tiddler height and save changes\n\t\tthis.engine.fixHeight();\n\t\tthis.saveChanges(newText);\n\t};\n\n\t/*\n\tCompute the internal state of the widget\n\t*/\n\tEditTextWidget.prototype.execute = function() {\n\t\t// Get our parameters\n\t\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t\tthis.editField = this.getAttribute(\"field\",\"text\");\n\t\tthis.editIndex = this.getAttribute(\"index\");\n\t\tthis.editDefault = this.getAttribute(\"default\");\n\t\tthis.editClass = this.getAttribute(\"class\");\n\t\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\t\tthis.editSize = this.getAttribute(\"size\");\n\t\tthis.editRows = this.getAttribute(\"rows\");\n\t\tthis.editAutoHeight = this.wiki.getTiddlerText(HEIGHT_MODE_TITLE,\"auto\");\n\t\tthis.editAutoHeight = this.getAttribute(\"autoHeight\",this.editAutoHeight === \"auto\" ? \"yes\" : \"no\") === \"yes\";\n\t\tthis.editMinHeight = this.getAttribute(\"minHeight\",DEFAULT_MIN_TEXT_AREA_HEIGHT);\n\t\tthis.editFocusPopup = this.getAttribute(\"focusPopup\");\n\t\tthis.editFocus = this.getAttribute(\"focus\");\n\t\tthis.editTabIndex = this.getAttribute(\"tabindex\");\n\t\tthis.editCancelPopups = this.getAttribute(\"cancelPopups\",\"\") === \"yes\";\n\t\tthis.editInputActions = this.getAttribute(\"inputActions\");\n\t\tthis.editRefreshTitle = this.getAttribute(\"refreshTitle\");\n\t\tthis.editAutoComplete = this.getAttribute(\"autocomplete\");\n\t\tthis.isDisabled = this.getAttribute(\"disabled\",\"no\");\n\t\t// Get the default editor element tag and type\n\t\tvar tag,type;\n\t\tif(this.editField === \"text\") {\n\t\t\ttag = \"textarea\";\n\t\t} else {\n\t\t\ttag = \"input\";\n\t\t\tvar fieldModule = $tw.Tiddler.fieldModules[this.editField];\n\t\t\tif(fieldModule && fieldModule.editTag) {\n\t\t\t\ttag = fieldModule.editTag;\n\t\t\t}\n\t\t\tif(fieldModule && fieldModule.editType) {\n\t\t\t\ttype = fieldModule.editType;\n\t\t\t}\n\t\t\ttype = type || \"text\";\n\t\t}\n\t\t// Get the rest of our parameters\n\t\tthis.editTag = this.getAttribute(\"tag\",tag) || \"input\";\n\t\tthis.editType = this.getAttribute(\"type\",type);\n\t\t// Make the child widgets\n\t\tthis.makeChildWidgets();\n\t\t// Determine whether to show the toolbar\n\t\tthis.editShowToolbar = this.wiki.getTiddlerText(ENABLE_TOOLBAR_TITLE,\"yes\");\n\t\tthis.editShowToolbar = (this.editShowToolbar === \"yes\") && !!(this.children && this.children.length > 0) && (!this.document.isTiddlyWikiFakeDom);\n\t};\n\n\t/*\n\tSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n\t*/\n\tEditTextWidget.prototype.refresh = function(changedTiddlers) {\n\t\tvar changedAttributes = this.computeAttributes();\n\t\t// Completely rerender if any of our attributes have changed\n\t\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.placeholder || changedAttributes.size || changedAttributes.autoHeight || changedAttributes.minHeight || changedAttributes.focusPopup ||  changedAttributes.rows || changedAttributes.tabindex || changedAttributes.cancelPopups || changedAttributes.inputActions || changedAttributes.refreshTitle || changedAttributes.autocomplete || changedTiddlers[HEIGHT_MODE_TITLE] || changedTiddlers[ENABLE_TOOLBAR_TITLE] || changedAttributes.disabled) {\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\n\t\t} else if (changedTiddlers[this.editRefreshTitle]) {\n\t\t\tthis.engine.updateDomNodeText(this.getEditInfo().value);\n\t\t} else if(changedTiddlers[this.editTitle]) {\n\t\t\tvar editInfo = this.getEditInfo();\n\t\t\tthis.updateEditor(editInfo.value,editInfo.type);\n\t\t}\n\t\tthis.engine.fixHeight();\n\t\tif(this.editShowToolbar) {\n\t\t\treturn this.refreshChildren(changedTiddlers);\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\t/*\n\tUpdate the editor with new text. This method is separate from updateEditorDomNode()\n\tso that subclasses can override updateEditor() and still use updateEditorDomNode()\n\t*/\n\tEditTextWidget.prototype.updateEditor = function(text,type) {\n\t\tthis.updateEditorDomNode(text,type);\n\t};\n\n\t/*\n\tUpdate the editor dom node with new text\n\t*/\n\tEditTextWidget.prototype.updateEditorDomNode = function(text,type) {\n\t\tthis.engine.setText(text,type);\n\t};\n\n\t/*\n\tSave changes back to the tiddler store\n\t*/\n\tEditTextWidget.prototype.saveChanges = function(text) {\n\t\tvar editInfo = this.getEditInfo();\n\t\tif(text !== editInfo.value) {\n\t\t\teditInfo.update(text);\n\t\t}\n\t};\n\n\t/*\n\tHandle a dom \"keydown\" event, which we'll bubble up to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.handleKeydownEvent = function(event) {\n\t\t// Check for a keyboard shortcut\n\t\tif(this.toolbarNode) {\n\t\t\tvar shortcutElements = this.toolbarNode.querySelectorAll(\"[data-tw-keyboard-shortcut]\");\n\t\t\tfor(var index=0; index<shortcutElements.length; index++) {\n\t\t\t\tvar el = shortcutElements[index],\n\t\t\t\t\tshortcutData = el.getAttribute(\"data-tw-keyboard-shortcut\"),\n\t\t\t\t\tkeyInfoArray = $tw.keyboardManager.parseKeyDescriptors(shortcutData,{\n\t\t\t\t\t\twiki: this.wiki\n\t\t\t\t\t});\n\t\t\t\tif($tw.keyboardManager.checkKeyDescriptors(event,keyInfoArray)) {\n\t\t\t\t\tvar clickEvent = this.document.createEvent(\"Events\");\n\t\t\t\t    clickEvent.initEvent(\"click\",true,false);\n\t\t\t\t    el.dispatchEvent(clickEvent);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Propogate the event to the container\n\t\tif(this.propogateKeydownEvent(event)) {\n\t\t\t// Ignore the keydown if it was already handled\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn true;\n\t\t}\n\t\t// Otherwise, process the keydown normally\n\t\treturn false;\n\t};\n\n\t/*\n\tPropogate keydown events to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.propogateKeydownEvent = function(event) {\n\t\tvar newEvent = this.document.createEventObject ? this.document.createEventObject() : this.document.createEvent(\"Events\");\n\t\tif(newEvent.initEvent) {\n\t\t\tnewEvent.initEvent(\"keydown\", true, true);\n\t\t}\n\t\tnewEvent.keyCode = event.keyCode;\n\t\tnewEvent.which = event.which;\n\t\tnewEvent.metaKey = event.metaKey;\n\t\tnewEvent.ctrlKey = event.ctrlKey;\n\t\tnewEvent.altKey = event.altKey;\n\t\tnewEvent.shiftKey = event.shiftKey;\n\t\treturn !this.parentDomNode.dispatchEvent(newEvent);\n\t};\n\n\treturn EditTextWidget;\n\n}\n\nexports.editTextWidgetFactory = editTextWidgetFactory;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "library"
        },
        "$:/core/modules/editor/operations/bitmap/clear.js": {
            "title": "$:/core/modules/editor/operations/bitmap/clear.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/clear.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to clear the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"clear\"] = function(event) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.globalAlpha = 1;\n\tctx.fillStyle = event.paramObject.colour || \"white\";\n\tctx.fillRect(0,0,this.canvasDomNode.width,this.canvasDomNode.height);\n\t// Save changes\n\tthis.strokeEnd();\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "bitmapeditoroperation"
        },
        "$:/core/modules/editor/operations/bitmap/resize.js": {
            "title": "$:/core/modules/editor/operations/bitmap/resize.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/resize.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to resize the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"resize\"] = function(event) {\n\t// Get the new width\n\tvar newWidth = parseInt(event.paramObject.width || this.canvasDomNode.width,10),\n\t\tnewHeight = parseInt(event.paramObject.height || this.canvasDomNode.height,10);\n\t// Update if necessary\n\tif(newWidth > 0 && newHeight > 0 && !(newWidth === this.currCanvas.width && newHeight === this.currCanvas.height)) {\n\t\tthis.changeCanvasSize(newWidth,newHeight);\n\t}\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "bitmapeditoroperation"
        },
        "$:/core/modules/editor/operations/bitmap/rotate-left.js": {
            "title": "$:/core/modules/editor/operations/bitmap/rotate-left.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/rotate-left.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to rotate the image left by 90 degrees\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"rotate-left\"] = function(event) {\n\t// Rotate the canvas left by 90 degrees\n\tthis.rotateCanvasLeft();\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "bitmapeditoroperation"
        },
        "$:/core/modules/editor/operations/text/excise.js": {
            "title": "$:/core/modules/editor/operations/text/excise.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/excise.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to excise the selection to a new tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"excise\"] = function(event,operation) {\n\tvar editTiddler = this.wiki.getTiddler(this.editTitle),\n\t\teditTiddlerTitle = this.editTitle;\n\tif(editTiddler && editTiddler.fields[\"draft.of\"]) {\n\t\teditTiddlerTitle = editTiddler.fields[\"draft.of\"];\n\t}\n\tvar excisionTitle = event.paramObject.title || this.wiki.generateNewTitle(\"New Excision\");\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\tthis.wiki.getModificationFields(),\n\t\t{\n\t\t\ttitle: excisionTitle,\n\t\t\ttext: operation.selection,\n\t\t\ttags: event.paramObject.tagnew === \"yes\" ?  [editTiddlerTitle] : []\n\t\t}\n\t));\n\toperation.replacement = excisionTitle;\n\tswitch(event.paramObject.type || \"transclude\") {\n\t\tcase \"transclude\":\n\t\t\toperation.replacement = \"{{\" + operation.replacement+ \"}}\";\n\t\t\tbreak;\n\t\tcase \"link\":\n\t\t\toperation.replacement = \"[[\" + operation.replacement+ \"]]\";\n\t\t\tbreak;\n\t\tcase \"macro\":\n\t\t\toperation.replacement = \"<<\" + (event.paramObject.macro || \"translink\") + \" \\\"\\\"\\\"\" + operation.replacement + \"\\\"\\\"\\\">>\";\n\t\t\tbreak;\n\t}\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/make-link.js": {
            "title": "$:/core/modules/editor/operations/text/make-link.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/make-link.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to make a link\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"make-link\"] = function(event,operation) {\n\tif(operation.selection) {\n\t\toperation.replacement = \"[[\" + operation.selection + \"|\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t} else {\n\t\toperation.replacement = \"[[\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t}\n\toperation.newSelStart = operation.selStart + operation.replacement.length;\n\toperation.newSelEnd = operation.newSelStart;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/prefix-lines.js": {
            "title": "$:/core/modules/editor/operations/text/prefix-lines.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/prefix-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to add a prefix to the selected lines\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"prefix-lines\"] = function(event,operation) {\n\tvar targetCount = parseInt(event.paramObject.count + \"\",10);\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Compose the required prefix\n\tvar prefix = $tw.utils.repeat(event.paramObject.character,targetCount);\n\t// Process each line\n\tvar lines = operation.text.substring(operation.cutStart,operation.cutEnd).split(/\\r?\\n/mg);\n\t$tw.utils.each(lines,function(line,index) {\n\t\t// Remove and count any existing prefix characters\n\t\tvar count = 0;\n\t\twhile(line.charAt(0) === event.paramObject.character) {\n\t\t\tline = line.substring(1);\n\t\t\tcount++;\n\t\t}\n\t\t// Remove any whitespace\n\t\twhile(line.charAt(0) === \" \") {\n\t\t\tline = line.substring(1);\n\t\t}\n\t\t// We're done if we removed the exact required prefix, otherwise add it\n\t\tif(count !== targetCount) {\n\t\t\t// Apply the prefix\n\t\t\tline =  prefix + \" \" + line;\n\t\t}\n\t\t// Save the modified line\n\t\tlines[index] = line;\n\t});\n\t// Stitch the replacement text together and set the selection\n\toperation.replacement = lines.join(\"\\n\");\n\tif(lines.length === 1) {\n\t\toperation.newSelStart = operation.cutStart + operation.replacement.length;\n\t\toperation.newSelEnd = operation.newSelStart;\n\t} else {\n\t\toperation.newSelStart = operation.cutStart;\n\t\toperation.newSelEnd = operation.newSelStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/replace-all.js": {
            "title": "$:/core/modules/editor/operations/text/replace-all.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-all.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the entire text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-all\"] = function(event,operation) {\n\toperation.cutStart = 0;\n\toperation.cutEnd = operation.text.length;\n\toperation.replacement = event.paramObject.text;\n\toperation.newSelStart = 0;\n\toperation.newSelEnd = operation.replacement.length;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/replace-selection.js": {
            "title": "$:/core/modules/editor/operations/text/replace-selection.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the selection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-selection\"] = function(event,operation) {\n\toperation.replacement = event.paramObject.text;\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/save-selection.js": {
            "title": "$:/core/modules/editor/operations/text/save-selection.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/save-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to save the current selection in a specified tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"save-selection\"] = function(event,operation) {\n\tvar tiddler = event.paramObject.tiddler,\n\t\tfield = event.paramObject.field || \"text\";\n\tif(tiddler && field) {\n\t\tthis.wiki.setText(tiddler,field,null,operation.text.substring(operation.selStart,operation.selEnd));\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/wrap-lines.js": {
            "title": "$:/core/modules/editor/operations/text/wrap-lines.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selected lines with a prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-lines\"] = function(event,operation) {\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Add the prefix and suffix\n\toperation.replacement = event.paramObject.prefix + \"\\n\" +\n\t\t\t\toperation.text.substring(operation.cutStart,operation.cutEnd) + \"\\n\" +\n\t\t\t\tevent.paramObject.suffix + \"\\n\";\n\toperation.newSelStart = operation.cutStart + event.paramObject.prefix.length + 1;\n\toperation.newSelEnd = operation.newSelStart + (operation.cutEnd - operation.cutStart);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/wrap-selection.js": {
            "title": "$:/core/modules/editor/operations/text/wrap-selection.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selection with the specified prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-selection\"] = function(event,operation) {\n\tif(operation.selStart === operation.selEnd) {\n\t\t// No selection; check if we're within the prefix/suffix\n\t\tif(operation.text.substring(operation.selStart - event.paramObject.prefix.length,operation.selStart + event.paramObject.suffix.length) === event.paramObject.prefix + event.paramObject.suffix) {\n\t\t\t// Remove the prefix and suffix\n\t\t\toperation.cutStart = operation.selStart - event.paramObject.prefix.length;\n\t\t\toperation.cutEnd = operation.selEnd + event.paramObject.suffix.length;\n\t\t\toperation.replacement = \"\";\n\t\t\toperation.newSelStart = operation.cutStart;\n\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t} else {\n\t\t\t// Wrap the cursor instead\n\t\t\toperation.cutStart = operation.selStart;\n\t\t\toperation.cutEnd = operation.selEnd;\n\t\t\toperation.replacement = event.paramObject.prefix + event.paramObject.suffix;\n\t\t\toperation.newSelStart = operation.selStart + event.paramObject.prefix.length;\n\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t}\n\t} else if(operation.text.substring(operation.selStart,operation.selStart + event.paramObject.prefix.length) === event.paramObject.prefix && operation.text.substring(operation.selEnd - event.paramObject.suffix.length,operation.selEnd) === event.paramObject.suffix) {\n\t\t// Prefix and suffix are already present, so remove them\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = operation.selection.substring(event.paramObject.prefix.length,operation.selection.length - event.paramObject.suffix.length);\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t} else {\n\t\t// Add the prefix and suffix\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = event.paramObject.prefix + operation.selection + event.paramObject.suffix;\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/filterrunprefixes/all.js": {
            "title": "$:/core/modules/filterrunprefixes/all.js",
            "text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/all.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\nUnion of sets without de-duplication.\nEquivalent to = filter run prefix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.all = function(operationSubFunction) {\n\treturn function(results,source,widget) {\n\t\tresults.push.apply(results, operationSubFunction(source,widget));\n\t};\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filterrunprefix"
        },
        "$:/core/modules/filterrunprefixes/and.js": {
            "title": "$:/core/modules/filterrunprefixes/and.js",
            "text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/and.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\nIntersection of sets.\nEquivalent to + filter run prefix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.and = function(operationSubFunction,options) {\n\treturn function(results,source,widget) {\n\t\t// This replaces all the elements of the array, but keeps the actual array so that references to it are preserved\n\t\tsource = options.wiki.makeTiddlerIterator(results.toArray());\n\t\tresults.clear();\n\t\tresults.pushTop(operationSubFunction(source,widget));\n\t};\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filterrunprefix"
        },
        "$:/core/modules/filterrunprefixes/else.js": {
            "title": "$:/core/modules/filterrunprefixes/else.js",
            "text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/else.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\nEquivalent to ~ filter run prefix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.else = function(operationSubFunction) {\n\treturn function(results,source,widget) {\n\t\tif(results.length === 0) {\n\t\t\t// Main result so far is empty\n\t\t\tresults.pushTop(operationSubFunction(source,widget));\n\t\t}\n\t};\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filterrunprefix"
        },
        "$:/core/modules/filterrunprefixes/except.js": {
            "title": "$:/core/modules/filterrunprefixes/except.js",
            "text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/except.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\nDifference of sets.\nEquivalent to - filter run prefix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.except = function(operationSubFunction) {\n\treturn function(results,source,widget) {\n\t\tresults.remove(operationSubFunction(source,widget));\n\t};\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filterrunprefix"
        },
        "$:/core/modules/filterrunprefixes/filter.js": {
            "title": "$:/core/modules/filterrunprefixes/filter.js",
            "text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/filter.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.filter = function(operationSubFunction,options) {\n\treturn function(results,source,widget) {\n\t\tif(results.length > 0) {\n\t\t\tvar resultsToRemove = [];\n\t\t\tresults.each(function(result) {\n\t\t\t\tvar filtered = operationSubFunction(options.wiki.makeTiddlerIterator([result]),widget);\n\t\t\t\tif(filtered.length === 0) {\n\t\t\t\t\tresultsToRemove.push(result);\n\t\t\t\t}\n\t\t\t});\n\t\t\tresults.remove(resultsToRemove);\n\t\t}\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filterrunprefix"
        },
        "$:/core/modules/filterrunprefixes/intersection.js": {
            "title": "$:/core/modules/filterrunprefixes/intersection.js",
            "text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/intersection.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.intersection = function(operationSubFunction) {\n\treturn function(results,source,widget) {\n\t\tif(results.length !== 0) {\n\t\t\tvar secondRunResults = operationSubFunction(source,widget);\n\t\t\tvar firstRunResults = results.toArray();\n\t\t\tresults.clear();\n\t\t\t$tw.utils.each(firstRunResults,function(title) {\n\t\t\t\tif(secondRunResults.indexOf(title) !== -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filterrunprefix"
        },
        "$:/core/modules/filterrunprefixes/or.js": {
            "title": "$:/core/modules/filterrunprefixes/or.js",
            "text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/or.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\nEquivalent to a filter run with no prefix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.or = function(operationSubFunction) {\n\treturn function(results,source,widget) {\n\t\tresults.pushTop(operationSubFunction(source,widget));\n\t};\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filterrunprefix"
        },
        "$:/core/modules/filterrunprefixes/reduce.js": {
            "title": "$:/core/modules/filterrunprefixes/reduce.js",
            "text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/reduce.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.reduce = function(operationSubFunction,options) {\n\treturn function(results,source,widget) {\n\t\tif(results.length > 0) {\n\t\t\tvar accumulator = \"\";\n\t\t\tvar index = 0;\n\t\t\tresults.each(function(title) {\n\t\t\t\tvar list = operationSubFunction(options.wiki.makeTiddlerIterator([title]),{\n\t\t\t\t\t\tgetVariable: function(name) {\n\t\t\t\t\t\t\tswitch(name) {\n\t\t\t\t\t\t\t\tcase \"currentTiddler\":\n\t\t\t\t\t\t\t\t\treturn \"\" + title;\n\t\t\t\t\t\t\t\tcase \"accumulator\":\n\t\t\t\t\t\t\t\t\treturn \"\" + accumulator;\n\t\t\t\t\t\t\t\tcase \"index\":\n\t\t\t\t\t\t\t\t\treturn \"\" + index;\n\t\t\t\t\t\t\t\tcase \"revIndex\":\n\t\t\t\t\t\t\t\t\treturn \"\" +  (results.length - 1 - index);\n\t\t\t\t\t\t\t\tcase \"length\":\n\t\t\t\t\t\t\t\t\treturn \"\" + results.length;\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn widget.getVariable(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\tif(list.length > 0) {\n\t\t\t\t\taccumulator = \"\" + list[0];\n\t\t\t\t}\n\t\t\t\t++index;\n\t\t\t});\n\t\t\tresults.clear();\n\t\t\tresults.push(accumulator);\t\n\t\t}\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filterrunprefix"
        },
        "$:/core/modules/filters/addprefix.js": {
            "title": "$:/core/modules/filters/addprefix.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/addprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a prefix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(operator.operand + title);\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/addsuffix.js": {
            "title": "$:/core/modules/filters/addsuffix.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/addsuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a suffix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addsuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title + operator.operand);\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/after.js": {
            "title": "$:/core/modules/filters/after.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/after.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is after the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.after = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index === -1 || index > (results.length - 2)) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index + 1]];\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/all/current.js": {
            "title": "$:/core/modules/filters/all/current.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/all/current.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar currTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(currTiddlerTitle) {\n\t\treturn [currTiddlerTitle];\n\t} else {\n\t\treturn [];\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all/missing.js": {
            "title": "$:/core/modules/filters/all/missing.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/all/missing.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\treturn options.wiki.getMissingTitles();\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all/orphans.js": {
            "title": "$:/core/modules/filters/all/orphans.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/all/orphans.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[orphans]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphans = function(source,prefix,options) {\n\treturn options.wiki.getOrphanTitles();\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all/shadows.js": {
            "title": "$:/core/modules/filters/all/shadows.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/all/shadows.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[shadows]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadows = function(source,prefix,options) {\n\treturn options.wiki.allShadowTitles();\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all/tags.js": {
            "title": "$:/core/modules/filters/all/tags.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/all/tags.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tags]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,prefix,options) {\n\treturn Object.keys(options.wiki.getTagMap());\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all/tiddlers.js": {
            "title": "$:/core/modules/filters/all/tiddlers.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/all/tiddlers.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddlers = function(source,prefix,options) {\n\treturn options.wiki.allTitles();\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all.js": {
            "title": "$:/core/modules/filters/all.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/all.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for selecting tiddlers\n\n[all[shadows+tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar allFilterOperators;\n\nfunction getAllFilterOperators() {\n\tif(!allFilterOperators) {\n\t\tallFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"allfilteroperator\",allFilterOperators);\n\t}\n\treturn allFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.all = function(source,operator,options) {\n\t// Get our suboperators\n\tvar allFilterOperators = getAllFilterOperators();\n\t// Cycle through the suboperators accumulating their results\n\tvar results = [],\n\t\tsubops = operator.operand.split(\"+\");\n\t// Check for common optimisations\n\tif(subops.length === 1 && subops[0] === \"\") {\n\t\treturn source;\n\t} else if(subops.length === 1 && subops[0] === \"tiddlers\") {\n\t\treturn options.wiki.each;\n\t} else if(subops.length === 1 && subops[0] === \"shadows\") {\n\t\treturn options.wiki.eachShadow;\n\t} else if(subops.length === 2 && subops[0] === \"tiddlers\" && subops[1] === \"shadows\") {\n\t\treturn options.wiki.eachTiddlerPlusShadows;\n\t} else if(subops.length === 2 && subops[0] === \"shadows\" && subops[1] === \"tiddlers\") {\n\t\treturn options.wiki.eachShadowPlusTiddlers;\n\t}\n\t// Do it the hard way\n\tfor(var t=0; t<subops.length; t++) {\n\t\tvar subop = allFilterOperators[subops[t]];\n\t\tif(subop) {\n\t\t\t$tw.utils.pushTop(results,subop(source,operator.prefix,options));\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/backlinks.js": {
            "title": "$:/core/modules/filters/backlinks.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/backlinks.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the backlinks from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.backlinks = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerBacklinks(title));\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/before.js": {
            "title": "$:/core/modules/filters/before.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/before.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is before the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.before = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index <= 0) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index - 1]];\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/commands.js": {
            "title": "$:/core/modules/filters/commands.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/commands.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the commands available in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.commands = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.commands,function(commandInfo,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/compare.js": {
            "title": "$:/core/modules/filters/compare.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/compare.js\ntype: application/javascript\nmodule-type: filteroperator\n\nGeneral purpose comparison operator\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.compare = function(source,operator,options) {\n\tvar suffixes = operator.suffixes || [],\n\t\ttype = (suffixes[0] || [])[0],\n\t\tmode = (suffixes[1] || [])[0],\n\t\ttypeFn = $tw.utils.makeCompareFunction(type,{defaultType: \"number\"}),\n\t\tmodeFn = modes[mode] || modes.eq,\n\t\tinvert = operator.prefix === \"!\",\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tif(modeFn(typeFn(title,operator.operand)) !== invert) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\nvar modes = {\n\t\"eq\": function(value) {return value === 0;},\n\t\"ne\": function(value) {return value !== 0;},\n\t\"gteq\": function(value) {return value >= 0;},\n\t\"gt\": function(value) {return value > 0;},\n\t\"lteq\": function(value) {return value <= 0;},\n\t\"lt\": function(value) {return value < 0;}\n}\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/contains.js": {
            "title": "$:/core/modules/filters/contains.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/contains.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for finding values in array fields\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.contains = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"list\").toLowerCase();\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\tvar list = tiddler.getFieldList(fieldname);\n\t\t\t\tif(list.indexOf(operator.operand) === -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\tvar list = tiddler.getFieldList(fieldname);\n\t\t\t\tif(list.indexOf(operator.operand) !== -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/count.js": {
            "title": "$:/core/modules/filters/count.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/count.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the number of entries in the current list.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.count = function(source,operator,options) {\n\tvar count = 0;\n\tsource(function(tiddler,title) {\n\t\tcount++;\n\t});\n\treturn [count + \"\"];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/days.js": {
            "title": "$:/core/modules/filters/days.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/days.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a specified date field within a specified date interval.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.days = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\tdayInterval = (parseInt(operator.operand,10)||0),\n\t\tdayIntervalSign = $tw.utils.sign(dayInterval),\n\t\ttargetTimeStamp = (new Date()).setHours(0,0,0,0) + 1000*60*60*24*dayInterval,\n\t\tisWithinDays = function(dateField) {\n\t\t\tvar sign = $tw.utils.sign(targetTimeStamp - (new Date(dateField)).setHours(0,0,0,0));\n\t\t\treturn sign === 0 || sign === dayIntervalSign;\n\t\t};\n\n\tif(operator.prefix === \"!\") {\n\t\ttargetTimeStamp = targetTimeStamp - 1000*60*60*24*dayIntervalSign;\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(!isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/duplicateslugs.js": {
            "title": "$:/core/modules/filters/duplicateslugs.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/duplicateslugs.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter function for [duplicateslugs[]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.duplicateslugs = function(source,operator,options) {\n\tvar slugs = Object.create(null), // Hashmap by slug of title, replaced with \"true\" if the duplicate title has already been output\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tvar slug = options.wiki.slugify(title);\n\t\tif(slug in slugs) {\n\t\t\tif(slugs[slug] !== true) {\n\t\t\t\tresults.push(slugs[slug]);\n\t\t\t\tslugs[slug] = true;\n\t\t\t}\n\t\t\tresults.push(title);\n\t\t} else {\n\t\t\tslugs[slug] = title;\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/each.js": {
            "title": "$:/core/modules/filters/each.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/each.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique value of the specified field.\nWith suffix \"list\", selects all tiddlers that are values in a specified list field.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.each = function(source,operator,options) {\n\tvar results =[] ,\n\tvalue,values = {},\n\tfield = operator.operand || \"title\";\n\tif(operator.suffix === \"value\" && field === \"title\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(values,title)) {\n\t\t\t\tvalues[title] = true;\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else if(operator.suffix !== \"list-item\") {\n\t\tif(field === \"title\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && !$tw.utils.hop(values,title)) {\n\t\t\t\t\tvalues[title] = true;\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvalue = tiddler.getFieldString(field);\n\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\t$tw.utils.each(\n\t\t\t\t\toptions.wiki.getTiddlerList(title,field),\n\t\t\t\t\tfunction(value) {\n\t\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\t\tresults.push(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/eachday.js": {
            "title": "$:/core/modules/filters/eachday.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/eachday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique day covered by the specified date field\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.eachday = function(source,operator,options) {\n\tvar results = [],\n\t\tvalues = [],\n\t\tfieldName = operator.operand || \"modified\";\n\t// Function to convert a date/time to a date integer\n\tvar toDate = function(value) {\n\t\tvalue = (new Date(value)).setHours(0,0,0,0);\n\t\treturn value+0;\n\t};\n\tsource(function(tiddler,title) {\n\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\tvar value = toDate($tw.utils.parseDate(tiddler.fields[fieldName]));\n\t\t\tif(values.indexOf(value) === -1) {\n\t\t\t\tvalues.push(value);\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/editiondescription.js": {
            "title": "$:/core/modules/filters/editiondescription.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/editiondescription.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the descriptions of the specified edition names\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editiondescription = function(source,operator,options) {\n\tvar results = [];\n\tif($tw.node) {\n\t\tvar editionInfo = $tw.utils.getEditionInfo();\n\t\tif(editionInfo) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif($tw.utils.hop(editionInfo,title)) {\n\t\t\t\t\tresults.push(editionInfo[title].description || \"\");\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/editions.js": {
            "title": "$:/core/modules/filters/editions.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/editions.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the available editions in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editions = function(source,operator,options) {\n\tvar results = [];\n\tif($tw.node) {\n\t\tvar editionInfo = $tw.utils.getEditionInfo();\n\t\tif(editionInfo) {\n\t\t\t$tw.utils.each(editionInfo,function(info,name) {\n\t\t\t\tresults.push(name);\n\t\t\t});\n\t\t}\n\t\tresults.sort();\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/else.js": {
            "title": "$:/core/modules/filters/else.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/else.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing an empty input list with a constant, passing a non-empty input list straight through\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.else = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tif(results.length === 0) {\n\t\treturn [operator.operand];\n\t} else {\n\t\treturn results;\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/decodeuricomponent.js": {
            "title": "$:/core/modules/filters/decodeuricomponent.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/decodeuricomponent.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for applying decodeURIComponent() to each item.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter functions\n*/\n\nexports.decodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar value = title;\n\t\ttry {\n\t\t\tvalue = decodeURIComponent(title);\n\t\t} catch(e) {\n\t\t}\n\t\tresults.push(value);\n\t});\n\treturn results;\n};\n\nexports.encodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURIComponent(title));\n\t});\n\treturn results;\n};\n\nexports.decodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar value = title;\n\t\ttry {\n\t\t\tvalue = decodeURI(title);\n\t\t} catch(e) {\n\t\t}\n\t\tresults.push(value);\n\t});\n\treturn results;\n};\n\nexports.encodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURI(title));\n\t});\n\treturn results;\n};\n\nexports.decodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlDecode(title));\n\t});\n\treturn results;\n};\n\nexports.encodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlEncode(title));\n\t});\n\treturn results;\n};\n\nexports.stringify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.stringify(title,(operator.suffix === \"rawunicode\")));\n\t});\n\treturn results;\n};\n\nexports.jsonstringify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.jsonStringify(title,(operator.suffix === \"rawunicode\")));\n\t});\n\treturn results;\n};\n\nexports.escaperegexp = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.escapeRegExp(title));\n\t});\n\treturn results;\n};\n\nexports.escapecss = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t// escape any character with a special meaning in CSS using CSS.escape()\n\t\tresults.push(CSS.escape(title));\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/enlist.js": {
            "title": "$:/core/modules/filters/enlist.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/enlist.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning its operand parsed as a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.enlist = function(source,operator,options) {\n\tvar allowDuplicates = false;\n\tswitch(operator.suffix) {\n\t\tcase \"raw\":\n\t\t\tallowDuplicates = true;\n\t\t\tbreak;\n\t\tcase \"dedupe\":\n\t\t\tallowDuplicates = false;\n\t\t\tbreak;\n\t}\n\tvar list = $tw.utils.parseStringArray(operator.operand,allowDuplicates);\n\tif(operator.prefix === \"!\") {\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t} else {\n\t\treturn list;\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/field.js": {
            "title": "$:/core/modules/filters/field.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/field.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.field = function(source,operator,options) {\n\tvar results = [],indexedResults,\n\t\tfieldname = (operator.suffix || operator.operator || \"title\").toLowerCase();\n\tif(operator.prefix === \"!\") {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text !== operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !!operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tif(source.byField && operator.operand) {\n\t\t\t\tindexedResults = source.byField(fieldname,operator.operand);\n\t\t\t\tif(indexedResults) {\n\t\t\t\t\treturn indexedResults\n\t\t\t\t}\n\t\t\t}\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text === operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/fields.js": {
            "title": "$:/core/modules/filters/fields.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/fields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.fields = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName,\n\t\tsuffixes = (operator.suffixes || [])[0] || [],\n\t\toperand = $tw.utils.parseStringArray(operator.operand);\n\t\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tif(suffixes.indexOf(\"include\") !== -1) {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t(operand.indexOf(fieldName) !== -1) ? $tw.utils.pushTop(results,fieldName) : \"\";\n\t\t\t\t}\n\t\t\t} else if (suffixes.indexOf(\"exclude\") !== -1) {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t(operand.indexOf(fieldName) !== -1) ? \"\" : $tw.utils.pushTop(results,fieldName);\n\t\t\t\t}\n\t\t\t} // else if\n\t\t\telse {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t\t}\n\t\t\t} // else\n\t\t} // if (tiddler)\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/filter.js": {
            "title": "$:/core/modules/filters/filter.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/filter.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning those input titles that pass a subfilter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.filter = function(source,operator,options) {\n\tvar filterFn = options.wiki.compileFilter(operator.operand),\n\t\tresults = [],\n\t\ttarget = operator.prefix !== \"!\";\n\tsource(function(tiddler,title) {\n\t\tvar list = filterFn.call(options.wiki,options.wiki.makeTiddlerIterator([title]));\n\t\tif((list.length > 0) === target) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/format/date.js": {
            "title": "$:/core/modules/filters/format/date.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/format/date.js\ntype: application/javascript\nmodule-type: formatfilteroperator\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.date = function(source,operand,options) {\n\tvar results = [];\t\n\tsource(function(tiddler,title) {\n\t\tvar value = $tw.utils.parseDate(title);\n\t\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\t\tresults.push($tw.utils.formatDateString(value,operand || \"YYYY MM DD 0hh:0mm\"));\n\t\t}\n\t});\t\n\treturn results;\n};\n\n})();",
            "type": "application/javascript",
            "module-type": "formatfilteroperator"
        },
        "$:/core/modules/filters/format/relativedate.js": {
            "title": "$:/core/modules/filters/format/relativedate.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/format/relativedate.js\ntype: application/javascript\nmodule-type: formatfilteroperator\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.relativedate = function(source,operand,options) {\n\tvar results = [];\t\n\tsource(function(tiddler,title) {\n\t\tvar value = $tw.utils.parseDate(title);\n\t\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\t\tresults.push($tw.utils.getRelativeDate((new Date()) - (new Date(value))).description);\n\t\t}\n\t});\t\n\treturn results;\n};\n\n})();",
            "type": "application/javascript",
            "module-type": "formatfilteroperator"
        },
        "$:/core/modules/filters/format.js": {
            "title": "$:/core/modules/filters/format.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/format.js\ntype: application/javascript\nmodule-type: filteroperator\nFilter operator for formatting strings\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar formatFilterOperators;\n\nfunction getFormatFilterOperators() {\n\tif(!formatFilterOperators) {\n\t\tformatFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"formatfilteroperator\",formatFilterOperators);\n\t}\n\treturn formatFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.format = function(source,operator,options) {\n\t// Dispatch to the correct formatfilteroperator\n\tvar formatFilterOperators = getFormatFilterOperators();\n\tif(operator.suffix) {\n\t\tvar formatFilterOperator = formatFilterOperators[operator.suffix];\n\t\tif(formatFilterOperator) {\n\t\t\treturn formatFilterOperator(source,operator.operand,options);\n\t\t} else {\n\t\t\treturn [$tw.language.getString(\"Error/FormatFilterOperator\")];\n\t\t}\n\t} else {\n\t\t// Return all unchanged if the suffix is missing\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t\treturn results;\n\t}\n};\n\n})();",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/get.js": {
            "title": "$:/core/modules/filters/get.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/get.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing tiddler titles by the value of the field specified in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.get = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tvar value = tiddler.getFieldString(operator.operand);\n\t\t\tif(value) {\n\t\t\t\tresults.push(value);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/getindex.js": {
            "title": "$:/core/modules/filters/getindex.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/getindex.js\ntype: application/javascript\nmodule-type: filteroperator\n\nreturns the value at a given index of datatiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.getindex = function(source,operator,options) {\n\tvar data,title,results = [];\n\tif(operator.operand){\n\t\tsource(function(tiddler,title) {\n\t\t\ttitle = tiddler ? tiddler.fields.title : title;\n\t\t\tdata = options.wiki.extractTiddlerDataItem(tiddler,operator.operand);\n\t\t\tif(data) {\n\t\t\t\tresults.push(data);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/getvariable.js": {
            "title": "$:/core/modules/filters/getvariable.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/getvariable.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing input values by the value of the variable with the same name, or blank if the variable is missing\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.getvariable = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(options.widget.getVariable(title) || \"\");\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/has.js": {
            "title": "$:/core/modules/filters/has.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/has.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a tiddler has the specified field or index\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.has = function(source,operator,options) {\n\tvar results = [],\n\t\tinvert = operator.prefix === \"!\";\n\n\tif(operator.suffix === \"field\") {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop(tiddler.fields,operator.operand)))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\telse if(operator.suffix === \"index\") {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop(options.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(options.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\telse {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || !$tw.utils.hop(tiddler.fields,operator.operand) || (tiddler.fields[operator.operand].length === 0)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand) && (tiddler.fields[operator.operand].length !== 0)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\t\t\t\t\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/haschanged.js": {
            "title": "$:/core/modules/filters/haschanged.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/haschanged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returns tiddlers from the list that have a non-zero changecount.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.haschanged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) === 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) > 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/indexes.js": {
            "title": "$:/core/modules/filters/indexes.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/indexes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the indexes of a data tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.indexes = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar data = options.wiki.getTiddlerDataCached(title);\n\t\tif(data) {\n\t\t\t$tw.utils.pushTop(results,Object.keys(data));\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/insertbefore.js": {
            "title": "$:/core/modules/filters/insertbefore.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/insertbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nInsert an item before another item in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.insertbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar target = options.widget && options.widget.getVariable(operator.suffix || \"currentTiddler\");\n\tif(target !== operator.operand) {\n\t\t// Remove the entry from the list if it is present\n\t\tvar pos = results.indexOf(operator.operand);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,1);\n\t\t}\n\t\t// Insert the entry before the target marker\n\t\tpos = results.indexOf(target);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,0,operator.operand);\n\t\t} else {\n\t\t\tresults.push(operator.operand);\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/is/binary.js": {
            "title": "$:/core/modules/filters/is/binary.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is/binary.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[binary]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.binary = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isBinaryTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isBinaryTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/blank.js": {
            "title": "$:/core/modules/filters/is/blank.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is/blank.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[blank]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.blank = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!title) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/current.js": {
            "title": "$:/core/modules/filters/is/current.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is/current.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar results = [],\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title !== currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title === currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/draft.js": {
            "title": "$:/core/modules/filters/is/draft.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is/draft.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[draft]] analagous to [has[draft.of]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.draft = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!tiddler || !$tw.utils.hop(tiddler.fields,\"draft.of\")) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,\"draft.of\") && (tiddler.fields[\"draft.of\"].length !== 0)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\t\t\t\t\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/image.js": {
            "title": "$:/core/modules/filters/is/image.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is/image.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[image]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.image = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/missing.js": {
            "title": "$:/core/modules/filters/is/missing.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is/missing.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/orphan.js": {
            "title": "$:/core/modules/filters/is/orphan.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is/orphan.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[orphan]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphan = function(source,prefix,options) {\n\tvar results = [],\n\t\torphanTitles = options.wiki.getOrphanTitles();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) !== -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/shadow.js": {
            "title": "$:/core/modules/filters/is/shadow.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is/shadow.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[shadow]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadow = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/system.js": {
            "title": "$:/core/modules/filters/is/system.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is/system.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[system]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.system = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/tag.js": {
            "title": "$:/core/modules/filters/is/tag.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is/tag.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tag]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,prefix,options) {\n\tvar results = [],\n\t\ttagMap = options.wiki.getTagMap();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/tiddler.js": {
            "title": "$:/core/modules/filters/is/tiddler.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is/tiddler.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tiddler]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddler = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/variable.js": {
            "title": "$:/core/modules/filters/is/variable.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is/variable.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[variable]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.variable = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!(title in options.widget.variables)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title in options.widget.variables) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is.js": {
            "title": "$:/core/modules/filters/is.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking tiddler properties\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar isFilterOperators;\n\nfunction getIsFilterOperators() {\n\tif(!isFilterOperators) {\n\t\tisFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"isfilteroperator\",isFilterOperators);\n\t}\n\treturn isFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.is = function(source,operator,options) {\n\t// Dispatch to the correct isfilteroperator\n\tvar isFilterOperators = getIsFilterOperators();\n\tif(operator.operand) {\n\t\tvar isFilterOperator = isFilterOperators[operator.operand];\n\t\tif(isFilterOperator) {\n\t\t\treturn isFilterOperator(source,operator.prefix,options);\n\t\t} else {\n\t\t\treturn [$tw.language.getString(\"Error/IsFilterOperator\")];\n\t\t}\n\t} else {\n\t\t// Return all tiddlers if the operand is missing\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t\treturn results;\n\t}\n};\n\n})();",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/limit.js": {
            "title": "$:/core/modules/filters/limit.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/limit.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for chopping the results to a specified maximum number of entries\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.limit = function(source,operator,options) {\n\tvar results = [];\n\t// Convert to an array\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\t// Slice the array if necessary\n\tvar limit = Math.min(results.length,parseInt(operator.operand,10));\n\tif(operator.prefix === \"!\") {\n\t\tresults = results.slice(-limit);\n\t} else {\n\t\tresults = results.slice(0,limit);\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/links.js": {
            "title": "$:/core/modules/filters/links.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/links.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the links from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.links = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerLinks(title));\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/list.js": {
            "title": "$:/core/modules/filters/list.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/list.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddlers whose title is listed in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.list = function(source,operator,options) {\n\tvar results = [],\n\t\ttr = $tw.utils.parseTextReference(operator.operand),\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\"),\n\t\tlist = options.wiki.getTiddlerList(tr.title || currTiddlerTitle,tr.field,tr.index);\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults = list;\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/listed.js": {
            "title": "$:/core/modules/filters/listed.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/listed.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that have the selected tiddlers in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.listed = function(source,operator,options) {\n\tvar field = operator.operand || \"list\",\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.findListingsOfTiddler(title,field));\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/listops.js": {
            "title": "$:/core/modules/filters/listops.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for manipulating the current selection list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.order = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.operand.toLowerCase() === \"reverse\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.unshift(title);\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t}\n\treturn results;\n};\n\n/*\nReverse list\n*/\nexports.reverse = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.unshift(title);\n\t});\n\treturn results;\n};\n\n/*\nFirst entry/entries in list\n*/\nexports.first = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,count);\n};\n\n/*\nLast entry/entries in list\n*/\nexports.last = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(-count);\n};\n\n/*\nAll but the first entry/entries of the list\n*/\nexports.rest = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count);\n};\nexports.butfirst = exports.rest;\nexports.bf = exports.rest;\n\n/*\nAll but the last entry/entries of the list\n*/\nexports.butlast = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,-count);\n};\nexports.bl = exports.butlast;\n\n/*\nThe nth member of the list\n*/\nexports.nth = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count - 1,count);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/lookup.js": {
            "title": "$:/core/modules/filters/lookup.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/lookup.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that looks up values via a title prefix\n\n[lookup:<field>[<prefix>]]\n\nPrepends the prefix to the selected items and returns the specified field value\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.lookup = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(options.wiki.getTiddlerText(operator.operand + title) || operator.suffix);\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/match.js": {
            "title": "$:/core/modules/filters/match.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/match.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title matches a string\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.match = function(source,operator,options) {\n\tvar results = [],\n\t\tsuffixes = (operator.suffixes || [])[0] || [];\n\tif(suffixes.indexOf(\"caseinsensitive\") !== -1) {\n\t\tif(operator.prefix === \"!\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title.toLowerCase() !== (operator.operand || \"\").toLowerCase()) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title.toLowerCase() === (operator.operand || \"\").toLowerCase()) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(operator.prefix === \"!\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title !== operator.operand) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title === operator.operand) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/math.js": {
            "title": "$:/core/modules/filters/math.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/math.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for math. Unary/binary operators work on each item in turn, and return a new item list.\n\nSum/product/maxall/minall operate on the entire list, returning a single item.\n\nNote that strings are converted to numbers automatically. Trailing non-digits are ignored.\n\n* \"\" converts to 0\n* \"12kk\" converts to 12\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.negate = makeNumericBinaryOperator(\n\tfunction(a) {return -a}\n);\n\nexports.abs = makeNumericBinaryOperator(\n\tfunction(a) {return Math.abs(a)}\n);\n\nexports.ceil = makeNumericBinaryOperator(\n\tfunction(a) {return Math.ceil(a)}\n);\n\nexports.floor = makeNumericBinaryOperator(\n\tfunction(a) {return Math.floor(a)}\n);\n\nexports.round = makeNumericBinaryOperator(\n\tfunction(a) {return Math.round(a)}\n);\n\nexports.trunc = makeNumericBinaryOperator(\n\tfunction(a) {return Math.trunc(a)}\n);\n\nexports.untrunc = makeNumericBinaryOperator(\n\tfunction(a) {return Math.ceil(Math.abs(a)) * Math.sign(a)}\n);\n\nexports.sign = makeNumericBinaryOperator(\n\tfunction(a) {return Math.sign(a)}\n);\n\nexports.add = makeNumericBinaryOperator(\n\tfunction(a,b) {return a + b;}\n);\n\nexports.subtract = makeNumericBinaryOperator(\n\tfunction(a,b) {return a - b;}\n);\n\nexports.multiply = makeNumericBinaryOperator(\n\tfunction(a,b) {return a * b;}\n);\n\nexports.divide = makeNumericBinaryOperator(\n\tfunction(a,b) {return a / b;}\n);\n\nexports.remainder = makeNumericBinaryOperator(\n\tfunction(a,b) {return a % b;}\n);\n\nexports.max = makeNumericBinaryOperator(\n\tfunction(a,b) {return Math.max(a,b);}\n);\n\nexports.min = makeNumericBinaryOperator(\n\tfunction(a,b) {return Math.min(a,b);}\n);\n\nexports.fixed = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toFixed.call(a,Math.min(Math.max(b,0),100));}\n);\n\nexports.precision = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toPrecision.call(a,Math.min(Math.max(b,1),100));}\n);\n\nexports.exponential = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toExponential.call(a,Math.min(Math.max(b,0),100));}\n);\n\nexports.power = makeNumericBinaryOperator(\n\tfunction(a,b) {return Math.pow(a,b);}\n);\n\nexports.log = makeNumericBinaryOperator(\n\tfunction(a,b) {\n\t\tif(b) {\n\t\t\treturn Math.log(a)/Math.log(b);\n\t\t} else {\n\t\t\treturn Math.log(a);\n\t\t}\n\t}\n);\n\nexports.sum = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return accumulator + value},\n\t0 // Initial value\n);\n\nexports.product = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return accumulator * value},\n\t1 // Initial value\n);\n\nexports.maxall = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return Math.max(accumulator,value)},\n\t-Infinity // Initial value\n);\n\nexports.minall = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return Math.min(accumulator,value)},\n\tInfinity // Initial value\n);\n\nfunction makeNumericBinaryOperator(fnCalc) {\n\treturn function(source,operator,options) {\n\t\tvar result = [],\n\t\t\tnumOperand = $tw.utils.parseNumber(operator.operand);\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push($tw.utils.stringifyNumber(fnCalc($tw.utils.parseNumber(title),numOperand)));\n\t\t});\n\t\treturn result;\n\t};\n}\n\nfunction makeNumericReducingOperator(fnCalc,initialValue) {\n\tinitialValue = initialValue || 0;\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push(title);\n\t\t});\n\t\treturn [$tw.utils.stringifyNumber(result.reduce(function(accumulator,currentValue) {\n\t\t\treturn fnCalc(accumulator,$tw.utils.parseNumber(currentValue));\n\t\t},initialValue))];\n\t};\n}\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/minlength.js": {
            "title": "$:/core/modules/filters/minlength.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/minlength.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for filtering out titles that don't meet the minimum length in the operand\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.minlength = function(source,operator,options) {\n\tvar results = [],\n\t\tminLength = parseInt(operator.operand || \"\",10) || 0;\n\tsource(function(tiddler,title) {\n\t\tif(title.length >= minLength) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/modules.js": {
            "title": "$:/core/modules/filters/modules.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/modules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the modules of a given type in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.modules = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.each($tw.modules.types[title],function(moduleInfo,moduleName) {\n\t\t\tresults.push(moduleName);\n\t\t});\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/moduletypes.js": {
            "title": "$:/core/modules/filters/moduletypes.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/moduletypes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the module types in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.moduletypes = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.modules.types,function(moduleInfo,type) {\n\t\tresults.push(type);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/next.js": {
            "title": "$:/core/modules/filters/next.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/next.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs next in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.next = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch++;\n\t\tif(match > 0 && match < list.length) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/plugintiddlers.js": {
            "title": "$:/core/modules/filters/plugintiddlers.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/plugintiddlers.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the shadow tiddlers within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.plugintiddlers = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar pluginInfo = options.wiki.getPluginInfo(title) || options.wiki.getTiddlerDataCached(title,{tiddlers:[]});\n\t\tif(pluginInfo && pluginInfo.tiddlers) {\n\t\t\t$tw.utils.each(pluginInfo.tiddlers,function(fields,title) {\n\t\t\t\tresults.push(title);\n\t\t\t});\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/prefix.js": {
            "title": "$:/core/modules/filters/prefix.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/prefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title starts with a prefix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.prefix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/previous.js": {
            "title": "$:/core/modules/filters/previous.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/previous.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs immediately prior in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.previous = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch--;\n\t\tif(match >= 0) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/range.js": {
            "title": "$:/core/modules/filters/range.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/range.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for generating a numeric range.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.range = function(source,operator,options) {\n\tvar results = [];\n\t// Split the operand into numbers delimited by these symbols\n\tvar parts = operator.operand.split(/[,:;]/g),\n\t\tbeg, end, inc, i, fixed = 0;\n\tfor (i=0; i<parts.length; i++) {\n\t\t// Validate real number\n\t\tif(!/^\\s*[+-]?((\\d+(\\.\\d*)?)|(\\.\\d+))\\s*$/.test(parts[i])) {\n\t\t\treturn [\"range: bad number \\\"\" + parts[i] + \"\\\"\"];\n\t\t}\n\t\t// Count digits; the most precise number determines decimal places in output.\n\t\tvar frac = /\\.\\d+/.exec(parts[i]);\n\t\tif(frac) {\n\t\t\tfixed = Math.max(fixed,frac[0].length-1);\n\t\t}\n\t\tparts[i] = parseFloat(parts[i]);\n\t}\n\tswitch(parts.length) {\n\t\tcase 1:\n\t\t\tend = parts[0];\n\t\t\tif (end >= 1) {\n\t\t\t\tbeg = 1;\n\t\t\t}\n\t\t\telse if (end <= -1) {\n\t\t\t\tbeg = -1;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t\tinc = 1;\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tbeg = parts[0];\n\t\t\tend = parts[1];\n\t\t\tinc = 1;\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tbeg = parts[0];\n\t\t\tend = parts[1];\n\t\t\tinc = Math.abs(parts[2]);\n\t\t\tbreak;\n\t}\n\tif(inc === 0) {\n\t\treturn [\"range: increment 0 causes infinite loop\"];\n\t}\n\t// May need to count backwards\n\tvar direction = ((end < beg) ? -1 : 1);\n\tinc *= direction;\n\t// Estimate number of resulting elements\n\tif((end - beg) / inc > 10000) {\n\t\treturn [\"range: too many steps (over 10K)\"];\n\t}\n\t// Avoid rounding error on last step\n\tend += direction * 0.5 * Math.pow(0.1,fixed);\n\tvar safety = 10010;\n\t// Enumerate the range\n\tif (end<beg) {\n\t\tfor(i=beg; i>end; i+=inc) {\n\t\t\tresults.push(i.toFixed(fixed));\n\t\t\tif(--safety<0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor(i=beg; i<end; i+=inc) {\n\t\t\tresults.push(i.toFixed(fixed));\n\t\t\tif(--safety<0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tif(safety<0) {\n\t\treturn [\"range: unexpectedly large output\"];\n\t}\n\t// Reverse?\n\tif(operator.prefix === \"!\") {\n\t\tresults.reverse();\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/reduce.js": {
            "title": "$:/core/modules/filters/reduce.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/reduce.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator evaluates a subfilter for each item, making the running total available in the variable `accumulator`, and the current index available in the variable `index`\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.reduce = function(source,operator,options) {\n\t// Accumulate the list\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\t// Run the filter over each item\n\tvar filterFn = options.wiki.compileFilter(operator.operand),\n\t\taccumulator = operator.operands[1] || \"\";\n\tfor(var index=0; index<results.length; index++) {\n\t\tvar title = results[index],\n\t\t\tlist = filterFn.call(options.wiki,options.wiki.makeTiddlerIterator([title]),{\n\t\t\t\tgetVariable: function(name) {\n\t\t\t\t\tswitch(name) {\n\t\t\t\t\t\tcase \"currentTiddler\":\n\t\t\t\t\t\t\treturn \"\" + title;\n\t\t\t\t\t\tcase \"accumulator\":\n\t\t\t\t\t\t\treturn \"\" + accumulator;\n\t\t\t\t\t\tcase \"index\":\n\t\t\t\t\t\t\treturn \"\" + index;\n\t\t\t\t\t\tcase \"revIndex\":\n\t\t\t\t\t\t\treturn \"\" + (results.length - 1 - index);\n\t\t\t\t\t\tcase \"length\":\n\t\t\t\t\t\t\treturn \"\" + results.length;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn options.widget.getVariable(name);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\tif(list.length > 0) {\n\t\t\taccumulator = \"\" +  list[0];\n\t\t}\n\t}\n\tif(results.length > 0) {\n\t\treturn [accumulator];\n\t} else {\n\t\treturn [];\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/regexp.js": {
            "title": "$:/core/modules/filters/regexp.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/regexp.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for regexp matching\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.regexp = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"title\").toLowerCase(),\n\t\tregexpString, regexp, flags = \"\", match,\n\t\tgetFieldString = function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\treturn tiddler.getFieldString(fieldname);\n\t\t\t} else if(fieldname === \"title\") {\n\t\t\t\treturn title;\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t};\n\t// Process flags and construct regexp\n\tregexpString = operator.operand;\n\tmatch = /^\\(\\?([gim]+)\\)/.exec(regexpString);\n\tif(match) {\n\t\tflags = match[1];\n\t\tregexpString = regexpString.substr(match[0].length);\n\t} else {\n\t\tmatch = /\\(\\?([gim]+)\\)$/.exec(regexpString);\n\t\tif(match) {\n\t\t\tflags = match[1];\n\t\t\tregexpString = regexpString.substr(0,regexpString.length - match[0].length);\n\t\t}\n\t}\n\ttry {\n\t\tregexp = new RegExp(regexpString,flags);\n\t} catch(e) {\n\t\treturn [\"\" + e];\n\t}\n\t// Process the incoming tiddlers\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/removeprefix.js": {
            "title": "$:/core/modules/filters/removeprefix.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/removeprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a prefix from each title in the list. Titles that do not start with the prefix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removeprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/removesuffix.js": {
            "title": "$:/core/modules/filters/removesuffix.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/removesuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a suffix from each title in the list. Titles that do not end with the suffix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removesuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title && title.substr(-operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(0,title.length - operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/sameday.js": {
            "title": "$:/core/modules/filters/sameday.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/sameday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a modified date field on the same day as the provided value.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sameday = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\ttargetDate = (new Date($tw.utils.parseDate(operator.operand))).setHours(0,0,0,0);\n\t// Function to convert a date/time to a date integer\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tif(tiddler.getFieldDay(fieldName) === targetDate) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/search.js": {
            "title": "$:/core/modules/filters/search.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/search.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for searching for the text in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.search = function(source,operator,options) {\n\tvar invert = operator.prefix === \"!\";\n\tif(operator.suffixes) {\n\t\tvar hasFlag = function(flag) {\n\t\t\t\treturn (operator.suffixes[1] || []).indexOf(flag) !== -1;\n\t\t\t},\n\t\t\texcludeFields = false,\n\t\t\tfieldList = operator.suffixes[0] || [],\n\t\t\tfirstField = fieldList[0] || \"\", \n\t\t\tfirstChar = firstField.charAt(0),\n\t\t\tfields;\n\t\tif(firstChar === \"-\") {\n\t\t\tfields = [firstField.slice(1)].concat(fieldList.slice(1));\n\t\t\texcludeFields = true;\n\t\t} else if(fieldList[0] === \"*\"){\n\t\t\tfields = [];\n\t\t\texcludeFields = true;\n\t\t} else {\n\t\t\tfields = fieldList.slice(0);\n\t\t}\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert,\n\t\t\tfield: fields,\n\t\t\texcludeField: excludeFields,\n\t\t\tcaseSensitive: hasFlag(\"casesensitive\"),\n\t\t\tliteral: hasFlag(\"literal\"),\n\t\t\twhitespace: hasFlag(\"whitespace\"),\n\t\t\tanchored: hasFlag(\"anchored\"),\n\t\t\tregexp: hasFlag(\"regexp\"),\n\t\t\twords: hasFlag(\"words\")\n\t\t});\n\t} else {\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert\n\t\t});\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/shadowsource.js": {
            "title": "$:/core/modules/filters/shadowsource.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/shadowsource.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the source plugins for shadow tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadowsource = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar source = options.wiki.getShadowSource(title);\n\t\tif(source) {\n\t\t\t$tw.utils.pushTop(results,source);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/slugify.js": {
            "title": "$:/core/modules/filters/slugify.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/slugify.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for slugifying a tiddler title\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.slugify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(options.wiki.slugify(title));\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/sort.js": {
            "title": "$:/core/modules/filters/sort.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/sort.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for sorting\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,false);\n\treturn results;\n};\n\nexports.nsort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,true);\n\treturn results;\n};\n\nexports.sortan = function(source, operator, options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results, operator.operand || \"title\", operator.prefix === \"!\",false,false,true);\n\treturn results;\n};\n\nexports.sortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,false);\n\treturn results;\n};\n\nexports.nsortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,true);\n\treturn results;\n};\n\nvar prepare_results = function (source) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/sortsub.js": {
            "title": "$:/core/modules/filters/sortsub.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/sortsub.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for sorting by a subfilter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sortsub = function(source,operator,options) {\n\t// Compile the subfilter\n\tvar filterFn = options.wiki.compileFilter(operator.operand);\n\t// Collect the input titles and the corresponding sort keys\n\tvar inputTitles = [],\n\t\tsortKeys = [];\n\tsource(function(tiddler,title) {\n\t\tinputTitles.push(title);\n\t\tvar r = filterFn.call(options.wiki,function(iterator) {\n\t\t\titerator(options.wiki.getTiddler(title),title);\n\t\t},{\n\t\t\tgetVariable: function(name) {\n\t\t\t\tif(name === \"currentTiddler\") {\n\t\t\t\t\treturn title;\n\t\t\t\t} else {\n\t\t\t\t\treturn options.widget.getVariable(name);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tsortKeys.push(r[0] || \"\");\n\t});\n\t// Rather than sorting the titles array, we'll sort the indexes so that we can consult both arrays\n\tvar indexes = new Array(inputTitles.length);\n\tfor(var t=0; t<inputTitles.length; t++) {\n\t\tindexes[t] = t;\n\t}\n\t// Sort the indexes\n\tvar compareFn = $tw.utils.makeCompareFunction(operator.suffix,{defaultType: \"string\",invert: operator.prefix === \"!\"});\n\tindexes = indexes.sort(function(a,b) {\n\t\treturn compareFn(sortKeys[a],sortKeys[b]);\n\t});\n\t// Make the results array in order\n\tvar results = [];\n\t$tw.utils.each(indexes,function(index) {\n\t\tresults.push(inputTitles[index]);\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/splitbefore.js": {
            "title": "$:/core/modules/filters/splitbefore.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/splitbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that splits each result on the first occurance of the specified separator and returns the unique values.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.splitbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar parts = title.split(operator.operand);\n\t\tif(parts.length === 1) {\n\t\t\t$tw.utils.pushTop(results,parts[0]);\n\t\t} else {\n\t\t\t$tw.utils.pushTop(results,parts[0] + operator.operand);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/storyviews.js": {
            "title": "$:/core/modules/filters/storyviews.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/storyviews.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the story views in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.storyviews = function(source,operator,options) {\n\tvar results = [],\n\t\tstoryviews = {};\n\t$tw.modules.applyMethods(\"storyview\",storyviews);\n\t$tw.utils.each(storyviews,function(info,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/strings.js": {
            "title": "$:/core/modules/filters/strings.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/strings.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for strings. Unary/binary operators work on each item in turn, and return a new item list.\n\nSum/product/maxall/minall operate on the entire list, returning a single item.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.length = makeStringBinaryOperator(\n\tfunction(a) {return [\"\" + (\"\" + a).length];}\n);\n\nexports.uppercase = makeStringBinaryOperator(\n\tfunction(a) {return [(\"\" + a).toUpperCase()];}\n);\n\nexports.lowercase = makeStringBinaryOperator(\n\tfunction(a) {return [(\"\" + a).toLowerCase()];}\n);\n\nexports.sentencecase = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.toSentenceCase(a)];}\n);\n\nexports.titlecase = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.toTitleCase(a)];}\n);\n\nexports.trim = function(source,operator,options) {\n\tvar result = [],\n\t\tsuffix = operator.suffix || \"\",\n\t\toperand = (operator.operand || \"\"),\n\t\tfnCalc;\n\tif(suffix === \"prefix\") {\n\t\tfnCalc = function(a,b) {return [$tw.utils.trimPrefix(a,b)];}\n\t} else if(suffix === \"suffix\") {\n\t\tfnCalc = function(a,b) {return [$tw.utils.trimSuffix(a,b)];}\n\t} else {\n\t\tif(operand === \"\") {\n\t\t\tfnCalc = function(a) {return [$tw.utils.trim(a)];}\n\t\t} else {\n\t\t\tfnCalc = function(a,b) {return [$tw.utils.trimSuffix($tw.utils.trimPrefix(a,b),b)];}\n\t\t}\n\t}\n\tsource(function(tiddler,title) {\n\t\tArray.prototype.push.apply(result,fnCalc(title,operand));\n\t});\n\treturn result;\n};\n\nexports.split = makeStringBinaryOperator(\n\tfunction(a,b) {return (\"\" + a).split(b);}\n);\n\nexports[\"enlist-input\"] = makeStringBinaryOperator(\n\tfunction(a,o,s) {return $tw.utils.parseStringArray(\"\" + a,(s === \"raw\"));}\n);\n\nexports.join = makeStringReducingOperator(\n\tfunction(accumulator,value,operand) {\n\t\tif(accumulator === null) {\n\t\t\treturn value;\n\t\t} else {\n\t\t\treturn accumulator + operand + value;\n\t\t}\n\t},null\n);\n\nfunction makeStringBinaryOperator(fnCalc) {\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tArray.prototype.push.apply(result,fnCalc(title,operator.operand || \"\",operator.suffix || \"\"));\n\t\t});\n\t\treturn result;\n\t};\n}\n\nfunction makeStringReducingOperator(fnCalc,initialValue) {\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push(title);\n\t\t});\n\t\tif(result.length === 0) {\n\t\t\treturn [];\n\t\t}\n\t\treturn [result.reduce(function(accumulator,currentValue) {\n\t\t\treturn fnCalc(accumulator,currentValue,operator.operand || \"\");\n\t\t},initialValue) || \"\"];\n\t};\n}\n\nexports.splitregexp = function(source,operator,options) {\n\tvar result = [],\n\t\tsuffix = operator.suffix || \"\",\n\t\tflags = (suffix.indexOf(\"m\") !== -1 ? \"m\" : \"\") + (suffix.indexOf(\"i\") !== -1 ? \"i\" : \"\"),\n\t\tregExp;\n\ttry {\n\t\tregExp = new RegExp(operator.operand || \"\",flags);\t\t\n\t} catch(ex) {\n\t\treturn [\"RegExp error: \" + ex];\n\t}\n\tsource(function(tiddler,title) {\n\t\tArray.prototype.push.apply(result,title.split(regExp));\n\t});\t\t\n\treturn result;\n};\n\nexports[\"search-replace\"] = function(source,operator,options) {\n\tvar results = [],\n\t\tsuffixes = operator.suffixes || [],\n\t\tflagSuffix = (suffixes[0] ? (suffixes[0][0] || \"\") : \"\"),\n\t\tflags = (flagSuffix.indexOf(\"g\") !== -1 ? \"g\" : \"\") + (flagSuffix.indexOf(\"i\") !== -1 ? \"i\" : \"\"),\n\t\tisRegExp = (suffixes[1] && suffixes[1][0] === \"regexp\") ? true : false,\n\t\tsearchTerm,\n\t\tregExp;\n\t\n\tsource(function(tiddler,title) {\n\t\tif(title && (operator.operands.length > 1)) {\n\t\t\t//Escape regexp characters if the operand is not a regular expression\n\t\t\tsearchTerm = isRegExp ? operator.operand : $tw.utils.escapeRegExp(operator.operand);\n\t\t\ttry {\n\t\t\t\tregExp = new RegExp(searchTerm,flags);\n\t\t\t} catch(ex) {\n\t\t\t\treturn [\"RegExp error: \" + ex];\n\t\t\t}\n\t\t\tresults.push(\n\t\t\t\ttitle.replace(regExp,operator.operands[1])\n\t\t\t);\n\t\t} else {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\nexports.pad = function(source,operator,options) {\n\tvar results = [],\n\t\ttargetLength = operator.operand ? parseInt(operator.operand) : 0,\n\t\tfill = operator.operands[1] || \"0\";\n\n\tsource(function(tiddler,title) {\n\t\tif(title && title.length) {\n\t\t\tif(title.length >= targetLength) {\n\t\t\t\tresults.push(title);\n\t\t\t} else {\n\t\t\t\tvar padString = \"\",\n\t\t\t\t\tpadStringLength = targetLength - title.length;\n\t\t\t\twhile (padStringLength > padString.length) {\n\t\t\t\t\tpadString += fill;\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t//make sure we do not exceed the specified length\n\t\t\t\tpadString = padString.slice(0,padStringLength);\n\t\t\t\tif(operator.suffix && (operator.suffix === \"suffix\")) {\n\t\t\t\t\ttitle = title + padString;\n\t\t\t\t} else {\n\t\t\t\t\ttitle = padString + title;\n\t\t\t\t}\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n}\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/subfilter.js": {
            "title": "$:/core/modules/filters/subfilter.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/subfilter.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning its operand evaluated as a filter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.subfilter = function(source,operator,options) {\n\tvar list = options.wiki.filterTiddlers(operator.operand,options.widget,source);\n\tif(operator.prefix === \"!\") {\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t} else {\n\t\treturn list;\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/subtiddlerfields.js": {
            "title": "$:/core/modules/filters/subtiddlerfields.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/subtiddlerfields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected subtiddlers of the plugin named in the operand\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.subtiddlerfields = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar subtiddler = options.wiki.getSubTiddler(operator.operand,title);\n\t\tif(subtiddler) {\n\t\t\tfor(var fieldName in subtiddler.fields) {\n\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/suffix.js": {
            "title": "$:/core/modules/filters/suffix.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/suffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title ends with a suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.suffix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/tag.js": {
            "title": "$:/core/modules/filters/tag.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/tag.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking for the presence of a tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,operator,options) {\n\tvar results = [],indexedResults;\n\tif((operator.suffix || \"\").toLowerCase() === \"strict\" && !operator.operand) {\n\t\t// New semantics:\n\t\t// Always return copy of input if operator.operand is missing\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t} else {\n\t\t// Old semantics:\n\t\tvar tiddlers;\n\t\tif(operator.prefix === \"!\") {\n\t\t\t// Returns a copy of the input if operator.operand is missing\n\t\t\ttiddlers = options.wiki.getTiddlersWithTag(operator.operand);\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddlers.indexOf(title) === -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// Returns empty results if operator.operand is missing\n\t\t\tif(source.byTag) {\n\t\t\t\tindexedResults = source.byTag(operator.operand);\n\t\t\t\tif(indexedResults) {\n\t\t\t\t\treturn indexedResults;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttiddlers = options.wiki.getTiddlersWithTag(operator.operand);\n\t\t\t\tsource(function(tiddler,title) {\n\t\t\t\t\tif(tiddlers.indexOf(title) !== -1) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresults = options.wiki.sortByList(results,operator.operand);\n\t\t\t}\n\t\t}\t\t\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/tagging.js": {
            "title": "$:/core/modules/filters/tagging.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/tagging.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that are tagged with the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tagging = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlersWithTag(title));\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/tags.js": {
            "title": "$:/core/modules/filters/tags.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/tags.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the tags of the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,operator,options) {\n\tvar tags = {};\n\tsource(function(tiddler,title) {\n\t\tvar t, length;\n\t\tif(tiddler && tiddler.fields.tags) {\n\t\t\tfor(t=0, length=tiddler.fields.tags.length; t<length; t++) {\n\t\t\t\ttags[tiddler.fields.tags[t]] = true;\n\t\t\t}\n\t\t}\n\t});\n\treturn Object.keys(tags);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/then.js": {
            "title": "$:/core/modules/filters/then.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/then.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing any titles with a constant\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.then = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(operator.operand);\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/title.js": {
            "title": "$:/core/modules/filters/title.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/title.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing title fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.title = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields.title !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults.push(operator.operand);\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/untagged.js": {
            "title": "$:/core/modules/filters/untagged.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/untagged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the selected tiddlers that are untagged\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.untagged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && $tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length > 0) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!tiddler || !tiddler.hasField(\"tags\") || ($tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length === 0)) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/variables.js": {
            "title": "$:/core/modules/filters/variables.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/variables.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the active variables\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.variables = function(source,operator,options) {\n\tvar names = [];\n\tfor(var variable in options.widget.variables) {\n\t\tnames.push(variable);\n\t}\n\treturn names.sort();\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/wikiparserrules.js": {
            "title": "$:/core/modules/filters/wikiparserrules.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/wikiparserrules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the wiki parser rules in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.wikiparserrules = function(source,operator,options) {\n\tvar results = [],\n\t\toperand = operator.operand;\n\t$tw.utils.each($tw.modules.types.wikirule,function(mod) {\n\t\tvar exp = mod.exports;\n\t\tif(!operand || exp.types[operand]) {\n\t\t\tresults.push(exp.name);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/x-listops.js": {
            "title": "$:/core/modules/filters/x-listops.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/x-listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nExtended filter operators to manipulate the current list.\n\n\\*/\n(function () {\n\n\t/*jslint node: true, browser: true */\n\t/*global $tw: false */\n\t\"use strict\";\n\n\t/*\n\tFetch titles from the current list\n\t*/\n\tvar prepare_results = function (source) {\n\tvar results = [];\n\t\tsource(function (tiddler, title) {\n\t\t\tresults.push(title);\n\t\t});\n\t\treturn results;\n\t};\n\n\t/*\n\tMoves a number of items from the tail of the current list before the item named in the operand\n\t*/\n\texports.putbefore = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tindex = results.indexOf(operator.operand),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,1);\n\t\treturn (index === -1) ?\n\t\t\tresults.slice(0, -1) :\n\t\t\tresults.slice(0, index).concat(results.slice(-count)).concat(results.slice(index, -count));\n\t};\n\n\t/*\n\tMoves a number of items from the tail of the current list after the item named in the operand\n\t*/\n\texports.putafter = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tindex = results.indexOf(operator.operand),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,1);\n\t\treturn (index === -1) ?\n\t\t\tresults.slice(0, -1) :\n\t\t\tresults.slice(0, index + 1).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n\t};\n\n\t/*\n\tReplaces the item named in the operand with a number of items from the tail of the current list\n\t*/\n\texports.replace = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tindex = results.indexOf(operator.operand),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,1);\n\t\treturn (index === -1) ?\n\t\t\tresults.slice(0, -count) :\n\t\t\tresults.slice(0, index).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n\t};\n\n\t/*\n\tMoves a number of items from the tail of the current list to the head of the list\n\t*/\n\texports.putfirst = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,1);\n\t\treturn results.slice(-count).concat(results.slice(0, -count));\n\t};\n\n\t/*\n\tMoves a number of items from the head of the current list to the tail of the list\n\t*/\n\texports.putlast = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,1);\n\t\treturn results.slice(count).concat(results.slice(0, count));\n\t};\n\n\t/*\n\tMoves the item named in the operand a number of places forward or backward in the list\n\t*/\n\texports.move = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tindex = results.indexOf(operator.operand),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,1),\n\t\t\tmarker = results.splice(index, 1),\n\t\t\toffset =  (index + count) > 0 ? index + count : 0;\n\t\treturn results.slice(0, offset).concat(marker).concat(results.slice(offset));\n\t};\n\n\t/*\n\tReturns the items from the current list that are after the item named in the operand\n\t*/\n\texports.allafter = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tindex = results.indexOf(operator.operand);\n\t\treturn (index === -1) ? [] :\n\t\t\t(operator.suffix) ? results.slice(index) :\n\t\t\tresults.slice(index + 1);\n\t};\n\n\t/*\n\tReturns the items from the current list that are before the item named in the operand\n\t*/\n\texports.allbefore = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tindex = results.indexOf(operator.operand);\n\t\treturn (index === -1) ? [] :\n\t\t\t(operator.suffix) ? results.slice(0, index + 1) :\n\t\t\tresults.slice(0, index);\n\t};\n\n\t/*\n\tAppends the items listed in the operand array to the tail of the current list\n\t*/\n\texports.append = function (source, operator) {\n\t\tvar append = $tw.utils.parseStringArray(operator.operand, \"true\"),\n\t\t\tresults = prepare_results(source),\n\t\t\tcount = parseInt(operator.suffix) || append.length;\n\t\treturn (append.length === 0) ? results :\n\t\t\t(operator.prefix) ? results.concat(append.slice(-count)) :\n\t\t\tresults.concat(append.slice(0, count));\n\t};\n\n\t/*\n\tPrepends the items listed in the operand array to the head of the current list\n\t*/\n\texports.prepend = function (source, operator) {\n\t\tvar prepend = $tw.utils.parseStringArray(operator.operand, \"true\"),\n\t\t\tresults = prepare_results(source),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,prepend.length);\n\t\treturn (prepend.length === 0) ? results :\n\t\t\t(operator.prefix) ? prepend.slice(-count).concat(results) :\n\t\t\tprepend.slice(0, count).concat(results);\n\t};\n\n\t/*\n\tReturns all items from the current list except the items listed in the operand array\n\t*/\n\texports.remove = function (source, operator) {\n\t\tvar array = $tw.utils.parseStringArray(operator.operand, \"true\"),\n\t\t\tresults = prepare_results(source),\n\t\t\tcount = parseInt(operator.suffix) || array.length,\n\t\t\tp,\n\t\t\tlen,\n\t\t\tindex;\n\t\tlen = array.length - 1;\n\t\tfor (p = 0; p < count; ++p) {\n\t\t\tif (operator.prefix) {\n\t\t\t\tindex = results.indexOf(array[len - p]);\n\t\t\t} else {\n\t\t\t\tindex = results.indexOf(array[p]);\n\t\t\t}\n\t\t\tif (index !== -1) {\n\t\t\t\tresults.splice(index, 1);\n\t\t\t}\n\t\t}\n\t\treturn results;\n\t};\n\n\t/*\n\tReturns all items from the current list sorted in the order of the items in the operand array\n\t*/\n\texports.sortby = function (source, operator) {\n\t\tvar results = prepare_results(source);\n\t\tif (!results || results.length < 2) {\n\t\t\treturn results;\n\t\t}\n\t\tvar lookup = $tw.utils.parseStringArray(operator.operand, \"true\");\n\t\tresults.sort(function (a, b) {\n\t\t\treturn lookup.indexOf(a) - lookup.indexOf(b);\n\t\t});\n\t\treturn results;\n\t};\n\n\t/*\n\tRemoves all duplicate items from the current list\n\t*/\n\texports.unique = function (source, operator) {\n\t\tvar results = prepare_results(source);\n\t\tvar set = results.reduce(function (a, b) {\n\t\t\tif (a.indexOf(b) < 0) {\n\t\t\t\ta.push(b);\n\t\t\t}\n\t\t\treturn a;\n\t\t}, []);\n\t\treturn set;\n\t};\n\n\tvar cycleValueInArray = function(results,operands,stepSize) {\n\t\tvar resultsIndex,\n\t\t\tstep = stepSize || 1,\n\t\t\ti = 0,\n\t\t\topLength = operands.length,\n\t\t\tnextOperandIndex;\t\t\n\t\tfor(i; i < opLength; i++) {\n\t\t\tresultsIndex = results.indexOf(operands[i]);\n\t\t\tif(resultsIndex !== -1) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif(resultsIndex !== -1) {\n\t\t\ti = i + step;\n\t\t\tnextOperandIndex = (i < opLength ? i : i - opLength);\n\t\t\tif(operands.length > 1) {\n\t\t\t\tresults.splice(resultsIndex,1,operands[nextOperandIndex]);\n\t\t\t} else {\n\t\t\t\tresults.splice(resultsIndex,1);\n\t\t\t}\n\t\t} else {\n\t\t\tresults.push(operands[0]);\n\t\t}\n\t\treturn results;\t\t\n\t}\n\n\t/*\n\tToggles an item in the current list.\n\t*/\t\n\texports.toggle = function(source,operator) {\n\t\treturn cycleValueInArray(prepare_results(source),operator.operands);\n\t}\n\n\texports.cycle = function(source,operator) {\n\t\tvar results = prepare_results(source),\n\t\t\toperands = (operator.operand.length ? $tw.utils.parseStringArray(operator.operand, \"true\") : [\"\"]),\n\t\t\tstep = $tw.utils.getInt(operator.operands[1]||\"\",1);\n\t\tif(step < 0) {\n\t\t\toperands.reverse();\n\t\t\tstep = Math.abs(step);\n\t\t}\t\n\t\treturn cycleValueInArray(results,operands,step);\n\t}\n\t\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters.js": {
            "title": "$:/core/modules/filters.js",
            "text": "/*\\\ntitle: $:/core/modules/filters.js\ntype: application/javascript\nmodule-type: wikimethod\n\nAdds tiddler filtering methods to the $tw.Wiki object.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParses an operation (i.e. a run) within a filter string\n\toperators: Array of array of operator nodes into which results should be inserted\n\tfilterString: filter string\n\tp: start position within the string\nReturns the new start position, after the parsed operation\n*/\nfunction parseFilterOperation(operators,filterString,p) {\n\tvar nextBracketPos, operator;\n\t// Skip the starting square bracket\n\tif(filterString.charAt(p++) !== \"[\") {\n\t\tthrow \"Missing [ in filter expression\";\n\t}\n\t// Process each operator in turn\n\tdo {\n\t\toperator = {};\n\t\t// Check for an operator prefix\n\t\tif(filterString.charAt(p) === \"!\") {\n\t\t\toperator.prefix = filterString.charAt(p++);\n\t\t}\n\t\t// Get the operator name\n\t\tnextBracketPos = filterString.substring(p).search(/[\\[\\{<\\/]/);\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing [ in filter expression\";\n\t\t}\n\t\tnextBracketPos += p;\n\t\tvar bracket = filterString.charAt(nextBracketPos);\n\t\toperator.operator = filterString.substring(p,nextBracketPos);\n\t\t// Any suffix?\n\t\tvar colon = operator.operator.indexOf(':');\n\t\tif(colon > -1) {\n\t\t\t// The raw suffix for older filters\n\t\t\toperator.suffix = operator.operator.substring(colon + 1);\n\t\t\toperator.operator = operator.operator.substring(0,colon) || \"field\";\n\t\t\t// The processed suffix for newer filters\n\t\t\toperator.suffixes = [];\n\t\t\t$tw.utils.each(operator.suffix.split(\":\"),function(subsuffix) {\n\t\t\t\toperator.suffixes.push([]);\n\t\t\t\t$tw.utils.each(subsuffix.split(\",\"),function(entry) {\n\t\t\t\t\tentry = $tw.utils.trim(entry);\n\t\t\t\t\tif(entry) {\n\t\t\t\t\t\toperator.suffixes[operator.suffixes.length - 1].push(entry); \n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\t// Empty operator means: title\n\t\telse if(operator.operator === \"\") {\n\t\t\toperator.operator = \"title\";\n\t\t}\n\t\toperator.operands = [];\n\t\tfunction parseOperand(bracketType) {\n\t\t\tvar operand = {};\n\t\t\tswitch (bracketType) {\n\t\t\t\tcase \"{\": // Curly brackets\n\t\t\t\t\toperand.indirect = true;\n\t\t\t\t\tnextBracketPos = filterString.indexOf(\"}\",p);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"[\": // Square brackets\n\t\t\t\t\tnextBracketPos = filterString.indexOf(\"]\",p);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"<\": // Angle brackets\n\t\t\t\t\toperand.variable = true;\n\t\t\t\t\tnextBracketPos = filterString.indexOf(\">\",p);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"/\": // regexp brackets\n\t\t\t\t\tvar rex = /^((?:[^\\\\\\/]*|\\\\.)*)\\/(?:\\(([mygi]+)\\))?/g,\n\t\t\t\t\t\trexMatch = rex.exec(filterString.substring(p));\n\t\t\t\t\tif(rexMatch) {\n\t\t\t\t\t\toperator.regexp = new RegExp(rexMatch[1], rexMatch[2]);\n\t// DEPRECATION WARNING\n\tconsole.log(\"WARNING: Filter\",operator.operator,\"has a deprecated regexp operand\",operator.regexp);\n\t\t\t\t\t\tnextBracketPos = p + rex.lastIndex - 1;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthrow \"Unterminated regular expression in filter expression\";\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif(nextBracketPos === -1) {\n\t\t\t\tthrow \"Missing closing bracket in filter expression\";\n\t\t\t}\n\t\t\tif(!operator.regexp) {\n\t\t\t\toperand.text = filterString.substring(p,nextBracketPos);\n\t\t\t\toperator.operands.push(operand);\n\t\t\t}\n\t\t\tp = nextBracketPos + 1;\n\t\t}\n\t\t\n\t\tp = nextBracketPos + 1;\n\t\tparseOperand(bracket);\n\t\t\n\t\t// Check for multiple operands\n\t\twhile(filterString.charAt(p) === \",\") {\n\t\t\tp++;\n\t\t\tif(/^[\\[\\{<\\/]/.test(filterString.substring(p))) {\n\t\t\t\tnextBracketPos = p;\n\t\t\t\tp++;\n\t\t\t\tparseOperand(filterString.charAt(nextBracketPos));\n\t\t\t} else {\n\t\t\t\tthrow \"Missing [ in filter expression\";\n\t\t\t}\n\t\t}\n\t\t\n\t\t// Push this operator\n\t\toperators.push(operator);\n\t} while(filterString.charAt(p) !== \"]\");\n\t// Skip the ending square bracket\n\tif(filterString.charAt(p++) !== \"]\") {\n\t\tthrow \"Missing ] in filter expression\";\n\t}\n\t// Return the parsing position\n\treturn p;\n}\n\n/*\nParse a filter string\n*/\nexports.parseFilter = function(filterString) {\n\tfilterString = filterString || \"\";\n\tvar results = [], // Array of arrays of operator nodes {operator:,operand:}\n\t\tp = 0, // Current position in the filter string\n\t\tmatch;\n\tvar whitespaceRegExp = /(\\s+)/mg,\n\t\toperandRegExp = /((?:\\+|\\-|~|=|\\:(\\w+))?)(?:(\\[)|(?:\"([^\"]*)\")|(?:'([^']*)')|([^\\s\\[\\]]+))/mg;\n\twhile(p < filterString.length) {\n\t\t// Skip any whitespace\n\t\twhitespaceRegExp.lastIndex = p;\n\t\tmatch = whitespaceRegExp.exec(filterString);\n\t\tif(match && match.index === p) {\n\t\t\tp = p + match[0].length;\n\t\t}\n\t\t// Match the start of the operation\n\t\tif(p < filterString.length) {\n\t\t\toperandRegExp.lastIndex = p;\n\t\t\tmatch = operandRegExp.exec(filterString);\n\t\t\tif(!match || match.index !== p) {\n\t\t\t\tthrow $tw.language.getString(\"Error/FilterSyntax\");\n\t\t\t}\n\t\t\tvar operation = {\n\t\t\t\tprefix: \"\",\n\t\t\t\toperators: []\n\t\t\t};\n\t\t\tif(match[1]) {\n\t\t\t\toperation.prefix = match[1];\n\t\t\t\tp = p + operation.prefix.length;\n\t\t\t\tif(match[2]) {\n\t\t\t\t\toperation.namedPrefix = match[2];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(match[3]) { // Opening square bracket\n\t\t\t\tp = parseFilterOperation(operation.operators,filterString,p);\n\t\t\t} else {\n\t\t\t\tp = match.index + match[0].length;\n\t\t\t}\n\t\t\tif(match[4] || match[5] || match[6]) { // Double quoted string, single quoted string or unquoted title\n\t\t\t\toperation.operators.push(\n\t\t\t\t\t{operator: \"title\", operands: [{text: match[4] || match[5] || match[6]}]}\n\t\t\t\t);\n\t\t\t}\n\t\t\tresults.push(operation);\n\t\t}\n\t}\n\treturn results;\n};\n\nexports.getFilterOperators = function() {\n\tif(!this.filterOperators) {\n\t\t$tw.Wiki.prototype.filterOperators = {};\n\t\t$tw.modules.applyMethods(\"filteroperator\",this.filterOperators);\n\t}\n\treturn this.filterOperators;\n};\n\nexports.getFilterRunPrefixes = function() {\n\tif(!this.filterRunPrefixes) {\n\t\t$tw.Wiki.prototype.filterRunPrefixes = {};\n\t\t$tw.modules.applyMethods(\"filterrunprefix\",this.filterRunPrefixes);\n\t}\n\treturn this.filterRunPrefixes;\n}\n\nexports.filterTiddlers = function(filterString,widget,source) {\n\tvar fn = this.compileFilter(filterString);\n\treturn fn.call(this,source,widget);\n};\n\n/*\nCompile a filter into a function with the signature fn(source,widget) where:\nsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\nwidget: an optional widget node for retrieving the current tiddler etc.\n*/\nexports.compileFilter = function(filterString) {\n\tvar filterParseTree;\n\ttry {\n\t\tfilterParseTree = this.parseFilter(filterString);\n\t} catch(e) {\n\t\treturn function(source,widget) {\n\t\t\treturn [$tw.language.getString(\"Error/Filter\") + \": \" + e];\n\t\t};\n\t}\n\t// Get the hashmap of filter operator functions\n\tvar filterOperators = this.getFilterOperators();\n\t// Assemble array of functions, one for each operation\n\tvar operationFunctions = [];\n\t// Step through the operations\n\tvar self = this;\n\t$tw.utils.each(filterParseTree,function(operation) {\n\t\t// Create a function for the chain of operators in the operation\n\t\tvar operationSubFunction = function(source,widget) {\n\t\t\tvar accumulator = source,\n\t\t\t\tresults = [],\n\t\t\t\tcurrTiddlerTitle = widget && widget.getVariable(\"currentTiddler\");\n\t\t\t$tw.utils.each(operation.operators,function(operator) {\n\t\t\t\tvar operands = [],\n\t\t\t\t\toperatorFunction;\n\t\t\t\tif(!operator.operator) {\n\t\t\t\t\toperatorFunction = filterOperators.title;\n\t\t\t\t} else if(!filterOperators[operator.operator]) {\n\t\t\t\t\toperatorFunction = filterOperators.field;\n\t\t\t\t} else {\n\t\t\t\t\toperatorFunction = filterOperators[operator.operator];\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t$tw.utils.each(operator.operands,function(operand) {\n\t\t\t\t\tif(operand.indirect) {\n\t\t\t\t\t\toperand.value = self.getTextReference(operand.text,\"\",currTiddlerTitle);\n\t\t\t\t\t} else if(operand.variable) {\n\t\t\t\t\t\toperand.value = widget.getVariable(operand.text,{defaultValue: \"\"});\n\t\t\t\t\t} else {\n\t\t\t\t\t\toperand.value = operand.text;\n\t\t\t\t\t}\n\t\t\t\t\toperands.push(operand.value);\n\t\t\t\t});\n\n\t\t\t\t// Invoke the appropriate filteroperator module\n\t\t\t\tresults = operatorFunction(accumulator,{\n\t\t\t\t\t\t\toperator: operator.operator,\n\t\t\t\t\t\t\toperand: operands.length > 0 ? operands[0] : undefined,\n\t\t\t\t\t\t\toperands: operands,\n\t\t\t\t\t\t\tprefix: operator.prefix,\n\t\t\t\t\t\t\tsuffix: operator.suffix,\n\t\t\t\t\t\t\tsuffixes: operator.suffixes,\n\t\t\t\t\t\t\tregexp: operator.regexp\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\twiki: self,\n\t\t\t\t\t\t\twidget: widget\n\t\t\t\t\t\t});\n\t\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\t\taccumulator = self.makeTiddlerIterator(results);\n\t\t\t\t} else {\n\t\t\t\t\taccumulator = results;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\treturn results;\n\t\t\t} else {\n\t\t\t\tvar resultArray = [];\n\t\t\t\tresults(function(tiddler,title) {\n\t\t\t\t\tresultArray.push(title);\n\t\t\t\t});\n\t\t\t\treturn resultArray;\n\t\t\t}\n\t\t};\n\t\tvar filterRunPrefixes = self.getFilterRunPrefixes();\n\t\t// Wrap the operator functions in a wrapper function that depends on the prefix\n\t\toperationFunctions.push((function() {\n\t\t\tvar options = {wiki: self};\n\t\t\tswitch(operation.prefix || \"\") {\n\t\t\t\tcase \"\": // No prefix means that the operation is unioned into the result\n\t\t\t\t\treturn filterRunPrefixes[\"or\"](operationSubFunction, options);\n\t\t\t\tcase \"=\": // The results of the operation are pushed into the result without deduplication\n\t\t\t\t\treturn filterRunPrefixes[\"all\"](operationSubFunction, options);\n\t\t\t\tcase \"-\": // The results of this operation are removed from the main result\n\t\t\t\t\treturn filterRunPrefixes[\"except\"](operationSubFunction, options);\n\t\t\t\tcase \"+\": // This operation is applied to the main results so far\n\t\t\t\t\treturn filterRunPrefixes[\"and\"](operationSubFunction, options);\n\t\t\t\tcase \"~\": // This operation is unioned into the result only if the main result so far is empty\n\t\t\t\t\treturn filterRunPrefixes[\"else\"](operationSubFunction, options);\n\t\t\t\tdefault: \n\t\t\t\t\tif(operation.namedPrefix && filterRunPrefixes[operation.namedPrefix]) {\n\t\t\t\t\t\treturn filterRunPrefixes[operation.namedPrefix](operationSubFunction, options);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t\tresults.clear();\n\t\t\t\t\t\t\tresults.push($tw.language.getString(\"Error/FilterRunPrefix\"));\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t}\n\t\t})());\n\t});\n\t// Return a function that applies the operations to a source iterator of tiddler titles\n\treturn $tw.perf.measure(\"filter: \" + filterString,function filterFunction(source,widget) {\n\t\tif(!source) {\n\t\t\tsource = self.each;\n\t\t} else if(typeof source === \"object\") { // Array or hashmap\n\t\t\tsource = self.makeTiddlerIterator(source);\n\t\t}\n\t\tvar results = new $tw.utils.LinkedList();\n\t\t$tw.utils.each(operationFunctions,function(operationFunction) {\n\t\t\toperationFunction(results,source,widget);\n\t\t});\n\t\treturn results.toArray();\n\t});\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikimethod"
        },
        "$:/core/modules/indexers/backlinks-indexer.js": {
            "title": "$:/core/modules/indexers/backlinks-indexer.js",
            "text": "/*\\\ntitle: $:/core/modules/indexers/backlinks-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers' backlinks\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\n\nfunction BacklinksIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nBacklinksIndexer.prototype.init = function() {\n\tthis.index = null;\n}\n\nBacklinksIndexer.prototype.rebuild = function() {\n\tthis.index = null;\n}\n\nBacklinksIndexer.prototype._getLinks = function(tiddler) {\n\tvar parser =  this.wiki.parseText(tiddler.fields.type, tiddler.fields.text, {});\n\tif(parser) {\n\t\treturn this.wiki.extractLinks(parser.tree);\n\t}\n\treturn [];\n}\n\nBacklinksIndexer.prototype.update = function(updateDescriptor) {\n\tif(!this.index) {\n\t\treturn;\n\t}\n\tvar newLinks = [],\n\t    oldLinks = [],\n\t    self = this;\n\tif(updateDescriptor.old.exists) {\n\t\toldLinks = this._getLinks(updateDescriptor.old.tiddler);\n\t}\n\tif(updateDescriptor.new.exists) {\n\t\tnewLinks = this._getLinks(updateDescriptor.new.tiddler);\n\t}\n\n\t$tw.utils.each(oldLinks,function(link) {\n\t\tif(self.index[link]) {\n\t\t\tdelete self.index[link][updateDescriptor.old.tiddler.fields.title];\n\t\t}\n\t});\n\t$tw.utils.each(newLinks,function(link) {\n\t\tif(!self.index[link]) {\n\t\t\tself.index[link] = Object.create(null);\n\t\t}\n\t\tself.index[link][updateDescriptor.new.tiddler.fields.title] = true;\n\t});\n}\n\nBacklinksIndexer.prototype.lookup = function(title) {\n\tif(!this.index) {\n\t\tthis.index = Object.create(null);\n\t\tvar self = this;\n\t\tthis.wiki.forEachTiddler(function(title,tiddler) {\n\t\t\tvar links = self._getLinks(tiddler);\n\t\t\t$tw.utils.each(links, function(link) {\n\t\t\t\tif(!self.index[link]) {\n\t\t\t\t\tself.index[link] = Object.create(null);\n\t\t\t\t}\n\t\t\t\tself.index[link][title] = true;\n\t\t\t});\n\t\t});\n\t}\n\tif(this.index[title]) {\n\t\treturn Object.keys(this.index[title]);\n\t} else {\n\t\treturn [];\n\t}\n}\n\nexports.BacklinksIndexer = BacklinksIndexer;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "indexer"
        },
        "$:/core/modules/indexers/field-indexer.js": {
            "title": "$:/core/modules/indexers/field-indexer.js",
            "text": "/*\\\ntitle: $:/core/modules/indexers/field-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers with each field value\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\nvar DEFAULT_MAXIMUM_INDEXED_VALUE_LENGTH = 128;\n\nfunction FieldIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nFieldIndexer.prototype.init = function() {\n\tthis.index = null;\n\tthis.maxIndexedValueLength = DEFAULT_MAXIMUM_INDEXED_VALUE_LENGTH;\n\tthis.addIndexMethods();\n}\n\n// Provided for testing\nFieldIndexer.prototype.setMaxIndexedValueLength = function(length) {\n\tthis.index = null;\n\tthis.maxIndexedValueLength = length;\n};\n\nFieldIndexer.prototype.addIndexMethods = function() {\n\tvar self = this;\n\tthis.wiki.each.byField = function(name,value) {\n\t\tvar titles = self.wiki.allTitles(),\n\t\t\tlookup = self.lookup(name,value);\n\t\treturn lookup && lookup.filter(function(title) {\n\t\t\treturn titles.indexOf(title) !== -1;\n\t\t});\n\t};\n\tthis.wiki.eachShadow.byField = function(name,value) {\n\t\tvar titles = self.wiki.allShadowTitles(),\n\t\t\tlookup = self.lookup(name,value);\n\t\treturn lookup && lookup.filter(function(title) {\n\t\t\treturn titles.indexOf(title) !== -1;\n\t\t});\n\t};\n\tthis.wiki.eachTiddlerPlusShadows.byField = function(name,value) {\n\t\tvar lookup = self.lookup(name,value);\n\t\treturn lookup ? lookup.slice(0) : null;\n\t};\n\tthis.wiki.eachShadowPlusTiddlers.byField = function(name,value) {\n\t\tvar lookup = self.lookup(name,value);\n\t\treturn lookup ? lookup.slice(0) : null;\n\t};\n};\n\n/*\nTear down and then rebuild the index as if all tiddlers have changed\n*/\nFieldIndexer.prototype.rebuild = function() {\n\t// Invalidate the index so that it will be rebuilt when it is next used\n\tthis.index = null;\n};\n\n/*\nBuild the index for a particular field\n*/\nFieldIndexer.prototype.buildIndexForField = function(name) {\n\tvar self = this;\n\t// Hashmap by field name of hashmap by field value of array of tiddler titles\n\tthis.index = this.index || Object.create(null);\n\tthis.index[name] = Object.create(null);\n\tvar baseIndex = this.index[name];\n\t// Update the index for each tiddler\n\tthis.wiki.eachTiddlerPlusShadows(function(tiddler,title) {\n\t\tif(name in tiddler.fields) {\n\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\t// Skip any values above the maximum length\n\t\t\tif(value.length < self.maxIndexedValueLength) {\n\t\t\t\tbaseIndex[value] = baseIndex[value] || [];\n\t\t\t\tbaseIndex[value].push(title);\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nUpdate the index in the light of a tiddler value changing; note that the title must be identical. (Renames are handled as a separate delete and create)\nupdateDescriptor: {old: {tiddler: <tiddler>, shadow: <boolean>, exists: <boolean>},new: {tiddler: <tiddler>, shadow: <boolean>, exists: <boolean>}}\n*/\nFieldIndexer.prototype.update = function(updateDescriptor) {\n\tvar self = this;\n\t// Don't do anything if the index hasn't been built yet\n\tif(this.index === null) {\n\t\treturn;\n\t}\n\t// Remove the old tiddler from the index\n\tif(updateDescriptor.old.tiddler) {\n\t\t$tw.utils.each(this.index,function(indexEntry,name) {\n\t\t\tif(name in updateDescriptor.old.tiddler.fields) {\n\t\t\t\tvar value = updateDescriptor.old.tiddler.getFieldString(name),\n\t\t\t\t\ttiddlerList = indexEntry[value];\n\t\t\t\tif(tiddlerList) {\n\t\t\t\t\tvar index = tiddlerList.indexOf(updateDescriptor.old.tiddler.fields.title);\n\t\t\t\t\tif(index !== -1) {\n\t\t\t\t\t\ttiddlerList.splice(index,1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t// Add the new tiddler to the index\n\tif(updateDescriptor[\"new\"].tiddler) {\n\t\t$tw.utils.each(this.index,function(indexEntry,name) {\n\t\t\tif(name in updateDescriptor[\"new\"].tiddler.fields) {\n\t\t\t\tvar value = updateDescriptor[\"new\"].tiddler.getFieldString(name);\n\t\t\t\tif(value.length < self.maxIndexedValueLength) {\n\t\t\t\t\tindexEntry[value] = indexEntry[value] || [];\n\t\t\t\t\tindexEntry[value].push(updateDescriptor[\"new\"].tiddler.fields.title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\t\t\n\t}\n};\n\n// Lookup the given field returning a list of tiddler titles\nFieldIndexer.prototype.lookup = function(name,value) {\n\t// Fail the lookup if the value is too long\n\tif(value.length >= this.maxIndexedValueLength) {\n\t\treturn null;\n\t}\n\t// Update the index if it has yet to be built\n\tif(this.index === null || !this.index[name]) {\n\t\tthis.buildIndexForField(name);\n\t}\n\treturn this.index[name][value] || [];\n};\n\nexports.FieldIndexer = FieldIndexer;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "indexer"
        },
        "$:/core/modules/indexers/tag-indexer.js": {
            "title": "$:/core/modules/indexers/tag-indexer.js",
            "text": "/*\\\ntitle: $:/core/modules/indexers/tag-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers with each tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\nfunction TagIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nTagIndexer.prototype.init = function() {\n\tthis.subIndexers = [\n\t\tnew TagSubIndexer(this,\"each\"),\n\t\tnew TagSubIndexer(this,\"eachShadow\"),\n\t\tnew TagSubIndexer(this,\"eachTiddlerPlusShadows\"),\n\t\tnew TagSubIndexer(this,\"eachShadowPlusTiddlers\")\n\t];\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.addIndexMethod();\n\t});\n};\n\nTagIndexer.prototype.rebuild = function() {\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.rebuild();\n\t});\n};\n\nTagIndexer.prototype.update = function(updateDescriptor) {\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.update(updateDescriptor);\n\t});\n};\n\nfunction TagSubIndexer(indexer,iteratorMethod) {\n\tthis.indexer = indexer;\n\tthis.iteratorMethod = iteratorMethod;\n\tthis.index = null; // Hashmap of tag title to {isSorted: bool, titles: [array]} or null if not yet initialised\n}\n\nTagSubIndexer.prototype.addIndexMethod = function() {\n\tvar self = this;\n\tthis.indexer.wiki[this.iteratorMethod].byTag = function(tag) {\n\t\treturn self.lookup(tag).slice(0);\n\t};\n};\n\nTagSubIndexer.prototype.rebuild = function() {\n\tvar self = this;\n\t// Hashmap by tag of array of {isSorted:, titles:[]}\n\tthis.index = Object.create(null);\n\t// Add all the tags\n\tthis.indexer.wiki[this.iteratorMethod](function(tiddler,title) {\n\t\t$tw.utils.each(tiddler.fields.tags,function(tag) {\n\t\t\tif(!self.index[tag]) {\n\t\t\t\tself.index[tag] = {isSorted: false, titles: [title]};\n\t\t\t} else {\n\t\t\t\tself.index[tag].titles.push(title);\n\t\t\t}\n\t\t});\t\t\n\t});\n};\n\nTagSubIndexer.prototype.update = function(updateDescriptor) {\n\tthis.index = null;\n};\n\nTagSubIndexer.prototype.lookup = function(tag) {\n\t// Update the index if it has yet to be built\n\tif(this.index === null) {\n\t\tthis.rebuild();\n\t}\n\tvar indexRecord = this.index[tag];\n\tif(indexRecord) {\n\t\tif(!indexRecord.isSorted) {\n\t\t\tif(this.indexer.wiki.sortByList) {\n\t\t\t\tindexRecord.titles = this.indexer.wiki.sortByList(indexRecord.titles,tag);\n\t\t\t}\t\t\t\n\t\t\tindexRecord.isSorted = true;\n\t\t}\n\t\treturn indexRecord.titles;\n\t} else {\n\t\treturn [];\n\t}\n};\n\n\nexports.TagIndexer = TagIndexer;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "indexer"
        },
        "$:/core/modules/info/platform.js": {
            "title": "$:/core/modules/info/platform.js",
            "text": "/*\\\ntitle: $:/core/modules/info/platform.js\ntype: application/javascript\nmodule-type: info\n\nInitialise basic platform $:/info/ tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.getInfoTiddlerFields = function(updateInfoTiddlersCallback) {\n\tvar mapBoolean = function(value) {return value ? \"yes\" : \"no\";},\n\t\tinfoTiddlerFields = [];\n\t// Basics\n\tinfoTiddlerFields.push({title: \"$:/info/browser\", text: mapBoolean(!!$tw.browser)});\n\tinfoTiddlerFields.push({title: \"$:/info/node\", text: mapBoolean(!!$tw.node)});\n\tinfoTiddlerFields.push({title: \"$:/info/startup-timestamp\", text: $tw.utils.stringifyDate(new Date())});\n\tif($tw.browser) {\n\t\t// Document location\n\t\tvar setLocationProperty = function(name,value) {\n\t\t\t\tinfoTiddlerFields.push({title: \"$:/info/url/\" + name, text: value});\t\t\t\n\t\t\t},\n\t\t\tlocation = document.location;\n\t\tsetLocationProperty(\"full\", (location.toString()).split(\"#\")[0]);\n\t\tsetLocationProperty(\"host\", location.host);\n\t\tsetLocationProperty(\"hostname\", location.hostname);\n\t\tsetLocationProperty(\"protocol\", location.protocol);\n\t\tsetLocationProperty(\"port\", location.port);\n\t\tsetLocationProperty(\"pathname\", location.pathname);\n\t\tsetLocationProperty(\"search\", location.search);\n\t\tsetLocationProperty(\"origin\", location.origin);\n\t\t// Screen size\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/screen/width\", text: window.screen.width.toString()});\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/screen/height\", text: window.screen.height.toString()});\n \t\t// Dark mode through event listener on MediaQueryList\n \t\tvar mqList = window.matchMedia(\"(prefers-color-scheme: dark)\"),\n \t\t\tgetDarkModeTiddler = function() {return {title: \"$:/info/darkmode\", text: mqList.matches ? \"yes\" : \"no\"};};\n \t\tinfoTiddlerFields.push(getDarkModeTiddler());\n \t\tmqList.addListener(function(event) {\n \t\t\tupdateInfoTiddlersCallback([getDarkModeTiddler()]);\n \t\t});\n\t\t// Language\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/language\", text: navigator.language || \"\"});\n\t}\n\treturn infoTiddlerFields;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "info"
        },
        "$:/core/modules/keyboard.js": {
            "title": "$:/core/modules/keyboard.js",
            "text": "/*\\\ntitle: $:/core/modules/keyboard.js\ntype: application/javascript\nmodule-type: global\n\nKeyboard handling utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar namedKeys = {\n\t\"cancel\": 3,\n\t\"help\": 6,\n\t\"backspace\": 8,\n\t\"tab\": 9,\n\t\"clear\": 12,\n\t\"return\": 13,\n\t\"enter\": 13,\n\t\"pause\": 19,\n\t\"escape\": 27,\n\t\"space\": 32,\n\t\"page_up\": 33,\n\t\"page_down\": 34,\n\t\"end\": 35,\n\t\"home\": 36,\n\t\"left\": 37,\n\t\"up\": 38,\n\t\"right\": 39,\n\t\"down\": 40,\n\t\"printscreen\": 44,\n\t\"insert\": 45,\n\t\"delete\": 46,\n\t\"0\": 48,\n\t\"1\": 49,\n\t\"2\": 50,\n\t\"3\": 51,\n\t\"4\": 52,\n\t\"5\": 53,\n\t\"6\": 54,\n\t\"7\": 55,\n\t\"8\": 56,\n\t\"9\": 57,\n\t\"firefoxsemicolon\": 59,\n\t\"firefoxequals\": 61,\n\t\"a\": 65,\n\t\"b\": 66,\n\t\"c\": 67,\n\t\"d\": 68,\n\t\"e\": 69,\n\t\"f\": 70,\n\t\"g\": 71,\n\t\"h\": 72,\n\t\"i\": 73,\n\t\"j\": 74,\n\t\"k\": 75,\n\t\"l\": 76,\n\t\"m\": 77,\n\t\"n\": 78,\n\t\"o\": 79,\n\t\"p\": 80,\n\t\"q\": 81,\n\t\"r\": 82,\n\t\"s\": 83,\n\t\"t\": 84,\n\t\"u\": 85,\n\t\"v\": 86,\n\t\"w\": 87,\n\t\"x\": 88,\n\t\"y\": 89,\n\t\"z\": 90,\n\t\"numpad0\": 96,\n\t\"numpad1\": 97,\n\t\"numpad2\": 98,\n\t\"numpad3\": 99,\n\t\"numpad4\": 100,\n\t\"numpad5\": 101,\n\t\"numpad6\": 102,\n\t\"numpad7\": 103,\n\t\"numpad8\": 104,\n\t\"numpad9\": 105,\n\t\"multiply\": 106,\n\t\"add\": 107,\n\t\"separator\": 108,\n\t\"subtract\": 109,\n\t\"decimal\": 110,\n\t\"divide\": 111,\n\t\"f1\": 112,\n\t\"f2\": 113,\n\t\"f3\": 114,\n\t\"f4\": 115,\n\t\"f5\": 116,\n\t\"f6\": 117,\n\t\"f7\": 118,\n\t\"f8\": 119,\n\t\"f9\": 120,\n\t\"f10\": 121,\n\t\"f11\": 122,\n\t\"f12\": 123,\n\t\"f13\": 124,\n\t\"f14\": 125,\n\t\"f15\": 126,\n\t\"f16\": 127,\n\t\"f17\": 128,\n\t\"f18\": 129,\n\t\"f19\": 130,\n\t\"f20\": 131,\n\t\"f21\": 132,\n\t\"f22\": 133,\n\t\"f23\": 134,\n\t\"f24\": 135,\n\t\"firefoxminus\": 173,\n\t\"semicolon\": 186,\n\t\"equals\": 187,\n\t\"comma\": 188,\n\t\"dash\": 189,\n\t\"period\": 190,\n\t\"slash\": 191,\n\t\"backquote\": 192,\n\t\"openbracket\": 219,\n\t\"backslash\": 220,\n\t\"closebracket\": 221,\n\t\"quote\": 222\n};\n\nfunction KeyboardManager(options) {\n\tvar self = this;\n\toptions = options || \"\";\n\t// Save the named key hashmap\n\tthis.namedKeys = namedKeys;\n\t// Create a reverse mapping of code to keyname\n\tthis.keyNames = [];\n\t$tw.utils.each(namedKeys,function(keyCode,name) {\n\t\tself.keyNames[keyCode] = name.substr(0,1).toUpperCase() + name.substr(1);\n\t});\n\t// Save the platform-specific name of the \"meta\" key\n\tthis.metaKeyName = $tw.platform.isMac ? \"cmd-\" : \"win-\";\n\tthis.shortcutKeysList = [], // Stores the shortcut-key descriptors\n\tthis.shortcutActionList = [], // Stores the corresponding action strings\n\tthis.shortcutParsedList = []; // Stores the parsed key descriptors\n\tthis.lookupNames = [\"shortcuts\"];\n\tthis.lookupNames.push($tw.platform.isMac ? \"shortcuts-mac\" : \"shortcuts-not-mac\")\n\tthis.lookupNames.push($tw.platform.isWindows ? \"shortcuts-windows\" : \"shortcuts-not-windows\");\n\tthis.lookupNames.push($tw.platform.isLinux ? \"shortcuts-linux\" : \"shortcuts-not-linux\");\n\tthis.updateShortcutLists(this.getShortcutTiddlerList());\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tself.handleShortcutChanges(changes);\n\t});\n}\n\n/*\nReturn an array of keycodes for the modifier keys ctrl, shift, alt, meta\n*/\nKeyboardManager.prototype.getModifierKeys = function() {\n\treturn [\n\t\t16, // Shift\n\t\t17, // Ctrl\n\t\t18, // Alt\n\t\t20, // CAPS LOCK\n\t\t91, // Meta (left)\n\t\t93, // Meta (right)\n\t\t224 // Meta (Firefox)\n\t]\n};\n\n/*\nParses a key descriptor into the structure:\n{\n\tkeyCode: numeric keycode\n\tshiftKey: boolean\n\taltKey: boolean\n\tctrlKey: boolean\n\tmetaKey: boolean\n}\nKey descriptors have the following format:\n\tctrl+enter\n\tctrl+shift+alt+A\n*/\nKeyboardManager.prototype.parseKeyDescriptor = function(keyDescriptor) {\n\tvar components = keyDescriptor.split(/\\+|\\-/),\n\t\tinfo = {\n\t\t\tkeyCode: 0,\n\t\t\tshiftKey: false,\n\t\t\taltKey: false,\n\t\t\tctrlKey: false,\n\t\t\tmetaKey: false\n\t\t};\n\tfor(var t=0; t<components.length; t++) {\n\t\tvar s = components[t].toLowerCase(),\n\t\t\tc = s.charCodeAt(0);\n\t\t// Look for modifier keys\n\t\tif(s === \"ctrl\") {\n\t\t\tinfo.ctrlKey = true;\n\t\t} else if(s === \"shift\") {\n\t\t\tinfo.shiftKey = true;\n\t\t} else if(s === \"alt\") {\n\t\t\tinfo.altKey = true;\n\t\t} else if(s === \"meta\" || s === \"cmd\" || s === \"win\") {\n\t\t\tinfo.metaKey = true;\n\t\t}\n\t\t// Replace named keys with their code\n\t\tif(this.namedKeys[s]) {\n\t\t\tinfo.keyCode = this.namedKeys[s];\n\t\t}\n\t}\n\tif(info.keyCode) {\n\t\treturn info;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nParse a list of key descriptors into an array of keyInfo objects. The key descriptors can be passed as an array of strings or a space separated string\n*/\nKeyboardManager.prototype.parseKeyDescriptors = function(keyDescriptors,options) {\n\tvar self = this;\n\toptions = options || {};\n\toptions.stack = options.stack || [];\n\tvar wiki = options.wiki || $tw.wiki;\n\tif(typeof keyDescriptors === \"string\" && keyDescriptors === \"\") {\n\t\treturn [];\n\t}\n\tif(!$tw.utils.isArray(keyDescriptors)) {\n\t\tkeyDescriptors = keyDescriptors.split(\" \");\n\t}\n\tvar result = [];\n\t$tw.utils.each(keyDescriptors,function(keyDescriptor) {\n\t\t// Look for a named shortcut\n\t\tif(keyDescriptor.substr(0,2) === \"((\" && keyDescriptor.substr(-2,2) === \"))\") {\n\t\t\tif(options.stack.indexOf(keyDescriptor) === -1) {\n\t\t\t\toptions.stack.push(keyDescriptor);\n\t\t\t\tvar name = keyDescriptor.substring(2,keyDescriptor.length - 2),\n\t\t\t\t\tlookupName = function(configName) {\n\t\t\t\t\t\tvar keyDescriptors = wiki.getTiddlerText(\"$:/config/\" + configName + \"/\" + name);\n\t\t\t\t\t\tif(keyDescriptors) {\n\t\t\t\t\t\t\tresult.push.apply(result,self.parseKeyDescriptors(keyDescriptors,options));\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t$tw.utils.each(self.lookupNames,function(platformDescriptor) {\n\t\t\t\t\tlookupName(platformDescriptor);\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tresult.push(self.parseKeyDescriptor(keyDescriptor));\n\t\t}\n\t});\n\treturn result;\n};\n\nKeyboardManager.prototype.getPrintableShortcuts = function(keyInfoArray) {\n\tvar self = this,\n\t\tresult = [];\n\t$tw.utils.each(keyInfoArray,function(keyInfo) {\n\t\tif(keyInfo) {\n\t\t\tresult.push((keyInfo.ctrlKey ? \"ctrl-\" : \"\") + \n\t\t\t\t   (keyInfo.shiftKey ? \"shift-\" : \"\") + \n\t\t\t\t   (keyInfo.altKey ? \"alt-\" : \"\") + \n\t\t\t\t   (keyInfo.metaKey ? self.metaKeyName : \"\") + \n\t\t\t\t   (self.keyNames[keyInfo.keyCode]));\n\t\t}\n\t});\n\treturn result;\n}\n\nKeyboardManager.prototype.checkKeyDescriptor = function(event,keyInfo) {\n\treturn keyInfo &&\n\t\t\tevent.keyCode === keyInfo.keyCode && \n\t\t\tevent.shiftKey === keyInfo.shiftKey && \n\t\t\tevent.altKey === keyInfo.altKey && \n\t\t\tevent.ctrlKey === keyInfo.ctrlKey && \n\t\t\tevent.metaKey === keyInfo.metaKey;\n};\n\nKeyboardManager.prototype.checkKeyDescriptors = function(event,keyInfoArray) {\n\tfor(var t=0; t<keyInfoArray.length; t++) {\n\t\tif(this.checkKeyDescriptor(event,keyInfoArray[t])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\nKeyboardManager.prototype.getEventModifierKeyDescriptor = function(event) {\n\treturn event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey ? \"ctrl\" : \n\t\tevent.shiftKey && !event.ctrlKey && !event.altKey && !event.metaKey ? \"shift\" : \n\t\tevent.ctrlKey && event.shiftKey && !event.altKey && !event.metaKey ? \"ctrl-shift\" : \n\t\tevent.altKey && !event.shiftKey && !event.ctrlKey && !event.metaKey ? \"alt\" : \n\t\tevent.altKey && event.shiftKey && !event.ctrlKey && !event.metaKey ? \"alt-shift\" : \n\t\tevent.altKey && event.ctrlKey && !event.shiftKey && !event.metaKey ? \"ctrl-alt\" : \n\t\tevent.altKey && event.shiftKey && event.ctrlKey && !event.metaKey ? \"ctrl-alt-shift\" : \n\t\tevent.metaKey && !event.ctrlKey && !event.shiftKey && !event.altKey ? \"meta\" : \n\t\tevent.metaKey && event.ctrlKey && !event.shiftKey && !event.altKey ? \"meta-ctrl\" :\n\t\tevent.metaKey && event.ctrlKey && event.shiftKey && !event.altKey ? \"meta-ctrl-shift\" :\n\t\tevent.metaKey && event.ctrlKey & event.shiftKey && event.altKey ? \"meta-ctrl-alt-shift\" : \"normal\";\n};\n\nKeyboardManager.prototype.getShortcutTiddlerList = function() {\n\treturn $tw.wiki.getTiddlersWithTag(\"$:/tags/KeyboardShortcut\");\n};\n\nKeyboardManager.prototype.updateShortcutLists = function(tiddlerList) {\n\tthis.shortcutTiddlers = tiddlerList;\n\tfor(var i=0; i<tiddlerList.length; i++) {\n\t\tvar title = tiddlerList[i],\n\t\t\ttiddlerFields = $tw.wiki.getTiddler(title).fields;\n\t\tthis.shortcutKeysList[i] = tiddlerFields.key !== undefined ? tiddlerFields.key : undefined;\n\t\tthis.shortcutActionList[i] = tiddlerFields.text;\n\t\tthis.shortcutParsedList[i] = this.shortcutKeysList[i] !== undefined ? this.parseKeyDescriptors(this.shortcutKeysList[i]) : undefined;\n\t}\n};\n\nKeyboardManager.prototype.handleKeydownEvent = function(event) {\n\tvar key, action;\n\tfor(var i=0; i<this.shortcutTiddlers.length; i++) {\n\t\tif(this.shortcutParsedList[i] !== undefined && this.checkKeyDescriptors(event,this.shortcutParsedList[i])) {\n\t\t\tkey = this.shortcutParsedList[i];\n\t\t\taction = this.shortcutActionList[i];\n\t\t}\n\t}\n\tif(key !== undefined) {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\t$tw.rootWidget.invokeActionString(action,$tw.rootWidget);\n\t\treturn true;\n\t}\n\treturn false;\n};\n\nKeyboardManager.prototype.detectNewShortcuts = function(changedTiddlers) {\n\tvar shortcutConfigTiddlers = [],\n\t\thandled = false;\n\t$tw.utils.each(this.lookupNames,function(platformDescriptor) {\n\t\tvar descriptorString = \"$:/config/\" + platformDescriptor + \"/\";\n\t\tObject.keys(changedTiddlers).forEach(function(configTiddler) {\n\t\t\tvar configString = configTiddler.substr(0, configTiddler.lastIndexOf(\"/\") + 1);\n\t\t\tif(configString === descriptorString) {\n\t\t\t\tshortcutConfigTiddlers.push(configTiddler);\n\t\t\t\thandled = true;\n\t\t\t}\n\t\t});\n\t});\n\tif(handled) {\n\t\treturn $tw.utils.hopArray(changedTiddlers,shortcutConfigTiddlers);\n\t} else {\n\t\treturn false;\n\t}\n};\n\nKeyboardManager.prototype.handleShortcutChanges = function(changedTiddlers) {\n\tvar newList = this.getShortcutTiddlerList();\n\tvar hasChanged = $tw.utils.hopArray(changedTiddlers,this.shortcutTiddlers) ? true :\n\t\t($tw.utils.hopArray(changedTiddlers,newList) ? true :\n\t\t(this.detectNewShortcuts(changedTiddlers))\n\t);\n\t// Re-cache shortcuts if something changed\n\tif(hasChanged) {\n\t\tthis.updateShortcutLists(newList);\n\t}\n};\n\nexports.KeyboardManager = KeyboardManager;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/language.js": {
            "title": "$:/core/modules/language.js",
            "text": "/*\\\ntitle: $:/core/modules/language.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Language() manages translateable strings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate an instance of the language manager. Options include:\nwiki: wiki from which to retrieve translation tiddlers\n*/\nfunction Language(options) {\n\toptions = options || \"\";\n\tthis.wiki = options.wiki || $tw.wiki;\n}\n\n/*\nReturn a wikified translateable string. The title is automatically prefixed with \"$:/language/\"\nOptions include:\nvariables: optional hashmap of variables to supply to the language wikification\n*/\nLanguage.prototype.getString = function(title,options) {\n\toptions = options || {};\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.renderTiddler(\"text/plain\",title,{variables: options.variables});\n};\n\n/*\nReturn a raw, unwikified translateable string. The title is automatically prefixed with \"$:/language/\"\n*/\nLanguage.prototype.getRawString = function(title) {\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.getTiddlerText(title);\n};\n\nexports.Language = Language;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/macros/changecount.js": {
            "title": "$:/core/modules/macros/changecount.js",
            "text": "/*\\\ntitle: $:/core/modules/macros/changecount.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the changecount for the current tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"changecount\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn this.wiki.getChangeCount(this.getVariable(\"currentTiddler\")) + \"\";\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/contrastcolour.js": {
            "title": "$:/core/modules/macros/contrastcolour.js",
            "text": "/*\\\ntitle: $:/core/modules/macros/contrastcolour.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to choose which of two colours has the highest contrast with a base colour\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"contrastcolour\";\n\nexports.params = [\n\t{name: \"target\"},\n\t{name: \"fallbackTarget\"},\n\t{name: \"colourA\"},\n\t{name: \"colourB\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(target,fallbackTarget,colourA,colourB) {\n\tvar rgbTarget = $tw.utils.parseCSSColor(target) || $tw.utils.parseCSSColor(fallbackTarget);\n\tif(!rgbTarget) {\n\t\treturn colourA;\n\t}\n\tvar rgbColourA = $tw.utils.parseCSSColor(colourA),\n\t\trgbColourB = $tw.utils.parseCSSColor(colourB);\n\tif(rgbColourA && !rgbColourB) {\n\t\treturn rgbColourA;\n\t}\n\tif(rgbColourB && !rgbColourA) {\n\t\treturn rgbColourB;\n\t}\n\tif(!rgbColourA && !rgbColourB) {\n\t\t// If neither colour is readable, return a crude inverse of the target\n\t\treturn [255 - rgbTarget[0],255 - rgbTarget[1],255 - rgbTarget[2],rgbTarget[3]];\n\t}\n\t// Colour brightness formula derived from http://www.w3.org/WAI/ER/WD-AERT/#color-contrast\n\tvar brightnessTarget = rgbTarget[0] * 0.299 + rgbTarget[1] * 0.587 + rgbTarget[2] * 0.114,\n\t\tbrightnessA = rgbColourA[0] * 0.299 + rgbColourA[1] * 0.587 + rgbColourA[2] * 0.114,\n\t\tbrightnessB = rgbColourB[0] * 0.299 + rgbColourB[1] * 0.587 + rgbColourB[2] * 0.114;\n\treturn Math.abs(brightnessTarget - brightnessA) > Math.abs(brightnessTarget - brightnessB) ? colourA : colourB;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/csvtiddlers.js": {
            "title": "$:/core/modules/macros/csvtiddlers.js",
            "text": "/*\\\ntitle: $:/core/modules/macros/csvtiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to CSV\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"csvtiddlers\";\n\nexports.params = [\n\t{name: \"filter\"},\n\t{name: \"format\"},\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter,format) {\n\tvar self = this,\n\t\ttiddlers = this.wiki.filterTiddlers(filter),\n\t\ttiddler,\n\t\tfields = [],\n\t\tt,f;\n\t// Collect all the fields\n\tfor(t=0;t<tiddlers.length; t++) {\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\tfor(f in tiddler.fields) {\n\t\t\tif(fields.indexOf(f) === -1) {\n\t\t\t\tfields.push(f);\n\t\t\t}\n\t\t}\n\t}\n\t// Sort the fields and bring the standard ones to the front\n\tfields.sort();\n\t\"title text modified modifier created creator\".split(\" \").reverse().forEach(function(value,index) {\n\t\tvar p = fields.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tfields.splice(p,1);\n\t\t\tfields.unshift(value)\n\t\t}\n\t});\n\t// Output the column headings\n\tvar output = [], row = [];\n\tfields.forEach(function(value) {\n\t\trow.push(quoteAndEscape(value))\n\t});\n\toutput.push(row.join(\",\"));\n\t// Output each tiddler\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\trow = [];\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\t\tfor(f=0; f<fields.length; f++) {\n\t\t\t\trow.push(quoteAndEscape(tiddler ? tiddler.getFieldString(fields[f]) || \"\" : \"\"));\n\t\t\t}\n\t\toutput.push(row.join(\",\"));\n\t}\n\treturn output.join(\"\\n\");\n};\n\nfunction quoteAndEscape(value) {\n\treturn \"\\\"\" + value.replace(/\"/mg,\"\\\"\\\"\") + \"\\\"\";\n}\n\n})();\n",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/displayshortcuts.js": {
            "title": "$:/core/modules/macros/displayshortcuts.js",
            "text": "/*\\\ntitle: $:/core/modules/macros/displayshortcuts.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to display a list of keyboard shortcuts in human readable form. Notably, it resolves named shortcuts like `((bold))` to the underlying keystrokes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"displayshortcuts\";\n\nexports.params = [\n\t{name: \"shortcuts\"},\n\t{name: \"prefix\"},\n\t{name: \"separator\"},\n\t{name: \"suffix\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(shortcuts,prefix,separator,suffix) {\n\tvar shortcutArray = $tw.keyboardManager.getPrintableShortcuts($tw.keyboardManager.parseKeyDescriptors(shortcuts,{\n\t\twiki: this.wiki\n\t}));\n\tif(shortcutArray.length > 0) {\n\t\tshortcutArray.sort(function(a,b) {\n\t\t    return a.toLowerCase().localeCompare(b.toLowerCase());\n\t\t})\n\t\treturn prefix + shortcutArray.join(separator) + suffix;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/jsontiddler.js": {
            "title": "$:/core/modules/macros/jsontiddler.js",
            "text": "/*\\\ntitle: $:/core/modules/macros/jsontiddler.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output a single tiddler to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddler\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\ttitle = title || this.getVariable(\"currentTiddler\");\n\tvar tiddler = !!title && this.wiki.getTiddler(title),\n\t\tfields = new Object();\n\tif(tiddler) {\n\t\tfor(var field in tiddler.fields) {\n\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t}\n\t}\n\treturn JSON.stringify(fields,null,$tw.config.preferences.jsonSpaces);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/jsontiddlers.js": {
            "title": "$:/core/modules/macros/jsontiddlers.js",
            "text": "/*\\\ntitle: $:/core/modules/macros/jsontiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddlers\";\n\nexports.params = [\n\t{name: \"filter\"},\n\t{name: \"spaces\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter,spaces) {\n\treturn this.wiki.getTiddlersAsJson(filter,$tw.utils.parseInt(spaces));\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/makedatauri.js": {
            "title": "$:/core/modules/macros/makedatauri.js",
            "text": "/*\\\ntitle: $:/core/modules/macros/makedatauri.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to convert a string of text to a data URI\n\n<<makedatauri text:\"Text to be converted\" type:\"text/vnd.tiddlywiki\">>\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"makedatauri\";\n\nexports.params = [\n\t{name: \"text\"},\n\t{name: \"type\"},\n\t{name: \"_canonical_uri\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(text,type,_canonical_uri) {\n\treturn $tw.utils.makeDataUri(text,type,_canonical_uri);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/now.js": {
            "title": "$:/core/modules/macros/now.js",
            "text": "/*\\\ntitle: $:/core/modules/macros/now.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return a formatted version of the current time\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"now\";\n\nexports.params = [\n\t{name: \"format\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(format) {\n\treturn $tw.utils.formatDateString(new Date(),format || \"0hh:0mm, DDth MMM YYYY\");\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/qualify.js": {
            "title": "$:/core/modules/macros/qualify.js",
            "text": "/*\\\ntitle: $:/core/modules/macros/qualify.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to qualify a state tiddler title according\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"qualify\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\treturn title + \"-\" + this.getStateQualifier();\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/resolvepath.js": {
            "title": "$:/core/modules/macros/resolvepath.js",
            "text": "/*\\\ntitle: $:/core/modules/macros/resolvepath.js\ntype: application/javascript\nmodule-type: macro\n\nResolves a relative path for an absolute rootpath.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"resolvepath\";\n\nexports.params = [\n\t{name: \"source\"},\n\t{name: \"root\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(source, root) {\n\treturn $tw.utils.resolvePath(source, root);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/unusedtitle.js": {
            "title": "$:/core/modules/macros/unusedtitle.js",
            "text": "/*\\\ntitle: $:/core/modules/macros/unusedtitle.js\ntype: application/javascript\nmodule-type: macro\nMacro to return a new title that is unused in the wiki. It can be given a name as a base.\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"unusedtitle\";\n\nexports.params = [\n\t{name: \"baseName\"},\n\t{name: \"options\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(baseName, options) {\n\tif(!baseName) {\n\t\tbaseName = $tw.language.getString(\"DefaultNewTiddlerTitle\");\n\t}\n\treturn this.wiki.generateNewTitle(baseName, options);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/version.js": {
            "title": "$:/core/modules/macros/version.js",
            "text": "/*\\\ntitle: $:/core/modules/macros/version.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the TiddlyWiki core version number\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"version\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn $tw.version;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/parsers/audioparser.js": {
            "title": "$:/core/modules/parsers/audioparser.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/audioparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe audio parser parses an audio tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar AudioParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"audio\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"},\n\t\t\t\tstyle: {type: \"string\", value: \"width: 100%; object-fit: contain\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"audio/ogg\"] = AudioParser;\nexports[\"audio/mpeg\"] = AudioParser;\nexports[\"audio/mp3\"] = AudioParser;\nexports[\"audio/mp4\"] = AudioParser;\n\n})();\n\n",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/binaryparser.js": {
            "title": "$:/core/modules/parsers/binaryparser.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/binaryparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe binary parser parses a binary tiddler into a warning message and download link\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar BINARY_WARNING_MESSAGE = \"$:/core/ui/BinaryWarning\";\nvar EXPORT_BUTTON_IMAGE = \"$:/core/images/export-button\";\n\nvar BinaryParser = function(type,text,options) {\n\t// Transclude the binary data tiddler warning message\n\tvar warn = {\n\t\ttype: \"element\",\n\t\ttag: \"p\",\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Create download link based on binary tiddler title\n\tvar link = {\n\t\ttype: \"element\",\n\t\ttag: \"a\",\n\t\tattributes: {\n\t\t\ttitle: {type: \"indirect\", textReference: \"!!title\"},\n\t\t\tdownload: {type: \"indirect\", textReference: \"!!title\"}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: EXPORT_BUTTON_IMAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Set the link href to external or internal data URI\n\tif(options._canonical_uri) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: options._canonical_uri\n\t\t};\n\t} else if(text) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: \"data:\" + type + \";base64,\" + text\n\t\t};\n\t}\n\t// Combine warning message and download link in a div\n\tvar element = {\n\t\ttype: \"element\",\n\t\ttag: \"div\",\n\t\tattributes: {\n\t\t\tclass: {type: \"string\", value: \"tc-binary-warning\"}\n\t\t},\n\t\tchildren: [warn, link]\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"application/octet-stream\"] = BinaryParser;\n\n})();\n\n",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/csvparser.js": {
            "title": "$:/core/modules/parsers/csvparser.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/csvparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe CSV text parser processes CSV files into a table wrapped in a scrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar CsvParser = function(type,text,options) {\n\t// Table framework\n\tthis.tree = [{\n\t\t\"type\": \"scrollable\", \"children\": [{\n\t\t\t\"type\": \"element\", \"tag\": \"table\", \"children\": [{\n\t\t\t\t\"type\": \"element\", \"tag\": \"tbody\", \"children\": []\n\t\t\t}], \"attributes\": {\n\t\t\t\t\"class\": {\"type\": \"string\", \"value\": \"tc-csv-table\"}\n\t\t\t}\n\t\t}]\n\t}];\n\t// Split the text into lines\n\tvar lines = text.split(/\\r?\\n/mg),\n\t\ttag = \"th\";\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar lineText = lines[line];\n\t\tif(lineText) {\n\t\t\tvar row = {\n\t\t\t\t\t\"type\": \"element\", \"tag\": \"tr\", \"children\": []\n\t\t\t\t};\n\t\t\tvar columns = lineText.split(\",\");\n\t\t\tfor(var column=0; column<columns.length; column++) {\n\t\t\t\trow.children.push({\n\t\t\t\t\t\t\"type\": \"element\", \"tag\": tag, \"children\": [{\n\t\t\t\t\t\t\t\"type\": \"text\",\n\t\t\t\t\t\t\t\"text\": columns[column]\n\t\t\t\t\t\t}]\n\t\t\t\t\t});\n\t\t\t}\n\t\t\ttag = \"td\";\n\t\t\tthis.tree[0].children[0].children[0].children.push(row);\n\t\t}\n\t}\n};\n\nexports[\"text/csv\"] = CsvParser;\n\n})();\n\n",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/htmlparser.js": {
            "title": "$:/core/modules/parsers/htmlparser.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/htmlparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe HTML parser displays text as raw HTML\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HtmlParser = function(type,text,options) {\n\tvar src;\n\tif(options._canonical_uri) {\n\t\tsrc = options._canonical_uri;\n\t} else if(text) {\n\t\tsrc = \"data:text/html;charset=utf-8,\" + encodeURIComponent(text);\n\t}\n\tthis.tree = [{\n\t\ttype: \"element\",\n\t\ttag: \"iframe\",\n\t\tattributes: {\n\t\t\tsrc: {type: \"string\", value: src},\n\t\t\tsandbox: {type: \"string\", value: \"\"}\n\t\t}\n\t}];\n};\n\nexports[\"text/html\"] = HtmlParser;\n\n})();\n\n",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/imageparser.js": {
            "title": "$:/core/modules/parsers/imageparser.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/imageparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe image parser parses an image into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"img\",\n\t\t\tattributes: {}\n\t\t};\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\tif(type === \"image/svg+xml\" || type === \".svg\") {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:image/svg+xml,\" + encodeURIComponent(text)};\n\t\t} else {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t\t}\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"image/svg+xml\"] = ImageParser;\nexports[\"image/jpg\"] = ImageParser;\nexports[\"image/jpeg\"] = ImageParser;\nexports[\"image/png\"] = ImageParser;\nexports[\"image/gif\"] = ImageParser;\nexports[\"image/webp\"] = ImageParser;\nexports[\"image/heic\"] = ImageParser;\nexports[\"image/heif\"] = ImageParser;\nexports[\"image/x-icon\"] = ImageParser;\n\n})();\n\n",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/utils/parseutils.js": {
            "title": "$:/core/modules/utils/parseutils.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/parseutils.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions concerned with parsing text into tokens.\n\nMost functions have the following pattern:\n\n* The parameters are:\n** `source`: the source string being parsed\n** `pos`: the current parse position within the string\n** Any further parameters are used to identify the token that is being parsed\n* The return value is:\n** null if the token was not found at the specified position\n** an object representing the token with the following standard fields:\n*** `type`: string indicating the type of the token\n*** `start`: start position of the token in the source string\n*** `end`: end position of the token in the source string\n*** Any further fields required to describe the token\n\nThe exception is `skipWhiteSpace`, which just returns the position after the whitespace.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for a whitespace token. Returns null if not found, otherwise returns {type: \"whitespace\", start:, end:,}\n*/\nexports.parseWhiteSpace = function(source,pos) {\n\tvar p = pos,c;\n\twhile(true) {\n\t\tc = source.charAt(p);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tp++;\n\t\t} else {\n\t\t\tbreak;\n\t\t}\n\t}\n\tif(p === pos) {\n\t\treturn null;\n\t} else {\n\t\treturn {\n\t\t\ttype: \"whitespace\",\n\t\t\tstart: pos,\n\t\t\tend: p\n\t\t}\n\t}\n};\n\n/*\nConvenience wrapper for parseWhiteSpace. Returns the position after the whitespace\n*/\nexports.skipWhiteSpace = function(source,pos) {\n\tvar c;\n\twhile(true) {\n\t\tc = source.charAt(pos);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tpos++;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n};\n\n/*\nLook for a given string token. Returns null if not found, otherwise returns {type: \"token\", value:, start:, end:,}\n*/\nexports.parseTokenString = function(source,pos,token) {\n\tvar match = source.indexOf(token,pos) === pos;\n\tif(match) {\n\t\treturn {\n\t\t\ttype: \"token\",\n\t\t\tvalue: token,\n\t\t\tstart: pos,\n\t\t\tend: pos + token.length\n\t\t};\n\t}\n\treturn null;\n};\n\n/*\nLook for a token matching a regex. Returns null if not found, otherwise returns {type: \"regexp\", match:, start:, end:,}\n*/\nexports.parseTokenRegExp = function(source,pos,reToken) {\n\tvar node = {\n\t\ttype: \"regexp\",\n\t\tstart: pos\n\t};\n\treToken.lastIndex = pos;\n\tnode.match = reToken.exec(source);\n\tif(node.match && node.match.index === pos) {\n\t\tnode.end = pos + node.match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a string literal. Returns null if not found, otherwise returns {type: \"string\", value:, start:, end:,}\n*/\nexports.parseStringLiteral = function(source,pos) {\n\tvar node = {\n\t\ttype: \"string\",\n\t\tstart: pos\n\t};\n\tvar reString = /(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\")|(?:'([^']*)')/g;\n\treString.lastIndex = pos;\n\tvar match = reString.exec(source);\n\tif(match && match.index === pos) {\n\t\tnode.value = match[1] !== undefined ? match[1] :(\n\t\t\tmatch[2] !== undefined ? match[2] : match[3] \n\t\t\t\t\t);\n\t\tnode.end = pos + match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a macro invocation parameter. Returns null if not found, or {type: \"macro-parameter\", name:, value:, start:, end:}\n*/\nexports.parseMacroParameter = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macro-parameter\",\n\t\tstart: pos\n\t};\n\t// Define our regexp\n\tvar reMacroParameter = /(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\\s>\"'=]+)))/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the parameter\n\tvar token = $tw.utils.parseTokenRegExp(source,pos,reMacroParameter);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the parameter details\n\tnode.value = token.match[2] !== undefined ? token.match[2] : (\n\t\t\t\t\ttoken.match[3] !== undefined ? token.match[3] : (\n\t\t\t\t\t\ttoken.match[4] !== undefined ? token.match[4] : (\n\t\t\t\t\t\t\ttoken.match[5] !== undefined ? token.match[5] : (\n\t\t\t\t\t\t\t\ttoken.match[6] !== undefined ? token.match[6] : (\n\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t);\n\tif(token.match[1]) {\n\t\tnode.name = token.match[1];\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for a macro invocation. Returns null if not found, or {type: \"macrocall\", name:, parameters:, start:, end:}\n*/\nexports.parseMacroInvocation = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macrocall\",\n\t\tstart: pos,\n\t\tparams: []\n\t};\n\t// Define our regexps\n\tvar reMacroName = /([^\\s>\"'=]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double less than sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"<<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the macro name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reMacroName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Process parameters\n\tvar parameter = $tw.utils.parseMacroParameter(source,pos);\n\twhile(parameter) {\n\t\tnode.params.push(parameter);\n\t\tpos = parameter.end;\n\t\t// Get the next parameter\n\t\tparameter = $tw.utils.parseMacroParameter(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">>\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for an HTML attribute definition. Returns null if not found, otherwise returns {type: \"attribute\", name:, valueType: \"string|indirect|macro\", value:, start:, end:,}\n*/\nexports.parseAttribute = function(source,pos) {\n\tvar node = {\n\t\tstart: pos\n\t};\n\t// Define our regexps\n\tvar reAttributeName = /([^\\/\\s>\"'=]+)/g,\n\t\treUnquotedAttribute = /([^\\/\\s<>\"'=]+)/g,\n\t\treFilteredValue = /\\{\\{\\{(.+?)\\}\\}\\}/g,\n\t\treIndirectValue = /\\{\\{([^\\}]+)\\}\\}/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the attribute name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reAttributeName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for an equals sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"=\");\n\tif(token) {\n\t\tpos = token.end;\n\t\t// Skip whitespace\n\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t// Look for a string literal\n\t\tvar stringLiteral = $tw.utils.parseStringLiteral(source,pos);\n\t\tif(stringLiteral) {\n\t\t\tpos = stringLiteral.end;\n\t\t\tnode.type = \"string\";\n\t\t\tnode.value = stringLiteral.value;\n\t\t} else {\n\t\t\t// Look for a filtered value\n\t\t\tvar filteredValue = $tw.utils.parseTokenRegExp(source,pos,reFilteredValue);\n\t\t\tif(filteredValue) {\n\t\t\t\tpos = filteredValue.end;\n\t\t\t\tnode.type = \"filtered\";\n\t\t\t\tnode.filter = filteredValue.match[1];\n\t\t\t} else {\n\t\t\t\t// Look for an indirect value\n\t\t\t\tvar indirectValue = $tw.utils.parseTokenRegExp(source,pos,reIndirectValue);\n\t\t\t\tif(indirectValue) {\n\t\t\t\t\tpos = indirectValue.end;\n\t\t\t\t\tnode.type = \"indirect\";\n\t\t\t\t\tnode.textReference = indirectValue.match[1];\n\t\t\t\t} else {\n\t\t\t\t\t// Look for a unquoted value\n\t\t\t\t\tvar unquotedValue = $tw.utils.parseTokenRegExp(source,pos,reUnquotedAttribute);\n\t\t\t\t\tif(unquotedValue) {\n\t\t\t\t\t\tpos = unquotedValue.end;\n\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\tnode.value = unquotedValue.match[1];\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Look for a macro invocation value\n\t\t\t\t\t\tvar macroInvocation = $tw.utils.parseMacroInvocation(source,pos);\n\t\t\t\t\t\tif(macroInvocation) {\n\t\t\t\t\t\t\tpos = macroInvocation.end;\n\t\t\t\t\t\t\tnode.type = \"macro\";\n\t\t\t\t\t\t\tnode.value = macroInvocation;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\t\tnode.value = \"true\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tnode.type = \"string\";\n\t\tnode.value = \"true\";\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/parsers/pdfparser.js": {
            "title": "$:/core/modules/parsers/pdfparser.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/pdfparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe PDF parser embeds a PDF viewer\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"embed\",\n\t\t\tattributes: {}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:application/pdf;base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"application/pdf\"] = ImageParser;\n\n})();\n\n",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/textparser.js": {
            "title": "$:/core/modules/parsers/textparser.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/textparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe plain text parser processes blocks of source text into a degenerate parse tree consisting of a single text node\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar TextParser = function(type,text,options) {\n\tthis.tree = [{\n\t\ttype: \"codeblock\",\n\t\tattributes: {\n\t\t\tcode: {type: \"string\", value: text},\n\t\t\tlanguage: {type: \"string\", value: type}\n\t\t}\n\t}];\n};\n\nexports[\"text/plain\"] = TextParser;\nexports[\"text/x-tiddlywiki\"] = TextParser;\nexports[\"application/javascript\"] = TextParser;\nexports[\"application/json\"] = TextParser;\nexports[\"text/css\"] = TextParser;\nexports[\"application/x-tiddler-dictionary\"] = TextParser;\n\n})();\n\n",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/videoparser.js": {
            "title": "$:/core/modules/parsers/videoparser.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/videoparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe video parser parses a video tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar VideoParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"video\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"},\n\t\t\t\tstyle: {type: \"string\", value: \"width: 100%; object-fit: contain\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"video/ogg\"] = VideoParser;\nexports[\"video/webm\"] = VideoParser;\nexports[\"video/mp4\"] = VideoParser;\nexports[\"video/quicktime\"] = VideoParser;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/wikiparser/rules/codeblock.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/codeblock.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for code blocks. For example:\n\n```\n\t```\n\tThis text will not be //wikified//\n\t```\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match and get language if defined\n\tthis.matchRegExp = /```([\\w-]*)\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\\r?\\n```$)/mg;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Return the $codeblock widget\n\treturn [{\n\t\t\ttype: \"codeblock\",\n\t\t\tattributes: {\n\t\t\t\t\tcode: {type: \"string\", value: text},\n\t\t\t\t\tlanguage: {type: \"string\", value: this.match[1]}\n\t\t\t}\n\t}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/codeinline.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/codeinline.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for code runs. For example:\n\n```\n\tThis is a `code run`.\n\tThis is another ``code run``\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(``?)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar reEnd = new RegExp(this.match[1], \"mg\");\n\t// Look for the end marker\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the text\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"code\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: text\n\t\t}]\n\t}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/commentblock.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/commentblock.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/commentinline.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/commentinline.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/dash.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/dash.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/dash.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for dashes. For example:\n\n```\nThis is an en-dash: --\n\nThis is an em-dash: ---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"dash\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{2,3}(?!-)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar dash = this.match[0].length === 2 ? \"&ndash;\" : \"&mdash;\";\n\treturn [{\n\t\ttype: \"entity\",\n\t\tentity: dash\n\t}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/bold.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - bold. For example:\n\n```\n\tThis is ''bold'' text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except bold \n\\rules only bold \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"bold\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /''/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/''/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strong\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/italic.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - italic. For example:\n\n```\n\tThis is //italic// text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except italic\n\\rules only italic\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"italic\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\/\\//mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\/\\//mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"em\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - strikethrough. For example:\n\n```\n\tThis is ~~strikethrough~~ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except strikethrough \n\\rules only strikethrough \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"strikethrough\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~~/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/~~/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strike\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - subscript. For example:\n\n```\n\tThis is ,,subscript,, text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except subscript \n\\rules only subscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"subscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /,,/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/,,/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sub\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - superscript. For example:\n\n```\n\tThis is ^^superscript^^ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except superscript \n\\rules only superscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"superscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\^\\^/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\^\\^/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sup\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - underscore. For example:\n\n```\n\tThis is __underscore__ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except underscore \n\\rules only underscore\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"underscore\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /__/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/__/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"u\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/entity.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/entity.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/entity.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML entities. For example:\n\n```\n\tThis is a copyright symbol: &copy;\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"entity\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(&#?[a-zA-Z0-9]{2,8};)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar entityString = this.match[1];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Return the entity\n\treturn [{type: \"entity\", entity: this.match[0]}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/extlink.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/extlink.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/extlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\nAn external link: https://www.tiddlywiki.com/\n\nA suppressed external link: ~http://www.tiddlyspace.com/\n```\n\nExternal links can be suppressed by preceding them with `~`.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"extlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~?(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(this.match[0].substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: this.match[0].substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: this.match[0]},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: this.match[0]\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t},\n\t\tisBlock: true\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t}\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for marking areas with hard line breaks. For example:\n\n```\n\"\"\"\nThis is some text\nThat is set like\nIt is a Poem\nWhen it is\nClearly\nNot\n\"\"\"\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"hardlinebreaks\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\"\"\"(?:\\r?\\n)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\"\"\")|(\\r?\\n)/mg,\n\t\ttree = [],\n\t\tmatch;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tdo {\n\t\t// Parse the run up to the terminator\n\t\ttree.push.apply(tree,this.parser.parseInlineRun(reEnd,{eatTerminator: false}));\n\t\t// Redo the terminator match\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tmatch = reEnd.exec(this.parser.source);\n\t\tif(match) {\n\t\t\tthis.parser.pos = reEnd.lastIndex;\n\t\t\t// Add a line break if the terminator was a line break\n\t\t\tif(match[2]) {\n\t\t\t\ttree.push({type: \"element\", tag: \"br\"});\n\t\t\t}\n\t\t}\n\t} while(match && !match[1]);\n\t// Return the nodes\n\treturn tree;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/heading.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/heading.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/heading.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for headings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"heading\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(!{1,6})/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar headingLevel = this.match[1].length;\n\t// Move past the !s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse any classes, whitespace and then the heading itself\n\tvar classes = this.parser.parseClasses();\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// Return the heading\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"h\" + headingLevel, \n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: classes.join(\" \")}\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/horizrule.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/horizrule.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/horizrule.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for rules. For example:\n\n```\n---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"horizrule\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{3,}\\r?(?:\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\treturn [{type: \"element\", tag: \"hr\"}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/html.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/html.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/html.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for HTML elements and widgets. For example:\n\n{{{\n<aside>\nThis is an HTML5 aside element\n</aside>\n\n<$slider target=\"MyTiddler\">\nThis is a widget invocation\n</$slider>\n\n}}}\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"html\";\nexports.types = {inline: true, block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextTag = this.findNextTag(this.parser.source,startPos,{\n\t\trequireLineBreak: this.is.block\n\t});\n\treturn this.nextTag ? this.nextTag.start : undefined;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Retrieve the most recent match so that recursive calls don't overwrite it\n\tvar tag = this.nextTag;\n\tthis.nextTag = null;\n\t// Advance the parser position to past the tag\n\tthis.parser.pos = tag.end;\n\t// Check for an immediately following double linebreak\n\tvar hasLineBreak = !tag.isSelfClosing && !!$tw.utils.parseTokenRegExp(this.parser.source,this.parser.pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t// Set whether we're in block mode\n\ttag.isBlock = this.is.block || hasLineBreak;\n\t// Parse the body if we need to\n\tif(!tag.isSelfClosing && $tw.config.htmlVoidElements.indexOf(tag.tag) === -1) {\n\t\t\tvar reEndString = \"</\" + $tw.utils.escapeRegExp(tag.tag) + \">\",\n\t\t\t\treEnd = new RegExp(\"(\" + reEndString + \")\",\"mg\");\n\t\tif(hasLineBreak) {\n\t\t\ttag.children = this.parser.parseBlocks(reEndString);\n\t\t} else {\n\t\t\ttag.children = this.parser.parseInlineRun(reEnd);\n\t\t}\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tvar endMatch = reEnd.exec(this.parser.source);\n\t\tif(endMatch && endMatch.index === this.parser.pos) {\n\t\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t\t}\n\t}\n\t// Return the tag\n\treturn [tag];\n};\n\n/*\nLook for an HTML tag. Returns null if not found, otherwise returns {type: \"element\", name:, attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseTag = function(source,pos,options) {\n\toptions = options || {};\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Define our regexps\n\tvar reTagName = /([a-zA-Z0-9\\-\\$]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a less than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\"<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the tag name\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,reTagName);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tnode.tag = token.match[1];\n\tif(node.tag.slice(1).indexOf(\"$\") !== -1) {\n\t\treturn null;\n\t}\n\tif(node.tag.charAt(0) === \"$\") {\n\t\tnode.type = node.tag.substr(1);\n\t}\n\tpos = token.end;\n\t// Check that the tag is terminated by a space, / or >\n\tif(!$tw.utils.parseWhiteSpace(source,pos) && !(source.charAt(pos) === \"/\") && !(source.charAt(pos) === \">\") ) {\n\t\treturn null;\n\t}\n\t// Process attributes\n\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\twhile(attribute) {\n\t\tnode.attributes[attribute.name] = attribute;\n\t\tpos = attribute.end;\n\t\t// Get the next attribute\n\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a closing slash\n\ttoken = $tw.utils.parseTokenString(source,pos,\"/\");\n\tif(token) {\n\t\tpos = token.end;\n\t\tnode.isSelfClosing = true;\n\t}\n\t// Look for a greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Check for a required line break\n\tif(options.requireLineBreak) {\n\t\ttoken = $tw.utils.parseTokenRegExp(source,pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t\tif(!token) {\n\t\t\treturn null;\n\t\t}\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\nexports.findNextTag = function(source,pos,options) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /<([a-zA-Z\\-\\$]+)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseTag(source,match.index,options);\n\t\t// Return success\n\t\tif(tag && this.isLegalTag(tag)) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\nexports.isLegalTag = function(tag) {\n\t// Widgets are always OK\n\tif(tag.type !== \"element\") {\n\t\treturn true;\n\t// If it's an HTML tag that starts with a dash then it's not legal\n\t} else if(tag.tag.charAt(0) === \"-\") {\n\t\treturn false;\n\t} else {\n\t\t// Otherwise it's OK\n\t\treturn true;\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/image.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/image.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/image.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for embedding images. For example:\n\n```\n[img[https://tiddlywiki.com/fractalveg.jpg]]\n[img width=23 height=24 [https://tiddlywiki.com/fractalveg.jpg]]\n[img width={{!!width}} height={{!!height}} [https://tiddlywiki.com/fractalveg.jpg]]\n[img[Description of image|https://tiddlywiki.com/fractalveg.jpg]]\n[img[TiddlerTitle]]\n[img[Description of image|TiddlerTitle]]\n```\n\nGenerates the `<$image>` widget.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"image\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextImage = this.findNextImage(this.parser.source,startPos);\n\treturn this.nextImage ? this.nextImage.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextImage.end;\n\tvar node = {\n\t\ttype: \"image\",\n\t\tattributes: this.nextImage.attributes\n\t};\n\treturn [node];\n};\n\n/*\nFind the next image from the current position\n*/\nexports.findNextImage = function(source,pos) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /(\\[img)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseImage(source,match.index);\n\t\t// Return success\n\t\tif(tag) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an image at the specified position. Returns null if not found, otherwise returns {type: \"image\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseImage = function(source,pos) {\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"image\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[img`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[img\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Process attributes\n\tif(source.charAt(pos) !== \"[\") {\n\t\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\t\twhile(attribute) {\n\t\t\tnode.attributes[attribute.name] = attribute;\n\t\t\tpos = attribute.end;\n\t\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t\tif(source.charAt(pos) !== \"[\") {\n\t\t\t\t// Get the next attribute\n\t\t\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t\t\t} else {\n\t\t\t\tattribute = null;\n\t\t\t}\n\t\t}\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[` after the attributes\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the source up to the terminating `]]`\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,/(?:([^|\\]]*?)\\|)?([^\\]]+?)\\]\\]/g);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\tif(token.match[1]) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: token.match[1].trim()};\n\t}\n\tnode.attributes.source = {type: \"string\", value: (token.match[2] || \"\").trim()};\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/import.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/import.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/import.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for importing variable definitions\n\n```\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"import\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\import[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\tvar self = this;\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the filter terminated by a line break\n\tvar reMatch = /(.*)(\\r?\\n)|$/mg;\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\tthis.parser.pos = reMatch.lastIndex;\n\t// Parse tree nodes to return\n\treturn [{\n\t\ttype: \"importvariables\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: match[1]}\n\t\t},\n\t\tchildren: []\n\t}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/list.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/list.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/list.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for lists. For example:\n\n```\n* This is an unordered list\n* It has two items\n\n# This is a numbered list\n## With a subitem\n# And a third item\n\n; This is a term that is being defined\n: This is the definition of that term\n```\n\nNote that lists can be nested arbitrarily:\n\n```\n#** One\n#* Two\n#** Three\n#**** Four\n#**# Five\n#**## Six\n## Seven\n### Eight\n## Nine\n```\n\nA CSS class can be applied to a list item as follows:\n\n```\n* List item one\n*.active List item two has the class `active`\n* List item three\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"list\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /([\\*#;:>]+)/mg;\n};\n\nvar listTypes = {\n\t\"*\": {listTag: \"ul\", itemTag: \"li\"},\n\t\"#\": {listTag: \"ol\", itemTag: \"li\"},\n\t\";\": {listTag: \"dl\", itemTag: \"dt\"},\n\t\":\": {listTag: \"dl\", itemTag: \"dd\"},\n\t\">\": {listTag: \"blockquote\", itemTag: \"div\"}\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Array of parse tree nodes for the previous row of the list\n\tvar listStack = [];\n\t// Cycle through the items in the list\n\twhile(true) {\n\t\t// Match the list marker\n\t\tvar reMatch = /([\\*#;:>]+)/mg;\n\t\treMatch.lastIndex = this.parser.pos;\n\t\tvar match = reMatch.exec(this.parser.source);\n\t\tif(!match || match.index !== this.parser.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check whether the list type of the top level matches\n\t\tvar listInfo = listTypes[match[0].charAt(0)];\n\t\tif(listStack.length > 0 && listStack[0].tag !== listInfo.listTag) {\n\t\t\tbreak;\n\t\t}\n\t\t// Move past the list marker\n\t\tthis.parser.pos = match.index + match[0].length;\n\t\t// Walk through the list markers for the current row\n\t\tfor(var t=0; t<match[0].length; t++) {\n\t\t\tlistInfo = listTypes[match[0].charAt(t)];\n\t\t\t// Remove any stacked up element if we can't re-use it because the list type doesn't match\n\t\t\tif(listStack.length > t && listStack[t].tag !== listInfo.listTag) {\n\t\t\t\tlistStack.splice(t,listStack.length - t);\n\t\t\t}\n\t\t\t// Construct the list element or reuse the previous one at this level\n\t\t\tif(listStack.length <= t) {\n\t\t\t\tvar listElement = {type: \"element\", tag: listInfo.listTag, children: [\n\t\t\t\t\t{type: \"element\", tag: listInfo.itemTag, children: []}\n\t\t\t\t]};\n\t\t\t\t// Link this list element into the last child item of the parent list item\n\t\t\t\tif(t) {\n\t\t\t\t\tvar prevListItem = listStack[t-1].children[listStack[t-1].children.length-1];\n\t\t\t\t\tprevListItem.children.push(listElement);\n\t\t\t\t}\n\t\t\t\t// Save this element in the stack\n\t\t\t\tlistStack[t] = listElement;\n\t\t\t} else if(t === (match[0].length - 1)) {\n\t\t\t\tlistStack[t].children.push({type: \"element\", tag: listInfo.itemTag, children: []});\n\t\t\t}\n\t\t}\n\t\tif(listStack.length > match[0].length) {\n\t\t\tlistStack.splice(match[0].length,listStack.length - match[0].length);\n\t\t}\n\t\t// Process the body of the list item into the last list item\n\t\tvar lastListChildren = listStack[listStack.length-1].children,\n\t\t\tlastListItem = lastListChildren[lastListChildren.length-1],\n\t\t\tclasses = this.parser.parseClasses();\n\t\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\t\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t\tlastListItem.children.push.apply(lastListItem.children,tree);\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(lastListItem,classes.join(\" \"));\n\t\t}\n\t\t// Consume any whitespace following the list item\n\t\tthis.parser.skipWhitespace();\n\t}\n\t// Return the root element of the list\n\treturn [listStack[0]];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/macrocallblock.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/macrocallblock.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for block macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^>\\s]+)(?:\\s*)((?:[^>]|(?:>(?!>)))*?)>>(?:\\r?\\n|$)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params,\n\t\tisBlock: true\n\t}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/macrocallinline.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/macrocallinline.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^\\s>]+)\\s*([\\s\\S]*?)>>/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5]|| paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params\n\t}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/macrodef.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/macrodef.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrodef.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for macro definitions\n\n```\n\\define name(param:defaultvalue,param2:defaultvalue)\ndefinition text, including $param$ markers\n\\end\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrodef\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\define\\s+([^(\\s]+)\\(\\s*([^)]*)\\)(\\s*\\r?\\n)?/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the macro name and parameters\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the parameters\n\tvar paramString = this.match[2],\n\t\tparams = [];\n\tif(paramString !== \"\") {\n\t\tvar reParam = /\\s*([A-Za-z0-9\\-_]+)(?:\\s*:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))?/mg,\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\twhile(paramMatch) {\n\t\t\t// Save the parameter details\n\t\t\tvar paramInfo = {name: paramMatch[1]},\n\t\t\t\tdefaultValue = paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6];\n\t\t\tif(defaultValue) {\n\t\t\t\tparamInfo[\"default\"] = defaultValue;\n\t\t\t}\n\t\t\tparams.push(paramInfo);\n\t\t\t// Look for the next parameter\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\t}\n\t}\n\t// Is this a multiline definition?\n\tvar reEnd;\n\tif(this.match[3]) {\n\t\t// If so, the end of the body is marked with \\end\n\t\treEnd = /(\\r?\\n\\\\end[^\\S\\n\\r]*(?:$|\\r?\\n))/mg;\n\t} else {\n\t\t// Otherwise, the end of the definition is marked by the end of the line\n\t\treEnd = /($|\\r?\\n)/mg;\n\t\t// Move past any whitespace\n\t\tthis.parser.pos = $tw.utils.skipWhiteSpace(this.parser.source,this.parser.pos);\n\t}\n\t// Find the end of the definition\n\treEnd.lastIndex = this.parser.pos;\n\tvar text,\n\t\tendMatch = reEnd.exec(this.parser.source);\n\tif(endMatch) {\n\t\ttext = this.parser.source.substring(this.parser.pos,endMatch.index);\n\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t} else {\n\t\t// We didn't find the end of the definition, so we'll make it blank\n\t\ttext = \"\";\n\t}\n\t// Save the macro definition\n\treturn [{\n\t\ttype: \"set\",\n\t\tattributes: {\n\t\t\tname: {type: \"string\", value: this.match[1]},\n\t\t\tvalue: {type: \"string\", value: text}\n\t\t},\n\t\tchildren: [],\n\t\tparams: params,\n\t\tisMacroDefinition: true\n\t}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/prettyextlink.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/prettyextlink.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettyextlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\n[ext[https://tiddlywiki.com/fractalveg.jpg]]\n[ext[Tooltip|https://tiddlywiki.com/fractalveg.jpg]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettyextlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextLink = this.findNextLink(this.parser.source,startPos);\n\treturn this.nextLink ? this.nextLink.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextLink.end;\n\treturn [this.nextLink];\n};\n\n/*\nFind the next link from the current position\n*/\nexports.findNextLink = function(source,pos) {\n\t// A regexp for finding candidate links\n\tvar reLookahead = /(\\[ext\\[)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a link\n\t\tvar link = this.parseLink(source,match.index);\n\t\t// Return success\n\t\tif(link) {\n\t\t\treturn link;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an link at the specified position. Returns null if not found, otherwise returns {type: \"element\", tag: \"a\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseLink = function(source,pos) {\n\tvar token,\n\t\ttextNode = {\n\t\t\ttype: \"text\"\n\t\t},\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tstart: pos,\n\t\t\tattributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t},\n\t\t\tchildren: [textNode]\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[ext[`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[ext[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Look ahead for the terminating `]]`\n\tvar closePos = source.indexOf(\"]]\",pos);\n\tif(closePos === -1) {\n\t\treturn null;\n\t}\n\t// Look for a `|` separating the tooltip\n\tvar splitPos = source.indexOf(\"|\",pos);\n\tif(splitPos === -1 || splitPos > closePos) {\n\t\tsplitPos = null;\n\t}\n\t// Pull out the tooltip and URL\n\tvar tooltip, URL;\n\tif(splitPos) {\n\t\tURL = source.substring(splitPos + 1,closePos).trim();\n\t\ttextNode.text = source.substring(pos,splitPos).trim();\n\t} else {\n\t\tURL = source.substring(pos,closePos).trim();\n\t\ttextNode.text = URL;\n\t}\n\tnode.attributes.href = {type: \"string\", value: URL};\n\tnode.attributes.target = {type: \"string\", value: \"_blank\"};\n\tnode.attributes.rel = {type: \"string\", value: \"noopener noreferrer\"};\n\t// Update the end position\n\tnode.end = closePos + 2;\n\treturn node;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/prettylink.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/prettylink.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettylink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for pretty links. For example:\n\n```\n[[Introduction]]\n\n[[Link description|TiddlerTitle]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettylink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\[\\[(.*?)(?:\\|(.*?))?\\]\\]/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Process the link\n\tvar text = this.match[1],\n\t\tlink = this.match[2] || text;\n\tif($tw.utils.isLinkExternal(link)) {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: link},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: link}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/quoteblock.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/quoteblock.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/quoteblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for quote blocks. For example:\n\n```\n\t<<<.optionalClass(es) optional cited from\n\ta quote\n\t<<<\n\t\n\t<<<.optionalClass(es)\n\ta quote\n\t<<< optional cited from\n```\n\nQuotes can be quoted by putting more <s\n\n```\n\t<<<\n\tQuote Level 1\n\t\n\t<<<<\n\tQuoteLevel 2\n\t<<<<\n\t\n\t<<<\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"quoteblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(<<<+)/mg;\n};\n\nexports.parse = function() {\n\tvar classes = [\"tc-quote\"];\n\t// Get all the details of the match\n\tvar reEndString = \"^\" + this.match[1] + \"(?!<)\";\n\t// Move past the <s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\n\t// Parse any classes, whitespace and then the optional cite itself\n\tclasses.push.apply(classes, this.parser.parseClasses());\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar cite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// before handling the cite, parse the body of the quote\n\tvar tree= this.parser.parseBlocks(reEndString);\n\t// If we got a cite, put it before the text\n\tif(cite.length > 0) {\n\t\ttree.unshift({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Parse any optional cite\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tcite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// If we got a cite, push it\n\tif(cite.length > 0) {\n\t\ttree.push({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Return the blockquote element\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"blockquote\",\n\t\tattributes: {\n\t\t\tclass: { type: \"string\", value: classes.join(\" \") },\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/rules.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/rules.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/rules.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for rules specifications\n\n```\n\\rules except ruleone ruletwo rulethree\n\\rules only ruleone ruletwo rulethree\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"rules\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\rules[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\tif(tokens.length > 0) {\n\t\tthis.parser.amendRules(tokens[0],tokens.slice(1));\n\t}\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/styleblock.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/styleblock.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for assigning styles and classes to paragraphs and other blocks. For example:\n\n```\n@@.myClass\n@@background-color:red;\nThis paragraph will have the CSS class `myClass`.\n\n* The `<ul>` around this list will also have the class `myClass`\n* List item 2\n\n@@\n```\n\nNote that classes and styles can be mixed subject to the rule that styles must precede classes. For example\n\n```\n@@.myFirstClass.mySecondClass\n@@width:100px;.myThirdClass\nThis is a paragraph\n@@\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(?:\\.([^\\r\\n\\s]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEndString = \"^@@(?:\\\\r?\\\\n)?\";\n\tvar classes = [], styles = [];\n\tdo {\n\t\t// Get the class and style\n\t\tif(this.match[1]) {\n\t\t\tstyles.push(this.match[1]);\n\t\t}\n\t\tif(this.match[2]) {\n\t\t\tclasses.push(this.match[2].split(\".\").join(\" \"));\n\t\t}\n\t\t// Move past the match\n\t\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\t// Look for another line of classes and styles\n\t\tthis.match = this.matchRegExp.exec(this.parser.source);\n\t} while(this.match && this.match.index === this.parser.pos);\n\t// Parse the body\n\tvar tree = this.parser.parseBlocks(reEndString);\n\tfor(var t=0; t<tree.length; t++) {\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(tree[t],classes.join(\" \"));\n\t\t}\n\t\tif(styles.length > 0) {\n\t\t\t$tw.utils.addAttributeToParseTreeNode(tree[t],\"style\",styles.join(\"\"));\n\t\t}\n\t}\n\treturn tree;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/styleinline.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/styleinline.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for assigning styles and classes to inline runs. For example:\n\n```\n@@.myClass This is some text with a class@@\n@@background-color:red;This is some text with a background colour@@\n@@width:100px;.myClass This is some text with a class and a width@@\n```\n\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(\\.(?:[^\\r\\n\\s]+)\\s+)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /@@/g;\n\t// Get the styles and class\n\tvar stylesString = this.match[1],\n\t\tclassString = this.match[2] ? this.match[2].split(\".\").join(\" \") : undefined;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the run up to the terminator\n\tvar tree = this.parser.parseInlineRun(reEnd,{eatTerminator: true});\n\t// Return the classed span\n\tvar node = {\n\t\ttype: \"element\",\n\t\ttag: \"span\",\n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: \"tc-inline-style\"}\n\t\t},\n\t\tchildren: tree\n\t};\n\tif(classString) {\n\t\t$tw.utils.addClassToParseTreeNode(node,classString);\n\t}\n\tif(stylesString) {\n\t\t$tw.utils.addAttributeToParseTreeNode(node,\"style\",stylesString);\n\t}\n\treturn [node];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/syslink.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/syslink.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/syslink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for system tiddler links.\nCan be suppressed preceding them with `~`.\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"syslink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp(\n\t\t\"~?\\\\$:\\\\/[\" +\n\t\t$tw.config.textPrimitives.anyLetter.substr(1,$tw.config.textPrimitives.anyLetter.length - 2) +\n\t\t\"\\/._-]+\",\n\t\t\"mg\"\n\t);\n};\n\nexports.parse = function() {\n\tvar match = this.match[0];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(match.substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: match.substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: match}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: match\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/table.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/table.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/table.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for tables.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"table\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\|(?:[^\\n]*)\\|(?:[fhck]?)\\r?(?:\\n|$)/mg;\n};\n\nvar processRow = function(prevColumns) {\n\tvar cellRegExp = /(?:\\|([^\\n\\|]*)\\|)|(\\|[fhck]?\\r?(?:\\n|$))/mg,\n\t\tcellTermRegExp = /((?:\\x20*)\\|)/mg,\n\t\ttree = [],\n\t\tcol = 0,\n\t\tcolSpanCount = 1,\n\t\tprevCell,\n\t\tvAlign;\n\t// Match a single cell\n\tcellRegExp.lastIndex = this.parser.pos;\n\tvar cellMatch = cellRegExp.exec(this.parser.source);\n\twhile(cellMatch && cellMatch.index === this.parser.pos) {\n\t\tif(cellMatch[1] === \"~\") {\n\t\t\t// Rowspan\n\t\t\tvar last = prevColumns[col];\n\t\t\tif(last) {\n\t\t\t\tlast.rowSpanCount++;\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"rowspan\",last.rowSpanCount);\n\t\t\t\tvAlign = $tw.utils.getAttributeValueFromParseTreeNode(last.element,\"valign\",\"center\");\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"valign\",vAlign);\n\t\t\t\tif(colSpanCount > 1) {\n\t\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"colspan\",colSpanCount);\n\t\t\t\t\tcolSpanCount = 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \">\") {\n\t\t\t// Colspan\n\t\t\tcolSpanCount++;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \"<\" && prevCell) {\n\t\t\tcolSpanCount = 1 + $tw.utils.getAttributeValueFromParseTreeNode(prevCell,\"colspan\",1);\n\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\tcolSpanCount = 1;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[2]) {\n\t\t\t// End of row\n\t\t\tif(prevCell && colSpanCount > 1) {\n\t\t\t\tif(prevCell.attributes && prevCell.attributes && prevCell.attributes.colspan) {\n\t\t\t\t\t\tcolSpanCount += prevCell.attributes.colspan.value;\n\t\t\t\t} else {\n\t\t\t\t\tcolSpanCount -= 1;\n\t\t\t\t}\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\t}\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t\tbreak;\n\t\t} else {\n\t\t\t// For ordinary cells, step beyond the opening `|`\n\t\t\tthis.parser.pos++;\n\t\t\t// Look for a space at the start of the cell\n\t\t\tvar spaceLeft = false;\n\t\t\tvAlign = null;\n\t\t\tif(this.parser.source.substr(this.parser.pos).search(/^\\^([^\\^]|\\^\\^)/) === 0) {\n\t\t\t\tvAlign = \"top\";\n\t\t\t} else if(this.parser.source.substr(this.parser.pos).search(/^,([^,]|,,)/) === 0) {\n\t\t\t\tvAlign = \"bottom\";\n\t\t\t}\n\t\t\tif(vAlign) {\n\t\t\t\tthis.parser.pos++;\n\t\t\t}\n\t\t\tvar chr = this.parser.source.substr(this.parser.pos,1);\n\t\t\twhile(chr === \" \") {\n\t\t\t\tspaceLeft = true;\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tchr = this.parser.source.substr(this.parser.pos,1);\n\t\t\t}\n\t\t\t// Check whether this is a heading cell\n\t\t\tvar cell;\n\t\t\tif(chr === \"!\") {\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tcell = {type: \"element\", tag: \"th\", children: []};\n\t\t\t} else {\n\t\t\t\tcell = {type: \"element\", tag: \"td\", children: []};\n\t\t\t}\n\t\t\ttree.push(cell);\n\t\t\t// Record information about this cell\n\t\t\tprevCell = cell;\n\t\t\tprevColumns[col] = {rowSpanCount:1,element:cell};\n\t\t\t// Check for a colspan\n\t\t\tif(colSpanCount > 1) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"colspan\",colSpanCount);\n\t\t\t\tcolSpanCount = 1;\n\t\t\t}\n\t\t\t// Parse the cell\n\t\t\tcell.children = this.parser.parseInlineRun(cellTermRegExp,{eatTerminator: true});\n\t\t\t// Set the alignment for the cell\n\t\t\tif(vAlign) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"valign\",vAlign);\n\t\t\t}\n\t\t\tif(this.parser.source.substr(this.parser.pos - 2,1) === \" \") { // spaceRight\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",spaceLeft ? \"center\" : \"left\");\n\t\t\t} else if(spaceLeft) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",\"right\");\n\t\t\t}\n\t\t\t// Move back to the closing `|`\n\t\t\tthis.parser.pos--;\n\t\t}\n\t\tcol++;\n\t\tcellRegExp.lastIndex = this.parser.pos;\n\t\tcellMatch = cellRegExp.exec(this.parser.source);\n\t}\n\treturn tree;\n};\n\nexports.parse = function() {\n\tvar rowContainerTypes = {\"c\":\"caption\", \"h\":\"thead\", \"\":\"tbody\", \"f\":\"tfoot\"},\n\t\ttable = {type: \"element\", tag: \"table\", children: []},\n\t\trowRegExp = /^\\|([^\\n]*)\\|([fhck]?)\\r?(?:\\n|$)/mg,\n\t\trowTermRegExp = /(\\|(?:[fhck]?)\\r?(?:\\n|$))/mg,\n\t\tprevColumns = [],\n\t\tcurrRowType,\n\t\trowContainer,\n\t\trowCount = 0;\n\t// Match the row\n\trowRegExp.lastIndex = this.parser.pos;\n\tvar rowMatch = rowRegExp.exec(this.parser.source);\n\twhile(rowMatch && rowMatch.index === this.parser.pos) {\n\t\tvar rowType = rowMatch[2];\n\t\t// Check if it is a class assignment\n\t\tif(rowType === \"k\") {\n\t\t\t$tw.utils.addClassToParseTreeNode(table,rowMatch[1]);\n\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t} else {\n\t\t\t// Otherwise, create a new row if this one is of a different type\n\t\t\tif(rowType !== currRowType) {\n\t\t\t\trowContainer = {type: \"element\", tag: rowContainerTypes[rowType], children: []};\n\t\t\t\ttable.children.push(rowContainer);\n\t\t\t\tcurrRowType = rowType;\n\t\t\t}\n\t\t\t// Is this a caption row?\n\t\t\tif(currRowType === \"c\") {\n\t\t\t\t// If so, move past the opening `|` of the row\n\t\t\t\tthis.parser.pos++;\n\t\t\t\t// Move the caption to the first row if it isn't already\n\t\t\t\tif(table.children.length !== 1) {\n\t\t\t\t\ttable.children.pop(); // Take rowContainer out of the children array\n\t\t\t\t\ttable.children.splice(0,0,rowContainer); // Insert it at the bottom\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t// Set the alignment - TODO: figure out why TW did this\n//\t\t\t\trowContainer.attributes.align = rowCount === 0 ? \"top\" : \"bottom\";\n\t\t\t\t// Parse the caption\n\t\t\t\trowContainer.children = this.parser.parseInlineRun(rowTermRegExp,{eatTerminator: true});\n\t\t\t} else {\n\t\t\t\t// Create the row\n\t\t\t\tvar theRow = {type: \"element\", tag: \"tr\", children: []};\n\t\t\t\t$tw.utils.addClassToParseTreeNode(theRow,rowCount%2 ? \"oddRow\" : \"evenRow\");\n\t\t\t\trowContainer.children.push(theRow);\n\t\t\t\t// Process the row\n\t\t\t\ttheRow.children = processRow.call(this,prevColumns);\n\t\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t\t\t// Increment the row count\n\t\t\t\trowCount++;\n\t\t\t}\n\t\t}\n\t\trowMatch = rowRegExp.exec(this.parser.source);\n\t}\n\treturn [table];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/transcludeblock.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/transcludeblock.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {},\n\t\t\tisBlock: true\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tisBlock: true,\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/transcludeinline.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/transcludeinline.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {}\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/typedblock.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/typedblock.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/typedblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for typed blocks. For example:\n\n```\n$$$.js\nThis will be rendered as JavaScript\n$$$\n\n$$$.svg\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"150\" height=\"100\">\n  <circle cx=\"100\" cy=\"50\" r=\"40\" stroke=\"black\" stroke-width=\"2\" fill=\"red\" />\n</svg>\n$$$\n\n$$$text/vnd.tiddlywiki>text/html\nThis will be rendered as an //HTML representation// of WikiText\n$$$\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.name = \"typedblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\$\\$\\$([^ >\\r\\n]*)(?: *> *([^ \\r\\n]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /\\r?\\n\\$\\$\\$\\r?(?:\\n|$)/mg;\n\t// Save the type\n\tvar parseType = this.match[1],\n\t\trenderType = this.match[2];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Parse the block according to the specified type\n\tvar parser = this.parser.wiki.parseText(parseType,text,{defaultType: \"text/plain\"});\n\t// If there's no render type, just return the parse tree\n\tif(!renderType) {\n\t\treturn parser.tree;\n\t} else {\n\t\t// Otherwise, render to the rendertype and return in a <PRE> tag\n\t\tvar widgetNode = this.parser.wiki.makeWidget(parser),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\ttext = renderType === \"text/html\" ? container.innerHTML : container.textContent;\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"pre\",\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/whitespace.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/whitespace.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/whitespace.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for whitespace specifications\n\n```\n\\whitespace trim\n\\whitespace notrim\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"whitespace\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\whitespace[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\tvar self = this;\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\t$tw.utils.each(tokens,function(token) {\n\t\tswitch(token) {\n\t\t\tcase \"trim\":\n\t\t\t\tself.parser.configTrimWhiteSpace = true;\n\t\t\t\tbreak;\n\t\t\tcase \"notrim\":\n\t\t\t\tself.parser.configTrimWhiteSpace = false;\n\t\t\t\tbreak;\n\t\t}\n\t});\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/wikilink.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/wikilink.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikilink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for wiki links. For example:\n\n```\nAWikiLink\nAnotherLink\n~SuppressedLink\n```\n\nPrecede a camel case word with `~` to prevent it from being recognised as a link.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"wikilink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp($tw.config.textPrimitives.unWikiLink + \"?\" + $tw.config.textPrimitives.wikiLink,\"mg\");\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get the details of the match\n\tvar linkText = this.match[0];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// If the link starts with the unwikilink character then just output it as plain text\n\tif(linkText.substr(0,1) === $tw.config.textPrimitives.unWikiLink) {\n\t\treturn [{type: \"text\", text: linkText.substr(1)}];\n\t}\n\t// If the link has been preceded with a blocked letter then don't treat it as a link\n\tif(this.match.index > 0) {\n\t\tvar preRegExp = new RegExp($tw.config.textPrimitives.blockPrefixLetters,\"mg\");\n\t\tpreRegExp.lastIndex = this.match.index-1;\n\t\tvar preMatch = preRegExp.exec(this.parser.source);\n\t\tif(preMatch && preMatch.index === this.match.index-1) {\n\t\t\treturn [{type: \"text\", text: linkText}];\n\t\t}\n\t}\n\treturn [{\n\t\ttype: \"link\",\n\t\tattributes: {\n\t\t\tto: {type: \"string\", value: linkText}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: linkText\n\t\t}]\n\t}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/wikiparser.js": {
            "title": "$:/core/modules/parsers/wikiparser/wikiparser.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/wikiparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe wiki text parser processes blocks of source text into a parse tree.\n\nThe parse tree is made up of nested arrays of these JavaScript objects:\n\n\t{type: \"element\", tag: <string>, attributes: {}, children: []} - an HTML element\n\t{type: \"text\", text: <string>} - a text node\n\t{type: \"entity\", value: <string>} - an entity\n\t{type: \"raw\", html: <string>} - raw HTML\n\nAttributes are stored as hashmaps of the following objects:\n\n\t{type: \"string\", value: <string>} - literal string\n\t{type: \"indirect\", textReference: <textReference>} - indirect through a text reference\n\t{type: \"macro\", macro: <TBD>} - indirect through a macro invocation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar WikiParser = function(type,text,options) {\n\tthis.wiki = options.wiki;\n\tvar self = this;\n\t// Check for an externally linked tiddler\n\tif($tw.browser && (text || \"\") === \"\" && options._canonical_uri) {\n\t\tthis.loadRemoteTiddler(options._canonical_uri);\n\t\ttext = $tw.language.getRawString(\"LazyLoadingWarning\");\n\t}\n\t// Initialise the classes if we don't have them already\n\tif(!this.pragmaRuleClasses) {\n\t\tWikiParser.prototype.pragmaRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"pragma\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.pragmaRuleClasses,\"$:/config/WikiParserRules/Pragmas/\");\n\t}\n\tif(!this.blockRuleClasses) {\n\t\tWikiParser.prototype.blockRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"block\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.blockRuleClasses,\"$:/config/WikiParserRules/Block/\");\n\t}\n\tif(!this.inlineRuleClasses) {\n\t\tWikiParser.prototype.inlineRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"inline\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.inlineRuleClasses,\"$:/config/WikiParserRules/Inline/\");\n\t}\n\t// Save the parse text\n\tthis.type = type || \"text/vnd.tiddlywiki\";\n\tthis.source = text || \"\";\n\tthis.sourceLength = this.source.length;\n\t// Flag for ignoring whitespace\n\tthis.configTrimWhiteSpace = false;\n\t// Set current parse position\n\tthis.pos = 0;\n\t// Instantiate the pragma parse rules\n\tthis.pragmaRules = this.instantiateRules(this.pragmaRuleClasses,\"pragma\",0);\n\t// Instantiate the parser block and inline rules\n\tthis.blockRules = this.instantiateRules(this.blockRuleClasses,\"block\",0);\n\tthis.inlineRules = this.instantiateRules(this.inlineRuleClasses,\"inline\",0);\n\t// Parse any pragmas\n\tthis.tree = [];\n\tvar topBranch = this.parsePragmas();\n\t// Parse the text into inline runs or blocks\n\tif(options.parseAsInline) {\n\t\ttopBranch.push.apply(topBranch,this.parseInlineRun());\n\t} else {\n\t\ttopBranch.push.apply(topBranch,this.parseBlocks());\n\t}\n\t// Return the parse tree\n};\n\n/*\n*/\nWikiParser.prototype.loadRemoteTiddler = function(url) {\n\tvar self = this;\n\t$tw.utils.httpRequest({\n\t\turl: url,\n\t\ttype: \"GET\",\n\t\tcallback: function(err,data) {\n\t\t\tif(!err) {\n\t\t\t\tvar tiddlers = self.wiki.deserializeTiddlers(\".tid\",data,self.wiki.getCreationFields());\n\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\ttiddler[\"_canonical_uri\"] = url;\n\t\t\t\t});\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tself.wiki.addTiddlers(tiddlers);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\n*/\nWikiParser.prototype.setupRules = function(proto,configPrefix) {\n\tvar self = this;\n\tif(!$tw.safemode) {\n\t\t$tw.utils.each(proto,function(object,name) {\n\t\t\tif(self.wiki.getTiddlerText(configPrefix + name,\"enable\") !== \"enable\") {\n\t\t\t\tdelete proto[name];\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nInstantiate an array of parse rules\n*/\nWikiParser.prototype.instantiateRules = function(classes,type,startPos) {\n\tvar rulesInfo = [],\n\t\tself = this;\n\t$tw.utils.each(classes,function(RuleClass) {\n\t\t// Instantiate the rule\n\t\tvar rule = new RuleClass(self);\n\t\trule.is = {};\n\t\trule.is[type] = true;\n\t\trule.init(self);\n\t\tvar matchIndex = rule.findNextMatch(startPos);\n\t\tif(matchIndex !== undefined) {\n\t\t\trulesInfo.push({\n\t\t\t\trule: rule,\n\t\t\t\tmatchIndex: matchIndex\n\t\t\t});\n\t\t}\n\t});\n\treturn rulesInfo;\n};\n\n/*\nSkip any whitespace at the current position. Options are:\n\ttreatNewlinesAsNonWhitespace: true if newlines are NOT to be treated as whitespace\n*/\nWikiParser.prototype.skipWhitespace = function(options) {\n\toptions = options || {};\n\tvar whitespaceRegExp = options.treatNewlinesAsNonWhitespace ? /([^\\S\\n]+)/mg : /(\\s+)/mg;\n\twhitespaceRegExp.lastIndex = this.pos;\n\tvar whitespaceMatch = whitespaceRegExp.exec(this.source);\n\tif(whitespaceMatch && whitespaceMatch.index === this.pos) {\n\t\tthis.pos = whitespaceRegExp.lastIndex;\n\t}\n};\n\n/*\nGet the next match out of an array of parse rule instances\n*/\nWikiParser.prototype.findNextMatch = function(rules,startPos) {\n\t// Find the best matching rule by finding the closest match position\n\tvar matchingRule,\n\t\tmatchingRulePos = this.sourceLength;\n\t// Step through each rule\n\tfor(var t=0; t<rules.length; t++) {\n\t\tvar ruleInfo = rules[t];\n\t\t// Ask the rule to get the next match if we've moved past the current one\n\t\tif(ruleInfo.matchIndex !== undefined  && ruleInfo.matchIndex < startPos) {\n\t\t\truleInfo.matchIndex = ruleInfo.rule.findNextMatch(startPos);\n\t\t}\n\t\t// Adopt this match if it's closer than the current best match\n\t\tif(ruleInfo.matchIndex !== undefined && ruleInfo.matchIndex <= matchingRulePos) {\n\t\t\tmatchingRule = ruleInfo;\n\t\t\tmatchingRulePos = ruleInfo.matchIndex;\n\t\t}\n\t}\n\treturn matchingRule;\n};\n\n/*\nParse any pragmas at the beginning of a block of parse text\n*/\nWikiParser.prototype.parsePragmas = function() {\n\tvar currentTreeBranch = this.tree;\n\twhile(true) {\n\t\t// Skip whitespace\n\t\tthis.skipWhitespace();\n\t\t// Check for the end of the text\n\t\tif(this.pos >= this.sourceLength) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check if we've arrived at a pragma rule match\n\t\tvar nextMatch = this.findNextMatch(this.pragmaRules,this.pos);\n\t\t// If not, just exit\n\t\tif(!nextMatch || nextMatch.matchIndex !== this.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the pragma rule\n\t\tvar subTree = nextMatch.rule.parse();\n\t\tif(subTree.length > 0) {\n\t\t\t// Quick hack; we only cope with a single parse tree node being returned, which is true at the moment\n\t\t\tcurrentTreeBranch.push.apply(currentTreeBranch,subTree);\n\t\t\tsubTree[0].children = [];\n\t\t\tcurrentTreeBranch = subTree[0].children;\n\t\t}\n\t}\n\treturn currentTreeBranch;\n};\n\n/*\nParse a block from the current position\n\tterminatorRegExpString: optional regular expression string that identifies the end of plain paragraphs. Must not include capturing parenthesis\n*/\nWikiParser.prototype.parseBlock = function(terminatorRegExpString) {\n\tvar terminatorRegExp = terminatorRegExpString ? new RegExp(\"(\" + terminatorRegExpString + \"|\\\\r?\\\\n\\\\r?\\\\n)\",\"mg\") : /(\\r?\\n\\r?\\n)/mg;\n\tthis.skipWhitespace();\n\tif(this.pos >= this.sourceLength) {\n\t\treturn [];\n\t}\n\t// Look for a block rule that applies at the current position\n\tvar nextMatch = this.findNextMatch(this.blockRules,this.pos);\n\tif(nextMatch && nextMatch.matchIndex === this.pos) {\n\t\treturn nextMatch.rule.parse();\n\t}\n\t// Treat it as a paragraph if we didn't find a block rule\n\treturn [{type: \"element\", tag: \"p\", children: this.parseInlineRun(terminatorRegExp)}];\n};\n\n/*\nParse a series of blocks of text until a terminating regexp is encountered or the end of the text\n\tterminatorRegExpString: terminating regular expression\n*/\nWikiParser.prototype.parseBlocks = function(terminatorRegExpString) {\n\tif(terminatorRegExpString) {\n\t\treturn this.parseBlocksTerminated(terminatorRegExpString);\n\t} else {\n\t\treturn this.parseBlocksUnterminated();\n\t}\n};\n\n/*\nParse a block from the current position to the end of the text\n*/\nWikiParser.prototype.parseBlocksUnterminated = function() {\n\tvar tree = [];\n\twhile(this.pos < this.sourceLength) {\n\t\ttree.push.apply(tree,this.parseBlock());\n\t}\n\treturn tree;\n};\n\n/*\nParse blocks of text until a terminating regexp is encountered\n*/\nWikiParser.prototype.parseBlocksTerminated = function(terminatorRegExpString) {\n\tvar terminatorRegExp = new RegExp(\"(\" + terminatorRegExpString + \")\",\"mg\"),\n\t\ttree = [];\n\t// Skip any whitespace\n\tthis.skipWhitespace();\n\t//  Check if we've got the end marker\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar match = terminatorRegExp.exec(this.source);\n\t// Parse the text into blocks\n\twhile(this.pos < this.sourceLength && !(match && match.index === this.pos)) {\n\t\tvar blocks = this.parseBlock(terminatorRegExpString);\n\t\ttree.push.apply(tree,blocks);\n\t\t// Skip any whitespace\n\t\tthis.skipWhitespace();\n\t\t//  Check if we've got the end marker\n\t\tterminatorRegExp.lastIndex = this.pos;\n\t\tmatch = terminatorRegExp.exec(this.source);\n\t}\n\tif(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t}\n\treturn tree;\n};\n\n/*\nParse a run of text at the current position\n\tterminatorRegExp: a regexp at which to stop the run\n\toptions: see below\nOptions available:\n\teatTerminator: move the parse position past any encountered terminator (default false)\n*/\nWikiParser.prototype.parseInlineRun = function(terminatorRegExp,options) {\n\tif(terminatorRegExp) {\n\t\treturn this.parseInlineRunTerminated(terminatorRegExp,options);\n\t} else {\n\t\treturn this.parseInlineRunUnterminated(options);\n\t}\n};\n\nWikiParser.prototype.parseInlineRunUnterminated = function(options) {\n\tvar tree = [];\n\t// Find the next occurrence of an inline rule\n\tvar nextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around the matches until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && nextMatch) {\n\t\t// Process the text preceding the run rule\n\t\tif(nextMatch.matchIndex > this.pos) {\n\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,nextMatch.matchIndex));\n\t\t\tthis.pos = nextMatch.matchIndex;\n\t\t}\n\t\t// Process the run rule\n\t\ttree.push.apply(tree,nextMatch.rule.parse());\n\t\t// Look for the next run rule\n\t\tnextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\tthis.pushTextWidget(tree,this.source.substr(this.pos));\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\nWikiParser.prototype.parseInlineRunTerminated = function(terminatorRegExp,options) {\n\toptions = options || {};\n\tvar tree = [];\n\t// Find the next occurrence of the terminator\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar terminatorMatch = terminatorRegExp.exec(this.source);\n\t// Find the next occurrence of a inlinerule\n\tvar inlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && (terminatorMatch || inlineRuleMatch)) {\n\t\t// Return if we've found the terminator, and it precedes any inline rule match\n\t\tif(terminatorMatch) {\n\t\t\tif(!inlineRuleMatch || inlineRuleMatch.matchIndex >= terminatorMatch.index) {\n\t\t\t\tif(terminatorMatch.index > this.pos) {\n\t\t\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,terminatorMatch.index));\n\t\t\t\t}\n\t\t\t\tthis.pos = terminatorMatch.index;\n\t\t\t\tif(options.eatTerminator) {\n\t\t\t\t\tthis.pos += terminatorMatch[0].length;\n\t\t\t\t}\n\t\t\t\treturn tree;\n\t\t\t}\n\t\t}\n\t\t// Process any inline rule, along with the text preceding it\n\t\tif(inlineRuleMatch) {\n\t\t\t// Preceding text\n\t\t\tif(inlineRuleMatch.matchIndex > this.pos) {\n\t\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,inlineRuleMatch.matchIndex));\n\t\t\t\tthis.pos = inlineRuleMatch.matchIndex;\n\t\t\t}\n\t\t\t// Process the inline rule\n\t\t\ttree.push.apply(tree,inlineRuleMatch.rule.parse());\n\t\t\t// Look for the next inline rule\n\t\t\tinlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t\t\t// Look for the next terminator match\n\t\t\tterminatorRegExp.lastIndex = this.pos;\n\t\t\tterminatorMatch = terminatorRegExp.exec(this.source);\n\t\t}\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\tthis.pushTextWidget(tree,this.source.substr(this.pos));\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\n/*\nPush a text widget onto an array, respecting the configTrimWhiteSpace setting\n*/\nWikiParser.prototype.pushTextWidget = function(array,text) {\n\tif(this.configTrimWhiteSpace) {\n\t\ttext = $tw.utils.trim(text);\n\t}\n\tif(text) {\n\t\tarray.push({type: \"text\", text: text});\t\t\n\t}\n};\n\n/*\nParse zero or more class specifiers `.classname`\n*/\nWikiParser.prototype.parseClasses = function() {\n\tvar classRegExp = /\\.([^\\s\\.]+)/mg,\n\t\tclassNames = [];\n\tclassRegExp.lastIndex = this.pos;\n\tvar match = classRegExp.exec(this.source);\n\twhile(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t\tclassNames.push(match[1]);\n\t\tmatch = classRegExp.exec(this.source);\n\t}\n\treturn classNames;\n};\n\n/*\nAmend the rules used by this instance of the parser\n\ttype: `only` keeps just the named rules, `except` keeps all but the named rules\n\tnames: array of rule names\n*/\nWikiParser.prototype.amendRules = function(type,names) {\n\tnames = names || [];\n\t// Define the filter function\n\tvar target;\n\tif(type === \"only\") {\n\t\ttarget = true;\n\t} else if(type === \"except\") {\n\t\ttarget = false;\n\t} else {\n\t\treturn;\n\t}\n\t// Define a function to process each of our rule arrays\n\tvar processRuleArray = function(ruleArray) {\n\t\tfor(var t=ruleArray.length-1; t>=0; t--) {\n\t\t\tif((names.indexOf(ruleArray[t].rule.name) === -1) === target) {\n\t\t\t\truleArray.splice(t,1);\n\t\t\t}\n\t\t}\n\t};\n\t// Process each rule array\n\tprocessRuleArray(this.pragmaRules);\n\tprocessRuleArray(this.blockRules);\n\tprocessRuleArray(this.inlineRules);\n};\n\nexports[\"text/vnd.tiddlywiki\"] = WikiParser;\n\n})();\n\n",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/wikiparser/rules/wikirulebase.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/wikirulebase.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikirulebase.js\ntype: application/javascript\nmodule-type: global\n\nBase class for wiki parser rules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nThis constructor is always overridden with a blank constructor, and so shouldn't be used\n*/\nvar WikiRuleBase = function() {\n};\n\n/*\nTo be overridden by individual rules\n*/\nWikiRuleBase.prototype.init = function(parser) {\n\tthis.parser = parser;\n};\n\n/*\nDefault implementation of findNextMatch uses RegExp matching\n*/\nWikiRuleBase.prototype.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\treturn this.match ? this.match.index : undefined;\n};\n\nexports.WikiRuleBase = WikiRuleBase;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/pluginswitcher.js": {
            "title": "$:/core/modules/pluginswitcher.js",
            "text": "/*\\\ntitle: $:/core/modules/pluginswitcher.js\ntype: application/javascript\nmodule-type: global\n\nManages switching plugins for themes and languages.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\noptions:\nwiki: wiki store to be used\npluginType: type of plugin to be switched\ncontrollerTitle: title of tiddler used to control switching of this resource\ndefaultPlugins: array of default plugins to be used if nominated plugin isn't found\nonSwitch: callback when plugin is switched (single parameter is array of plugin titles)\n*/\nfunction PluginSwitcher(options) {\n\tthis.wiki = options.wiki;\n\tthis.pluginType = options.pluginType;\n\tthis.controllerTitle = options.controllerTitle;\n\tthis.defaultPlugins = options.defaultPlugins || [];\n\tthis.onSwitch = options.onSwitch;\n\t// Switch to the current plugin\n\tthis.switchPlugins();\n\t// Listen for changes to the selected plugin\n\tvar self = this;\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,self.controllerTitle)) {\n\t\t\tself.switchPlugins();\n\t\t}\n\t});\n}\n\nPluginSwitcher.prototype.switchPlugins = function() {\n\t// Get the name of the current theme\n\tvar selectedPluginTitle = this.wiki.getTiddlerText(this.controllerTitle);\n\t// If it doesn't exist, then fallback to one of the default themes\n\tvar index = 0;\n\twhile(!this.wiki.getTiddler(selectedPluginTitle) && index < this.defaultPlugins.length) {\n\t\tselectedPluginTitle = this.defaultPlugins[index++];\n\t}\n\t// Accumulate the titles of the plugins that we need to load\n\tvar plugins = [],\n\t\tself = this,\n\t\taccumulatePlugin = function(title) {\n\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\tif(tiddler && tiddler.isPlugin() && plugins.indexOf(title) === -1) {\n\t\t\t\tplugins.push(title);\n\t\t\t\tvar pluginInfo = JSON.parse(self.wiki.getTiddlerText(title)),\n\t\t\t\t\tdependents = $tw.utils.parseStringArray(tiddler.fields.dependents || \"\");\n\t\t\t\t$tw.utils.each(dependents,function(title) {\n\t\t\t\t\taccumulatePlugin(title);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\taccumulatePlugin(selectedPluginTitle);\n\t// Read the plugin info for the incoming plugins\n\tvar changes = $tw.wiki.readPluginInfo(plugins);\n\t// Unregister any existing theme tiddlers\n\tvar unregisteredTiddlers = $tw.wiki.unregisterPluginTiddlers(this.pluginType);\n\t// Register any new theme tiddlers\n\tvar registeredTiddlers = $tw.wiki.registerPluginTiddlers(this.pluginType,plugins);\n\t// Unpack the current theme tiddlers\n\t$tw.wiki.unpackPluginTiddlers();\n\t// Call the switch handler\n\tif(this.onSwitch) {\n\t\tthis.onSwitch(plugins);\n\t}\n};\n\nexports.PluginSwitcher = PluginSwitcher;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/saver-handler.js": {
            "title": "$:/core/modules/saver-handler.js",
            "text": "/*\\\ntitle: $:/core/modules/saver-handler.js\ntype: application/javascript\nmodule-type: global\n\nThe saver handler tracks changes to the store and handles saving the entire wiki via saver modules.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInstantiate the saver handler with the following options:\nwiki: wiki to be synced\ndirtyTracking: true if dirty tracking should be performed\n*/\nfunction SaverHandler(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\tthis.dirtyTracking = options.dirtyTracking;\n\tthis.preloadDirty = options.preloadDirty || [];\n\tthis.pendingAutoSave = false;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"saver-handler\");\n\t// Initialise our savers\n\tif($tw.browser) {\n\t\tthis.initSavers();\n\t}\n\t// Only do dirty tracking if required\n\tif($tw.browser && this.dirtyTracking) {\n\t\t// Compile the dirty tiddler filter\n\t\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t\t// Count of changes that have not yet been saved\n\t\tvar filteredChanges = self.filterFn.call(self.wiki,function(iterator) {\n\t\t\t\t$tw.utils.each(self.preloadDirty,function(title) {\n\t\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\t\titerator(tiddler,title);\n\t\t\t\t});\n\t\t});\n\t\tthis.numChanges = filteredChanges.length;\n\t\t// Listen out for changes to tiddlers\n\t\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\t\t// Filter the changes so that we only count changes to tiddlers that we care about\n\t\t\tvar filteredChanges = self.filterFn.call(self.wiki,function(iterator) {\n\t\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\t\titerator(tiddler,title);\n\t\t\t\t});\n\t\t\t});\n\t\t\t// Adjust the number of changes\n\t\t\tself.numChanges += filteredChanges.length;\n\t\t\tself.updateDirtyStatus();\n\t\t\t// Do any autosave if one is pending and there's no more change events\n\t\t\tif(self.pendingAutoSave && self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tself.pendingAutoSave = false;\n\t\t\t}\n\t\t});\n\t\t// Listen for the autosave event\n\t\t$tw.rootWidget.addEventListener(\"tm-auto-save-wiki\",function(event) {\n\t\t\t// Do the autosave unless there are outstanding tiddler change events\n\t\t\tif(self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise put ourselves in the \"pending autosave\" state and wait for the change event before we do the autosave\n\t\t\t\tself.pendingAutoSave = true;\n\t\t\t}\n\t\t});\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t}\n\t// Install the save action handlers\n\tif($tw.browser) {\n\t\t$tw.rootWidget.addEventListener(\"tm-save-wiki\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-download-file\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\tmethod: \"download\",\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t}\n}\n\nSaverHandler.prototype.titleSyncFilter = \"$:/config/SaverFilter\";\nSaverHandler.prototype.titleAutoSave = \"$:/config/AutoSave\";\nSaverHandler.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\n\n/*\nSelect the appropriate saver modules and set them up\n*/\nSaverHandler.prototype.initSavers = function(moduleType) {\n\tmoduleType = moduleType || \"saver\";\n\t// Instantiate the available savers\n\tthis.savers = [];\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tif(module.canSave(self)) {\n\t\t\tself.savers.push(module.create(self.wiki));\n\t\t}\n\t});\n\t// Sort the savers into priority order\n\tthis.savers.sort(function(a,b) {\n\t\tif(a.info.priority < b.info.priority) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(a.info.priority > b.info.priority) {\n\t\t\t\treturn +1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nSave the wiki contents. Options are:\n\tmethod: \"save\", \"autosave\" or \"download\"\n\ttemplate: the tiddler containing the template to save\n\tdownloadType: the content type for the saved file\n*/\nSaverHandler.prototype.saveWiki = function(options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tmethod = options.method || \"save\";\n\t// Ignore autosave if disabled\n\tif(method === \"autosave\" && ($tw.config.disableAutoSave || this.wiki.getTiddlerText(this.titleAutoSave,\"yes\") !== \"yes\")) {\n\t\treturn false;\n\t}\n\tvar\tvariables = options.variables || {},\n\t\ttemplate = options.template || \"$:/core/save/all\",\n\t\tdownloadType = options.downloadType || \"text/plain\",\n\t\ttext = this.wiki.renderTiddler(downloadType,template,options),\n\t\tcallback = function(err) {\n\t\t\tif(err) {\n\t\t\t\talert($tw.language.getString(\"Error/WhileSaving\") + \":\\n\\n\" + err);\n\t\t\t} else {\n\t\t\t\t// Clear the task queue if we're saving (rather than downloading)\n\t\t\t\tif(method !== \"download\") {\n\t\t\t\t\tself.numChanges = 0;\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t}\n\t\t\t\t$tw.notifier.display(self.titleSavedNotification);\n\t\t\t\tif(options.callback) {\n\t\t\t\t\toptions.callback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t// Call the highest priority saver that supports this method\n\tfor(var t=this.savers.length-1; t>=0; t--) {\n\t\tvar saver = this.savers[t];\n\t\tif(saver.info.capabilities.indexOf(method) !== -1 && saver.save(text,method,callback,{variables: {filename: variables.filename}})) {\n\t\t\tthis.logger.log(\"Saving wiki with method\",method,\"through saver\",saver.info.name);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSaverHandler.prototype.isDirty = function() {\n\treturn this.numChanges > 0;\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSaverHandler.prototype.updateDirtyStatus = function() {\n\tvar self = this;\n\tif($tw.browser) {\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",this.isDirty());\n\t\t$tw.utils.each($tw.windows,function(win) {\n\t\t\t$tw.utils.toggleClass(win.document.body,\"tc-dirty\",self.isDirty());\n\t\t});\n\t}\n};\n\nexports.SaverHandler = SaverHandler;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/savers/andtidwiki.js": {
            "title": "$:/core/modules/savers/andtidwiki.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/andtidwiki.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the AndTidWiki Android app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar AndTidWiki = function(wiki) {\n};\n\nAndTidWiki.prototype.save = function(text,method,callback,options) {\n\tvar filename = options && options.variables ? options.variables.filename : null;\n\tif (method === \"download\") {\n\t\t// Support download\n\t\tif (window.twi.saveDownload) {\n\t\t\ttry {\n\t\t\t\twindow.twi.saveDownload(text,filename);\n\t\t\t} catch(err) {\n\t\t\t\tif (err.message === \"Method not found\") {\n\t\t\t\t\twindow.twi.saveDownload(text);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tvar link = document.createElement(\"a\");\n\t\t\tlink.setAttribute(\"href\",\"data:text/plain,\" + encodeURIComponent(text));\n\t\t\tif (filename) {\n\t\t\t    link.setAttribute(\"download\",filename);\n\t\t\t}\n\t\t\tdocument.body.appendChild(link);\n\t\t\tlink.click();\n\t\t\tdocument.body.removeChild(link);\n\t\t}\n\t} else if (window.twi.saveWiki) {\n\t\t// Direct save in Tiddloid\n\t\twindow.twi.saveWiki(text);\n\t} else {\n\t\t// Get the pathname of this document\n\t\tvar pathname = decodeURIComponent(document.location.toString().split(\"#\")[0]);\n\t\t// Strip the file://\n\t\tif(pathname.indexOf(\"file://\") === 0) {\n\t\t\tpathname = pathname.substr(7);\n\t\t}\n\t\t// Strip any query or location part\n\t\tvar p = pathname.indexOf(\"?\");\n\t\tif(p !== -1) {\n\t\t\tpathname = pathname.substr(0,p);\n\t\t}\n\t\tp = pathname.indexOf(\"#\");\n\t\tif(p !== -1) {\n\t\t\tpathname = pathname.substr(0,p);\n\t\t}\n\t\t// Save the file\n\t\twindow.twi.saveFile(pathname,text);\n\t}\n\t// Call the callback\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nAndTidWiki.prototype.info = {\n\tname: \"andtidwiki\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.twi && !!window.twi.saveFile;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new AndTidWiki(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/beaker.js": {
            "title": "$:/core/modules/savers/beaker.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/beaker.js\ntype: application/javascript\nmodule-type: saver\n\nSaves files using the Beaker browser's (https://beakerbrowser.com) Dat protocol (https://datproject.org/)\nCompatible with beaker >= V0.7.2\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet up the saver\n*/\nvar BeakerSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nBeakerSaver.prototype.save = function(text,method,callback) {\n\tvar dat = new DatArchive(\"\" + window.location),\n\t\tpathname = (\"\" + window.location.pathname).split(\"#\")[0];\n\tdat.stat(pathname).then(function(value) {\n\t\tif(value.isDirectory()) {\n\t\t\tpathname = pathname + \"/index.html\";\n\t\t}\n\t\tdat.writeFile(pathname,text,\"utf8\").then(function(value) {\n\t\t\tcallback(null);\n\t\t},function(reason) {\n\t\t\tcallback(\"Beaker Saver Write Error: \" + reason);\n\t\t});\n\t},function(reason) {\n\t\tcallback(\"Beaker Saver Stat Error: \" + reason);\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nBeakerSaver.prototype.info = {\n\tname: \"beaker\",\n\tpriority: 3000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.DatArchive && location.protocol===\"dat:\";\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new BeakerSaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/custom.js": {
            "title": "$:/core/modules/savers/custom.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/custom.js\ntype: application/javascript\nmodule-type: saver\n\nLooks for `window.$tw.customSaver` first on the current window, then\non the parent window (of an iframe). If present, the saver must define\n\tsave: function(text,method,callback) { ... }\nand the saver may define\n\tpriority: number\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar findSaver = function(window) {\n\ttry {\n\t\treturn window && window.$tw && window.$tw.customSaver;\n\t} catch (err) {\n\t\t// Catching the exception is the most reliable way to detect cross-origin iframe errors.\n\t\t// For example, instead of saying that `window.parent.$tw` is undefined, Firefox will throw\n\t\t//   Uncaught DOMException: Permission denied to access property \"$tw\" on cross-origin object\n\t\tconsole.log({ msg: \"custom saver is disabled\", reason: err });\n\t\treturn null;\n\t}\n}\nvar saver = findSaver(window) || findSaver(window.parent) || {};\n\nvar CustomSaver = function(wiki) {\n};\n\nCustomSaver.prototype.save = function(text,method,callback) {\n\treturn saver.save(text, method, callback);\n};\n\n/*\nInformation about this saver\n*/\nCustomSaver.prototype.info = {\n\tname: \"custom\",\n\tpriority: saver.priority || 4000,\n\tcapabilities: [\"save\",\"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!(saver.save);\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new CustomSaver(wiki);\n};\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/download.js": {
            "title": "$:/core/modules/savers/download.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/download.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar DownloadSaver = function(wiki) {\n};\n\nDownloadSaver.prototype.save = function(text,method,callback,options) {\n\toptions = options || {};\n\t// Get the current filename\n\tvar filename = options.variables.filename;\n\tif(!filename) {\n\t\tvar p = document.location.pathname.lastIndexOf(\"/\");\n\t\tif(p !== -1) {\n\t\t\t// We decode the pathname because document.location is URL encoded by the browser\n\t\t\tfilename = decodeURIComponent(document.location.pathname.substr(p+1));\n\t\t}\n\t}\n\tif(!filename) {\n\t\tfilename = \"tiddlywiki.html\";\n\t}\n\t// Set up the link\n\tvar link = document.createElement(\"a\");\n\tif(Blob !== undefined) {\n\t\tvar blob = new Blob([text], {type: \"text/html\"});\n\t\tlink.setAttribute(\"href\", URL.createObjectURL(blob));\n\t} else {\n\t\tlink.setAttribute(\"href\",\"data:text/html,\" + encodeURIComponent(text));\n\t}\n\tlink.setAttribute(\"download\",filename);\n\tdocument.body.appendChild(link);\n\tlink.click();\n\tdocument.body.removeChild(link);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nDownloadSaver.prototype.info = {\n\tname: \"download\",\n\tpriority: 100\n};\n\nObject.defineProperty(DownloadSaver.prototype.info, \"capabilities\", {\n\tget: function() {\n\t\tvar capabilities = [\"save\", \"download\"];\n\t\tif(($tw.wiki.getTextReference(\"$:/config/DownloadSaver/AutoSave\") || \"\").toLowerCase() === \"yes\") {\n\t\t\tcapabilities.push(\"autosave\");\n\t\t}\n\t\treturn capabilities;\n\t}\n});\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn document.createElement(\"a\").download !== undefined;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new DownloadSaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/fsosaver.js": {
            "title": "$:/core/modules/savers/fsosaver.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/fsosaver.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via MS FileSystemObject ActiveXObject\n\nNote: Since TiddlyWiki's markup contains the MOTW, the FileSystemObject normally won't be available. \nHowever, if the wiki is loaded as an .HTA file (Windows HTML Applications) then the FSO can be used.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar FSOSaver = function(wiki) {\n};\n\nFSOSaver.prototype.save = function(text,method,callback) {\n\t// Get the pathname of this document\n\tvar pathname = unescape(document.location.pathname);\n\t// Test for a Windows path of the form /x:\\blah...\n\tif(/^\\/[A-Z]\\:\\\\[^\\\\]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t} else if(document.location.hostname !== \"\" && /^\\/\\\\[^\\\\]+\\\\[^\\\\]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t\t// reconstruct UNC path\n\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t} else {\n\t\treturn false;\n\t}\n\t// Save the file (as UTF-16)\n\tvar fso = new ActiveXObject(\"Scripting.FileSystemObject\");\n\tvar file = fso.OpenTextFile(pathname,2,-1,-1);\n\tfile.Write(text);\n\tfile.Close();\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nFSOSaver.prototype.info = {\n\tname: \"FSOSaver\",\n\tpriority: 120,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\ttry {\n\t\treturn (window.location.protocol === \"file:\") && !!(new ActiveXObject(\"Scripting.FileSystemObject\"));\n\t} catch(e) { return false; }\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new FSOSaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/gitea.js": {
            "title": "$:/core/modules/savers/gitea.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/gitea.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the gitea\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GiteaSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGiteaSaver.prototype.save = function(text,method,callback) {\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/Gitea/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"Gitea\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/Gitea/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/Gitea/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/Gitea/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/Gitea/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/Gitea/ServerURL\") || \"https://gitea\",\n\t\theaders = {\n\t\t\t\"Accept\": \"application/json\",\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Authorization\": \"token \" + password\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/repos/\" + repo + \"/contents\" + path;\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tdata: {\n\t\t\tref: branch\n\t\t},\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar use_put = true;\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(sha === \"\"){\n\t\t\t\t\tuse_put = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tmessage: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: $tw.utils.base64Encode(text),\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: endpoint + \"/repos/\" + repo + \"/branches/\" + branch,\n\t\t\t\ttype: \"GET\",\n\t\t\t\theaders: headers,\n\t\t\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\t\t\tif(xhr.status === 404) {\n\t\t\t\t\t\tcallback(\"Please ensure the branch in the Gitea repo exists\");\n\t\t\t\t\t}else{\n\t\t\t\t\t\tdata[\"branch\"] = branch;\n\t\t\t\t\t\tself.upload(uri + filename, use_put?\"PUT\":\"POST\", headers, data, callback);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\nGiteaSaver.prototype.upload = function(uri,method,headers,data,callback) {\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: method,\n\t\theaders: headers,\n\t\tdata: JSON.stringify(data),\n\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\tcallback(null);\n\t\t}\n\t});\n};\n\n/*\nInformation about this saver\n*/\nGiteaSaver.prototype.info = {\n\tname: \"Gitea\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GiteaSaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/github.js": {
            "title": "$:/core/modules/savers/github.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/github.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the GitHub v3 REST API\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GitHubSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGitHubSaver.prototype.save = function(text,method,callback) {\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/GitHub/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"github\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/GitHub/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/GitHub/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/GitHub/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/GitHub/Branch\") || \"main\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/GitHub/ServerURL\") || \"https://api.github.com\",\n\t\theaders = {\n\t\t\t\"Accept\": \"application/vnd.github.v3+json\",\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Authorization\": \"Basic \" + window.btoa(username + \":\" + password),\n\t\t\t\"If-None-Match\": \"\"\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/repos/\" + repo + \"/contents\" + path;\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tdata: {\n\t\t\tref: branch\n\t\t},\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tmessage: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: $tw.utils.base64Encode(text),\n\t\t\t\tbranch: branch,\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t// Perform a PUT request to save the file\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: uri + filename,\n\t\t\t\ttype: \"PUT\",\n\t\t\t\theaders: headers,\n\t\t\t\tdata: JSON.stringify(data),\n\t\t\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\treturn callback(err);\n\t\t\t\t\t}\n\t\t\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\t\t\tcallback(null);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nGitHubSaver.prototype.info = {\n\tname: \"github\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GitHubSaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/gitlab.js": {
            "title": "$:/core/modules/savers/gitlab.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/gitlab.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the GitLab REST API\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: true */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GitLabSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGitLabSaver.prototype.save = function(text,method,callback) {\n\t/* See https://docs.gitlab.com/ee/api/repository_files.html */\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/GitLab/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"gitlab\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/GitLab/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/GitLab/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/GitLab/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/GitLab/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/GitLab/ServerURL\") || \"https://gitlab.com/api/v4\",\n\t\theaders = {\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Private-Token\": password\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/projects/\" + encodeURIComponent(repo) + \"/repository/\";\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri + \"tree/?path=\" + encodeURIComponent(path.replace(/^\\/+|\\/$/g, '')) + \"&branch=\" + encodeURIComponent(branch.replace(/^\\/+|\\/$/g, '')),\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar requestType = \"POST\";\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\trequestType = \"PUT\";\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tcommit_message: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: text,\n\t\t\t\tbranch: branch,\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t// Perform a request to save the file\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: uri + \"files/\" + encodeURIComponent(path.replace(/^\\/+/, '') + filename),\n\t\t\t\ttype: requestType,\n\t\t\t\theaders: headers,\n\t\t\t\tdata: JSON.stringify(data),\n\t\t\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\treturn callback(err);\n\t\t\t\t\t}\n\t\t\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\t\t\tcallback(null);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nGitLabSaver.prototype.info = {\n\tname: \"gitlab\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GitLabSaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/hyperdrive.js": {
            "title": "$:/core/modules/savers/hyperdrive.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/hyperdrive.js\ntype: application/javascript\nmodule-type: saver\n\nSaves files using the Hyperdrive Protocol (https://hypercore-protocol.org/#hyperdrive) Beaker browser beta-1.0 and later (https://beakerbrowser.com)\nCompatible with beaker >= V1.0.0\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet up the saver\n*/\nvar HyperdriveSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nHyperdriveSaver.prototype.save = function(text,method,callback) {\n\tvar dat = beaker.hyperdrive.drive(\"\" + window.location),\n\t\tpathname = (\"\" + window.location.pathname).split(\"#\")[0];\n\tdat.stat(pathname).then(function(value) {\n\t\tif(value.isDirectory()) {\n\t\t\tpathname = pathname + \"/index.html\";\n\t\t}\n\t\tdat.writeFile(pathname,text,\"utf8\").then(function(value) {\n\t\t\tcallback(null);\n\t\t},function(reason) {\n\t\t\tcallback(\"Hyperdrive Saver Write Error: \" + reason);\n\t\t});\n\t},function(reason) {\n\t\tcallback(\"Hyperdrive Saver Stat Error: \" + reason);\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nHyperdriveSaver.prototype.info = {\n\tname: \"beaker-1.x\",\n\tpriority: 3000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.beaker && !!beaker.hyperdrive && location.protocol===\"hyper:\";\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new HyperdriveSaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/manualdownload.js": {
            "title": "$:/core/modules/savers/manualdownload.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/manualdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Title of the tiddler containing the download message\nvar downloadInstructionsTitle = \"$:/language/Modals/Download\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar ManualDownloadSaver = function(wiki) {\n};\n\nManualDownloadSaver.prototype.save = function(text,method,callback) {\n\t$tw.modal.display(downloadInstructionsTitle,{\n\t\tdownloadLink: \"data:text/html,\" + encodeURIComponent(text)\n\t});\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nManualDownloadSaver.prototype.info = {\n\tname: \"manualdownload\",\n\tpriority: 0,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new ManualDownloadSaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/msdownload.js": {
            "title": "$:/core/modules/savers/msdownload.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/msdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via window.navigator.msSaveBlob()\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar MsDownloadSaver = function(wiki) {\n};\n\nMsDownloadSaver.prototype.save = function(text,method,callback) {\n\t// Get the current filename\n\tvar filename = \"tiddlywiki.html\",\n\t\tp = document.location.pathname.lastIndexOf(\"/\");\n\tif(p !== -1) {\n\t\tfilename = document.location.pathname.substr(p+1);\n\t}\n\t// Set up the link\n\tvar blob = new Blob([text], {type: \"text/html\"});\n\twindow.navigator.msSaveBlob(blob,filename);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nMsDownloadSaver.prototype.info = {\n\tname: \"msdownload\",\n\tpriority: 110,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.navigator.msSaveBlob;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new MsDownloadSaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/put.js": {
            "title": "$:/core/modules/savers/put.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/put.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by performing a PUT request to the server\n\nWorks with any server which accepts a PUT request\nto the current URL, such as a WebDAV server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRetrieve ETag if available\n*/\nvar retrieveETag = function(self) {\n\tvar headers = {\n\t\tAccept: \"*/*;charset=UTF-8\"\n\t};\n\t$tw.utils.httpRequest({\n\t\turl: self.uri(),\n\t\ttype: \"HEAD\",\n\t\theaders: headers,\n\t\tcallback: function(err,data,xhr) {\n\t\t\tif(err) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar etag = xhr.getResponseHeader(\"ETag\");\n\t\t\tif(!etag) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tself.etag = etag.replace(/^W\\//,\"\");\n\t\t}\n\t});\n};\n\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar PutSaver = function(wiki) {\n\tthis.wiki = wiki;\n\tvar self = this;\n\tvar uri = this.uri();\n\t// Async server probe. Until probe finishes, save will fail fast\n\t// See also https://github.com/Jermolene/TiddlyWiki5/issues/2276\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"OPTIONS\",\n\t\tcallback: function(err,data,xhr) {\n\t\t\t// Check DAV header http://www.webdav.org/specs/rfc2518.html#rfc.section.9.1\n\t\t\tif(!err) {\n\t\t\t\tself.serverAcceptsPuts = xhr.status === 200 && !!xhr.getResponseHeader(\"dav\");\n\t\t\t}\n\t\t}\n\t});\n\tretrieveETag(this);\n};\n\nPutSaver.prototype.uri = function() {\n\treturn document.location.toString().split(\"#\")[0];\n};\n\n// TODO: in case of edit conflict\n// Prompt: Do you want to save over this? Y/N\n// Merging would be ideal, and may be possible using future generic merge flow\nPutSaver.prototype.save = function(text,method,callback) {\n\tif(!this.serverAcceptsPuts) {\n\t\treturn false;\n\t}\n\tvar self = this;\n\tvar headers = {\n\t\t\"Content-Type\": \"text/html;charset=UTF-8\"\n\t};\n\tif(this.etag) {\n\t\theaders[\"If-Match\"] = this.etag;\n\t}\n\t$tw.utils.httpRequest({\n\t\turl: this.uri(),\n\t\ttype: \"PUT\",\n\t\theaders: headers,\n\t\tdata: text,\n\t\tcallback: function(err,data,xhr) {\n\t\t\tif(err) {\n\t\t\t\t// response is textual: \"XMLHttpRequest error code: 412\"\n\t\t\t\tvar status = Number(err.substring(err.indexOf(':') + 2, err.length))\n\t\t\t\tif(status === 412) { // edit conflict\n\t\t\t\t\tvar message = $tw.language.getString(\"Error/EditConflict\");\n\t\t\t\t\tcallback(message);\n\t\t\t\t} else {\n\t\t\t\t\tcallback(err); // fail\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.etag = xhr.getResponseHeader(\"ETag\");\n\t\t\t\tif(self.etag == null) {\n\t\t\t\t\tretrieveETag(self);\n\t\t\t\t}\n\t\t\t\tcallback(null); // success\n\t\t\t}\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nPutSaver.prototype.info = {\n\tname: \"put\",\n\tpriority: 2000,\n\tcapabilities: [\"save\",\"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn /^https?:/.test(location.protocol);\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new PutSaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/tiddlyfox.js": {
            "title": "$:/core/modules/savers/tiddlyfox.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/tiddlyfox.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TiddlyFox file extension\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TiddlyFoxSaver = function(wiki) {\n};\n\nTiddlyFoxSaver.prototype.save = function(text,method,callback) {\n\tvar messageBox = document.getElementById(\"tiddlyfox-message-box\");\n\tif(messageBox) {\n\t\t// Get the pathname of this document\n\t\tvar pathname = document.location.toString().split(\"#\")[0];\n\t\t// Replace file://localhost/ with file:///\n\t\tif(pathname.indexOf(\"file://localhost/\") === 0) {\n\t\t\tpathname = \"file://\" + pathname.substr(16);\n\t\t}\n\t\t// Windows path file:///x:/blah/blah --> x:\\blah\\blah\n\t\tif(/^file\\:\\/\\/\\/[A-Z]\\:\\//i.test(pathname)) {\n\t\t\t// Remove the leading slash and convert slashes to backslashes\n\t\t\tpathname = pathname.substr(8).replace(/\\//g,\"\\\\\");\n\t\t// Firefox Windows network path file://///server/share/blah/blah --> //server/share/blah/blah\n\t\t} else if(pathname.indexOf(\"file://///\") === 0) {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(10)).replace(/\\//g,\"\\\\\");\n\t\t// Mac/Unix local path file:///path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:///\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(7));\n\t\t// Mac/Unix local path file:/path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:/\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(5));\n\t\t// Otherwise Windows networth path file://server/share/path/path --> \\\\server\\share\\path\\path\n\t\t} else {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(7)).replace(new RegExp(\"/\",\"g\"),\"\\\\\");\n\t\t}\n\t\t// Create the message element and put it in the message box\n\t\tvar message = document.createElement(\"div\");\n\t\tmessage.setAttribute(\"data-tiddlyfox-path\",decodeURIComponent(pathname));\n\t\tmessage.setAttribute(\"data-tiddlyfox-content\",text);\n\t\tmessageBox.appendChild(message);\n\t\t// Add an event handler for when the file has been saved\n\t\tmessage.addEventListener(\"tiddlyfox-have-saved-file\",function(event) {\n\t\t\tcallback(null);\n\t\t}, false);\n\t\t// Create and dispatch the custom event to the extension\n\t\tvar event = document.createEvent(\"Events\");\n\t\tevent.initEvent(\"tiddlyfox-save-file\",true,false);\n\t\tmessage.dispatchEvent(event);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyFoxSaver.prototype.info = {\n\tname: \"tiddlyfox\",\n\tpriority: 1500,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyFoxSaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/tiddlyie.js": {
            "title": "$:/core/modules/savers/tiddlyie.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/tiddlyie.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via Internet Explorer BHO extenion (TiddlyIE)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar TiddlyIESaver = function(wiki) {\n};\n\nTiddlyIESaver.prototype.save = function(text,method,callback) {\n\t// Check existence of TiddlyIE BHO extension (note: only works after document is complete)\n\tif(typeof(window.TiddlyIE) != \"undefined\") {\n\t\t// Get the pathname of this document\n\t\tvar pathname = unescape(document.location.pathname);\n\t\t// Test for a Windows path of the form /x:/blah...\n\t\tif(/^\\/[A-Z]\\:\\/[^\\/]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+ (is this better?: ^/[a-z]:/[^/]+(/[^/]+)*\\.[^/]+ )\n\t\t\t// Remove the leading slash\n\t\t\tpathname = pathname.substr(1);\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t} else if(document.hostname !== \"\" && /^\\/[^\\/]+\\/[^\\/]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t\t// reconstruct UNC path\n\t\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t\t} else return false;\n\t\t// Prompt the user to save the file\n\t\twindow.TiddlyIE.save(pathname, text);\n\t\t// Callback that we succeeded\n\t\tcallback(null);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyIESaver.prototype.info = {\n\tname: \"tiddlyiesaver\",\n\tpriority: 1500,\n\tcapabilities: [\"save\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn (window.location.protocol === \"file:\");\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyIESaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/twedit.js": {
            "title": "$:/core/modules/savers/twedit.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/twedit.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TWEdit iOS app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TWEditSaver = function(wiki) {\n};\n\nTWEditSaver.prototype.save = function(text,method,callback) {\n\t// Bail if we're not running under TWEdit\n\tif(typeof DeviceInfo !== \"object\") {\n\t\treturn false;\n\t}\n\t// Get the pathname of this document\n\tvar pathname = decodeURIComponent(document.location.pathname);\n\t// Strip any query or location part\n\tvar p = pathname.indexOf(\"?\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\tp = pathname.indexOf(\"#\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\t// Remove the leading \"/Documents\" from path\n\tvar prefix = \"/Documents\";\n\tif(pathname.indexOf(prefix) === 0) {\n\t\tpathname = pathname.substr(prefix.length);\n\t}\n\t// Error handler\n\tvar errorHandler = function(event) {\n\t\t// Error\n\t\tcallback($tw.language.getString(\"Error/SavingToTWEdit\") + \": \" + event.target.error.code);\n\t};\n\t// Get the file system\n\twindow.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fileSystem) {\n\t\t// Now we've got the filesystem, get the fileEntry\n\t\tfileSystem.root.getFile(pathname, {create: true}, function(fileEntry) {\n\t\t\t// Now we've got the fileEntry, create the writer\n\t\t\tfileEntry.createWriter(function(writer) {\n\t\t\t\twriter.onerror = errorHandler;\n\t\t\t\twriter.onwrite = function() {\n\t\t\t\t\tcallback(null);\n\t\t\t\t};\n\t\t\t\twriter.position = 0;\n\t\t\t\twriter.write(text);\n\t\t\t},errorHandler);\n\t\t}, errorHandler);\n\t}, errorHandler);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nTWEditSaver.prototype.info = {\n\tname: \"twedit\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TWEditSaver(wiki);\n};\n\n/////////////////////////// Hack\n// HACK: This ensures that TWEdit recognises us as a TiddlyWiki document\nif($tw.browser) {\n\twindow.version = {title: \"TiddlyWiki\"};\n}\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/upload.js": {
            "title": "$:/core/modules/savers/upload.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/upload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via upload to a server.\n\nDesigned to be compatible with BidiX's UploadPlugin at http://tiddlywiki.bidix.info/#UploadPlugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar UploadSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nUploadSaver.prototype.save = function(text,method,callback) {\n\t// Get the various parameters we need\n\tvar backupDir = this.wiki.getTextReference(\"$:/UploadBackupDir\") || \".\",\n\t\tusername = this.wiki.getTextReference(\"$:/UploadName\"),\n\t\tpassword = $tw.utils.getPassword(\"upload\"),\n\t\tuploadDir = this.wiki.getTextReference(\"$:/UploadDir\") || \".\",\n\t\tuploadFilename = this.wiki.getTextReference(\"$:/UploadFilename\") || \"index.html\",\n\t\turl = this.wiki.getTextReference(\"$:/UploadURL\");\n\t// Bail out if we don't have the bits we need\n\tif(!username || username.toString().trim() === \"\" || !password || password.toString().trim() === \"\") {\n\t\treturn false;\n\t}\n\t// Construct the url if not provided\n\tif(!url) {\n\t\turl = \"http://\" + username + \".tiddlyspot.com/store.cgi\";\n\t}\n\t// Assemble the header\n\tvar boundary = \"---------------------------\" + \"AaB03x\";\t\n\tvar uploadFormName = \"UploadPlugin\";\n\tvar head = [];\n\thead.push(\"--\" + boundary + \"\\r\\nContent-disposition: form-data; name=\\\"UploadPlugin\\\"\\r\\n\");\n\thead.push(\"backupDir=\" + backupDir + \";user=\" + username + \";password=\" + password + \";uploaddir=\" + uploadDir + \";;\"); \n\thead.push(\"\\r\\n\" + \"--\" + boundary);\n\thead.push(\"Content-disposition: form-data; name=\\\"userfile\\\"; filename=\\\"\" + uploadFilename + \"\\\"\");\n\thead.push(\"Content-Type: text/html;charset=UTF-8\");\n\thead.push(\"Content-Length: \" + text.length + \"\\r\\n\");\n\thead.push(\"\");\n\t// Assemble the tail and the data itself\n\tvar tail = \"\\r\\n--\" + boundary + \"--\\r\\n\",\n\t\tdata = head.join(\"\\r\\n\") + text + tail;\n\t// Do the HTTP post\n\tvar http = new XMLHttpRequest();\n\thttp.open(\"POST\",url,true,username,password);\n\thttp.setRequestHeader(\"Content-Type\",\"multipart/form-data; charset=UTF-8; boundary=\" + boundary);\n\thttp.onreadystatechange = function() {\n\t\tif(http.readyState == 4 && http.status == 200) {\n\t\t\tif(http.responseText.substr(0,4) === \"0 - \") {\n\t\t\t\tcallback(null);\n\t\t\t} else {\n\t\t\t\tcallback(http.responseText);\n\t\t\t}\n\t\t}\n\t};\n\ttry {\n\t\thttp.send(data);\n\t} catch(ex) {\n\t\treturn callback($tw.language.getString(\"Error/Caption\") + \":\" + ex);\n\t}\n\t$tw.notifier.display(\"$:/language/Notifications/Save/Starting\");\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nUploadSaver.prototype.info = {\n\tname: \"upload\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new UploadSaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/server/authenticators/basic.js": {
            "title": "$:/core/modules/server/authenticators/basic.js",
            "text": "/*\\\ntitle: $:/core/modules/server/authenticators/basic.js\ntype: application/javascript\nmodule-type: authenticator\n\nAuthenticator for WWW basic authentication\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nif($tw.node) {\n\tvar util = require(\"util\"),\n\t\tfs = require(\"fs\"),\n\t\turl = require(\"url\"),\n\t\tpath = require(\"path\");\n}\n\nfunction BasicAuthenticator(server) {\n\tthis.server = server;\n\tthis.credentialsData = [];\n}\n\n/*\nReturns true if the authenticator is active, false if it is inactive, or a string if there is an error\n*/\nBasicAuthenticator.prototype.init = function() {\n\t// Read the credentials data\n\tthis.credentialsFilepath = this.server.get(\"credentials\");\n\tif(this.credentialsFilepath) {\n\t\tvar resolveCredentialsFilepath = path.resolve(this.server.boot.wikiPath,this.credentialsFilepath);\n\t\tif(fs.existsSync(resolveCredentialsFilepath) && !fs.statSync(resolveCredentialsFilepath).isDirectory()) {\n\t\t\tvar credentialsText = fs.readFileSync(resolveCredentialsFilepath,\"utf8\"),\n\t\t\t\tcredentialsData = $tw.utils.parseCsvStringWithHeader(credentialsText);\n\t\t\tif(typeof credentialsData === \"string\") {\n\t\t\t\treturn \"Error: \" + credentialsData + \" reading credentials from '\" + resolveCredentialsFilepath + \"'\";\n\t\t\t} else {\n\t\t\t\tthis.credentialsData = credentialsData;\n\t\t\t}\n\t\t} else {\n\t\t\treturn \"Error: Unable to load user credentials from '\" + resolveCredentialsFilepath + \"'\";\n\t\t}\n\t}\n\t// Add the hardcoded username and password if specified\n\tif(this.server.get(\"username\") && this.server.get(\"password\")) {\n\t\tthis.credentialsData = this.credentialsData || [];\n\t\tthis.credentialsData.push({\n\t\t\tusername: this.server.get(\"username\"),\n\t\t\tpassword: this.server.get(\"password\")\n\t\t});\n\t}\n\treturn this.credentialsData.length > 0;\n};\n\n/*\nReturns true if the request is authenticated and assigns the \"authenticatedUsername\" state variable.\nReturns false if the request couldn't be authenticated having sent an appropriate response to the browser\n*/\nBasicAuthenticator.prototype.authenticateRequest = function(request,response,state) {\n\t// Extract the incoming username and password from the request\n\tvar header = request.headers.authorization || \"\";\n\tif(!header && state.allowAnon) {\n\t\t// If there's no header and anonymous access is allowed then we don't set authenticatedUsername\n\t\treturn true;\n\t}\n\tvar token = header.split(/\\s+/).pop() || \"\",\n\t\tauth = $tw.utils.base64Decode(token),\n\t\tparts = auth.split(/:/),\n\t\tincomingUsername = parts[0],\n\t\tincomingPassword = parts[1];\n\t// Check that at least one of the credentials matches\n\tvar matchingCredentials = this.credentialsData.find(function(credential) {\n\t\treturn credential.username === incomingUsername && credential.password === incomingPassword;\n\t});\n\tif(matchingCredentials) {\n\t\t// If so, add the authenticated username to the request state\n\t\tstate.authenticatedUsername = incomingUsername;\n\t\treturn true;\n\t} else {\n\t\t// If not, return an authentication challenge\n\t\tresponse.writeHead(401,\"Authentication required\",{\n\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + state.server.servername + '\"'\n\t\t});\n\t\tresponse.end();\n\t\treturn false;\n\t}\n};\n\nexports.AuthenticatorClass = BasicAuthenticator;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "authenticator"
        },
        "$:/core/modules/server/authenticators/header.js": {
            "title": "$:/core/modules/server/authenticators/header.js",
            "text": "/*\\\ntitle: $:/core/modules/server/authenticators/header.js\ntype: application/javascript\nmodule-type: authenticator\n\nAuthenticator for trusted header authentication\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction HeaderAuthenticator(server) {\n\tthis.server = server;\n\tthis.header = server.get(\"authenticated-user-header\") ? server.get(\"authenticated-user-header\").toLowerCase() : undefined;\n}\n\n/*\nReturns true if the authenticator is active, false if it is inactive, or a string if there is an error\n*/\nHeaderAuthenticator.prototype.init = function() {\n\treturn !!this.header;\n};\n\n/*\nReturns true if the request is authenticated and assigns the \"authenticatedUsername\" state variable.\nReturns false if the request couldn't be authenticated having sent an appropriate response to the browser\n*/\nHeaderAuthenticator.prototype.authenticateRequest = function(request,response,state) {\n\t// Otherwise, authenticate as the username in the specified header\n\tvar username = request.headers[this.header];\n\tif(!username && !state.allowAnon) {\n\t\tresponse.writeHead(401,\"Authorization header required to login to '\" + state.server.servername + \"'\");\n\t\tresponse.end();\n\t\treturn false;\n\t} else {\n\t\t// authenticatedUsername will be undefined for anonymous users\n\t\tstate.authenticatedUsername = username;\n\t\treturn true;\n\t}\n};\n\nexports.AuthenticatorClass = HeaderAuthenticator;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "authenticator"
        },
        "$:/core/modules/server/routes/delete-tiddler.js": {
            "title": "$:/core/modules/server/routes/delete-tiddler.js",
            "text": "/*\\\ntitle: $:/core/modules/server/routes/delete-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nDELETE /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"DELETE\";\n\nexports.path = /^\\/bags\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]);\n\tstate.wiki.deleteTiddler(title);\n\tresponse.writeHead(204, \"OK\", {\n\t\t\"Content-Type\": \"text/plain\"\n\t});\n\tresponse.end();\n};\n\n}());\n",
            "type": "application/javascript",
            "module-type": "route"
        },
        "$:/core/modules/server/routes/get-favicon.js": {
            "title": "$:/core/modules/server/routes/get-favicon.js",
            "text": "/*\\\ntitle: $:/core/modules/server/routes/get-favicon.js\ntype: application/javascript\nmodule-type: route\n\nGET /favicon.ico\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/favicon.ico$/;\n\nexports.handler = function(request,response,state) {\n\tresponse.writeHead(200, {\"Content-Type\": \"image/x-icon\"});\n\tvar buffer = state.wiki.getTiddlerText(\"$:/favicon.ico\",\"\");\n\tresponse.end(buffer,\"base64\");\n};\n\n}());\n",
            "type": "application/javascript",
            "module-type": "route"
        },
        "$:/core/modules/server/routes/get-file.js": {
            "title": "$:/core/modules/server/routes/get-file.js",
            "text": "/*\\\ntitle: $:/core/modules/server/routes/get-file.js\ntype: application/javascript\nmodule-type: route\n\nGET /files/:filepath\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/files\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar path = require(\"path\"),\n\t\tfs = require(\"fs\"),\n\t\tutil = require(\"util\"),\n\t\tsuppliedFilename = decodeURIComponent(state.params[0]),\n\t\tfilename = path.resolve(state.boot.wikiPath,\"files\",suppliedFilename),\n\t\textension = path.extname(filename);\n\tfs.readFile(filename,function(err,content) {\n\t\tvar status,content,type = \"text/plain\";\n\t\tif(err) {\n\t\t\tconsole.log(\"Error accessing file \" + filename + \": \" + err.toString());\n\t\t\tstatus = 404;\n\t\t\tcontent = \"File '\" + suppliedFilename + \"' not found\";\n\t\t} else {\n\t\t\tstatus = 200;\n\t\t\tcontent = content;\n\t\t\ttype = ($tw.config.fileExtensionInfo[extension] ? $tw.config.fileExtensionInfo[extension].type : \"application/octet-stream\");\n\t\t}\n\t\tresponse.writeHead(status,{\n\t\t\t\"Content-Type\": type\n\t\t});\n\t\tresponse.end(content);\n\t});\n};\n\n}());\n",
            "type": "application/javascript",
            "module-type": "route"
        },
        "$:/core/modules/server/routes/get-index.js": {
            "title": "$:/core/modules/server/routes/get-index.js",
            "text": "/*\\\ntitle: $:/core/modules/server/routes/get-index.js\ntype: application/javascript\nmodule-type: route\n\nGET /\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar zlib = require(\"zlib\");\n\nexports.method = \"GET\";\n\nexports.path = /^\\/$/;\n\nexports.handler = function(request,response,state) {\n\tvar acceptEncoding = request.headers[\"accept-encoding\"];\n\tif(!acceptEncoding) {\n\t\tacceptEncoding = \"\";\n\t}\n\tvar text = state.wiki.renderTiddler(state.server.get(\"root-render-type\"),state.server.get(\"root-tiddler\")),\n\t\tresponseHeaders = {\n\t\t\"Content-Type\": state.server.get(\"root-serve-type\")\n\t};\n\t/*\n\tIf the gzip=yes flag for `listen` is set, check if the user agent permits\n\tcompression. If so, compress our response. Note that we use the synchronous\n\tfunctions from zlib to stay in the imperative style. The current `Server`\n\tdoesn't depend on this, and we may just as well use the async versions.\n\t*/\n\tif(state.server.enableGzip) {\n\t\tif (/\\bdeflate\\b/.test(acceptEncoding)) {\n\t\t\tresponseHeaders[\"Content-Encoding\"] = \"deflate\";\n\t\t\ttext = zlib.deflateSync(text);\n\t\t} else if (/\\bgzip\\b/.test(acceptEncoding)) {\n\t\t\tresponseHeaders[\"Content-Encoding\"] = \"gzip\";\n\t\t\ttext = zlib.gzipSync(text);\n\t\t}\n\t}\n\tresponse.writeHead(200,responseHeaders);\n\tresponse.end(text);\n};\n\n}());\n",
            "type": "application/javascript",
            "module-type": "route"
        },
        "$:/core/modules/server/routes/get-login-basic.js": {
            "title": "$:/core/modules/server/routes/get-login-basic.js",
            "text": "/*\\\ntitle: $:/core/modules/server/routes/get-login-basic.js\ntype: application/javascript\nmodule-type: route\n\nGET /login-basic -- force a Basic Authentication challenge\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/login-basic$/;\n\nexports.handler = function(request,response,state) {\n\tif(!state.authenticatedUsername) {\n\t\t// Challenge if there's no username\n\t\tresponse.writeHead(401,{\n\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + state.server.servername + '\"'\n\t\t});\n\t\tresponse.end();\t\t\n\t} else {\n\t\t// Redirect to the root wiki if login worked\n\t\tresponse.writeHead(302,{\n\t\t\tLocation: \"/\"\n\t\t});\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
            "type": "application/javascript",
            "module-type": "route"
        },
        "$:/core/modules/server/routes/get-status.js": {
            "title": "$:/core/modules/server/routes/get-status.js",
            "text": "/*\\\ntitle: $:/core/modules/server/routes/get-status.js\ntype: application/javascript\nmodule-type: route\n\nGET /status\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/status$/;\n\nexports.handler = function(request,response,state) {\n\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\tvar text = JSON.stringify({\n\t\tusername: state.authenticatedUsername || state.server.get(\"anon-username\") || \"\",\n\t\tanonymous: !state.authenticatedUsername,\n\t\tread_only: !state.server.isAuthorized(\"writers\",state.authenticatedUsername),\n\t\tspace: {\n\t\t\trecipe: \"default\"\n\t\t},\n\t\ttiddlywiki_version: $tw.version\n\t});\n\tresponse.end(text,\"utf8\");\n};\n\n}());\n",
            "type": "application/javascript",
            "module-type": "route"
        },
        "$:/core/modules/server/routes/get-tiddler-html.js": {
            "title": "$:/core/modules/server/routes/get-tiddler-html.js",
            "text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddler-html.js\ntype: application/javascript\nmodule-type: route\n\nGET /:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/([^\\/]+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\t\ttiddler = state.wiki.getTiddler(title);\n\tif(tiddler) {\n\t\tvar renderType = tiddler.getFieldString(\"_render_type\"),\n\t\t\trenderTemplate = tiddler.getFieldString(\"_render_template\");\n\t\t// Tiddler fields '_render_type' and '_render_template' overwrite\n\t\t// system wide settings for render type and template\n\t\tif(state.wiki.isSystemTiddler(title)) {\n\t\t\trenderType = renderType || state.server.get(\"system-tiddler-render-type\");\n\t\t\trenderTemplate = renderTemplate || state.server.get(\"system-tiddler-render-template\");\n\t\t} else {\n\t\t\trenderType = renderType || state.server.get(\"tiddler-render-type\");\n\t\t\trenderTemplate = renderTemplate || state.server.get(\"tiddler-render-template\");\n\t\t}\n\t\tvar text = state.wiki.renderTiddler(renderType,renderTemplate,{parseAsInline: true, variables: {currentTiddler: title}});\n\t\t// Naughty not to set a content-type, but it's the easiest way to ensure the browser will see HTML pages as HTML, and accept plain text tiddlers as CSS or JS\n\t\tresponse.writeHead(200);\n\t\tresponse.end(text,\"utf8\");\n\t} else {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
            "type": "application/javascript",
            "module-type": "route"
        },
        "$:/core/modules/server/routes/get-tiddler.js": {
            "title": "$:/core/modules/server/routes/get-tiddler.js",
            "text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nGET /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\t\ttiddler = state.wiki.getTiddler(title),\n\t\ttiddlerFields = {},\n\t\tknownFields = [\n\t\t\t\"bag\", \"created\", \"creator\", \"modified\", \"modifier\", \"permissions\", \"recipe\", \"revision\", \"tags\", \"text\", \"title\", \"type\", \"uri\"\n\t\t];\n\tif(tiddler) {\n\t\t$tw.utils.each(tiddler.fields,function(field,name) {\n\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\tif(knownFields.indexOf(name) !== -1) {\n\t\t\t\ttiddlerFields[name] = value;\n\t\t\t} else {\n\t\t\t\ttiddlerFields.fields = tiddlerFields.fields || {};\n\t\t\t\ttiddlerFields.fields[name] = value;\n\t\t\t}\n\t\t});\n\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\ttiddlerFields.bag = \"default\";\n\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\tresponse.end(JSON.stringify(tiddlerFields),\"utf8\");\n\t} else {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
            "type": "application/javascript",
            "module-type": "route"
        },
        "$:/core/modules/server/routes/get-tiddlers-json.js": {
            "title": "$:/core/modules/server/routes/get-tiddlers-json.js",
            "text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddlers-json.js\ntype: application/javascript\nmodule-type: route\n\nGET /recipes/default/tiddlers.json?filter=<filter>\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_FILTER = \"[all[tiddlers]!is[system]sort[title]]\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers.json$/;\n\nexports.handler = function(request,response,state) {\n\tvar filter = state.queryParameters.filter || DEFAULT_FILTER;\n\tif(state.wiki.getTiddlerText(\"$:/config/Server/AllowAllExternalFilters\") !== \"yes\") {\n\t\tif(state.wiki.getTiddlerText(\"$:/config/Server/ExternalFilters/\" + filter) !== \"yes\") {\n\t\t\tconsole.log(\"Blocked attempt to GET /recipes/default/tiddlers.json with filter: \" + filter);\n\t\t\tresponse.writeHead(403);\n\t\t\tresponse.end();\n\t\t\treturn;\n\t\t}\n\t}\n\tif(state.wiki.getTiddlerText(\"$:/config/SyncSystemTiddlersFromServer\") === \"no\") {\n\t\tfilter += \"+[!is[system]]\";\n\t}\n\tvar excludeFields = (state.queryParameters.exclude || \"text\").split(\",\"),\n\t\ttitles = state.wiki.filterTiddlers(filter);\n\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\tvar tiddlers = [];\n\t$tw.utils.each(titles,function(title) {\n\t\tvar tiddler = state.wiki.getTiddler(title);\n\t\tif(tiddler) {\n\t\t\tvar tiddlerFields = tiddler.getFieldStrings({exclude: excludeFields});\n\t\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\t\ttiddlers.push(tiddlerFields);\n\t\t}\n\t});\n\tvar text = JSON.stringify(tiddlers);\n\tresponse.end(text,\"utf8\");\n};\n\n}());\n",
            "type": "application/javascript",
            "module-type": "route"
        },
        "$:/core/modules/server/routes/put-tiddler.js": {
            "title": "$:/core/modules/server/routes/put-tiddler.js",
            "text": "/*\\\ntitle: $:/core/modules/server/routes/put-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nPUT /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"PUT\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\tfields = JSON.parse(state.data);\n\t// Pull up any subfields in the `fields` object\n\tif(fields.fields) {\n\t\t$tw.utils.each(fields.fields,function(field,name) {\n\t\t\tfields[name] = field;\n\t\t});\n\t\tdelete fields.fields;\n\t}\n\t// Remove any revision field\n\tif(fields.revision) {\n\t\tdelete fields.revision;\n\t}\n\tstate.wiki.addTiddler(new $tw.Tiddler(state.wiki.getCreationFields(),fields,{title: title},state.wiki.getModificationFields()));\n\tvar changeCount = state.wiki.getChangeCount(title).toString();\n\tresponse.writeHead(204, \"OK\",{\n\t\tEtag: \"\\\"default/\" + encodeURIComponent(title) + \"/\" + changeCount + \":\\\"\",\n\t\t\"Content-Type\": \"text/plain\"\n\t});\n\tresponse.end();\n};\n\n}());\n",
            "type": "application/javascript",
            "module-type": "route"
        },
        "$:/core/modules/server/server.js": {
            "title": "$:/core/modules/server/server.js",
            "text": "/*\\\ntitle: $:/core/modules/server/server.js\ntype: application/javascript\nmodule-type: library\n\nServe tiddlers over http\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nif($tw.node) {\n\tvar util = require(\"util\"),\n\t\tfs = require(\"fs\"),\n\t\turl = require(\"url\"),\n\t\tpath = require(\"path\"),\n\t\tquerystring = require(\"querystring\");\n}\n\n/*\nA simple HTTP server with regexp-based routes\noptions: variables - optional hashmap of variables to set (a misnomer - they are really constant parameters)\n\t\t routes - optional array of routes to use\n\t\t wiki - reference to wiki object\n*/\nfunction Server(options) {\n\tvar self = this;\n\tthis.routes = options.routes || [];\n\tthis.authenticators = options.authenticators || [];\n\tthis.wiki = options.wiki;\n\tthis.boot = options.boot || $tw.boot;\n\tthis.servername = $tw.utils.transliterateToSafeASCII(this.wiki.getTiddlerText(\"$:/SiteTitle\") || \"TiddlyWiki5\");\n\t// Initialise the variables\n\tthis.variables = $tw.utils.extend({},this.defaultVariables);\n\tif(options.variables) {\n\t\tfor(var variable in options.variables) {\n\t\t\tif(options.variables[variable]) {\n\t\t\t\tthis.variables[variable] = options.variables[variable];\n\t\t\t}\n\t\t}\t\t\n\t}\n\t$tw.utils.extend({},this.defaultVariables,options.variables);\n\t// Initialise CSRF\n\tthis.csrfDisable = this.get(\"csrf-disable\") === \"yes\";\n\t// Initialize Gzip compression\n\tthis.enableGzip = this.get(\"gzip\") === \"yes\";\n\t// Initialise authorization\n\tvar authorizedUserName = (this.get(\"username\") && this.get(\"password\")) ? this.get(\"username\") : \"(anon)\";\n\tthis.authorizationPrincipals = {\n\t\treaders: (this.get(\"readers\") || authorizedUserName).split(\",\").map($tw.utils.trim),\n\t\twriters: (this.get(\"writers\") || authorizedUserName).split(\",\").map($tw.utils.trim)\n\t}\n\t// Load and initialise authenticators\n\t$tw.modules.forEachModuleOfType(\"authenticator\", function(title,authenticatorDefinition) {\n\t\t// console.log(\"Loading server route \" + title);\n\t\tself.addAuthenticator(authenticatorDefinition.AuthenticatorClass);\n\t});\n\t// Load route handlers\n\t$tw.modules.forEachModuleOfType(\"route\", function(title,routeDefinition) {\n\t\t// console.log(\"Loading server route \" + title);\n\t\tself.addRoute(routeDefinition);\n\t});\n\t// Initialise the http vs https\n\tthis.listenOptions = null;\n\tthis.protocol = \"http\";\n\tvar tlsKeyFilepath = this.get(\"tls-key\"),\n\t\ttlsCertFilepath = this.get(\"tls-cert\");\n\tif(tlsCertFilepath && tlsKeyFilepath) {\n\t\tthis.listenOptions = {\n\t\t\tkey: fs.readFileSync(path.resolve(this.boot.wikiPath,tlsKeyFilepath),\"utf8\"),\n\t\t\tcert: fs.readFileSync(path.resolve(this.boot.wikiPath,tlsCertFilepath),\"utf8\")\n\t\t};\n\t\tthis.protocol = \"https\";\n\t}\n\tthis.transport = require(this.protocol);\n}\n\nServer.prototype.defaultVariables = {\n\tport: \"8080\",\n\thost: \"127.0.0.1\",\n\t\"root-tiddler\": \"$:/core/save/all\",\n\t\"root-render-type\": \"text/plain\",\n\t\"root-serve-type\": \"text/html\",\n\t\"tiddler-render-type\": \"text/html\",\n\t\"tiddler-render-template\": \"$:/core/templates/server/static.tiddler.html\",\n\t\"system-tiddler-render-type\": \"text/plain\",\n\t\"system-tiddler-render-template\": \"$:/core/templates/wikified-tiddler\",\n\t\"debug-level\": \"none\",\n\t\"gzip\": \"no\"\n};\n\nServer.prototype.get = function(name) {\n\treturn this.variables[name];\n};\n\nServer.prototype.addRoute = function(route) {\n\tthis.routes.push(route);\n};\n\nServer.prototype.addAuthenticator = function(AuthenticatorClass) {\n\t// Instantiate and initialise the authenticator\n\tvar authenticator = new AuthenticatorClass(this),\n\t\tresult = authenticator.init();\n\tif(typeof result === \"string\") {\n\t\t$tw.utils.error(\"Error: \" + result);\n\t} else if(result) {\n\t\t// Only use the authenticator if it initialised successfully\n\t\tthis.authenticators.push(authenticator);\n\t}\n};\n\nServer.prototype.findMatchingRoute = function(request,state) {\n\tfor(var t=0; t<this.routes.length; t++) {\n\t\tvar potentialRoute = this.routes[t],\n\t\t\tpathRegExp = potentialRoute.path,\n\t\t\tpathname = state.urlInfo.pathname,\n\t\t\tmatch;\n\t\tif(state.pathPrefix) {\n\t\t\tif(pathname.substr(0,state.pathPrefix.length) === state.pathPrefix) {\n\t\t\t\tpathname = pathname.substr(state.pathPrefix.length) || \"/\";\n\t\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t\t} else {\n\t\t\t\tmatch = false;\n\t\t\t}\n\t\t} else {\n\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t}\n\t\tif(match && request.method === potentialRoute.method) {\n\t\t\tstate.params = [];\n\t\t\tfor(var p=1; p<match.length; p++) {\n\t\t\t\tstate.params.push(match[p]);\n\t\t\t}\n\t\t\treturn potentialRoute;\n\t\t}\n\t}\n\treturn null;\n};\n\nServer.prototype.methodMappings = {\n\t\"GET\": \"readers\",\n\t\"OPTIONS\": \"readers\",\n\t\"HEAD\": \"readers\",\n\t\"PUT\": \"writers\",\n\t\"POST\": \"writers\",\n\t\"DELETE\": \"writers\"\n};\n\n/*\nCheck whether a given user is authorized for the specified authorizationType (\"readers\" or \"writers\"). Pass null or undefined as the username to check for anonymous access\n*/\nServer.prototype.isAuthorized = function(authorizationType,username) {\n\tvar principals = this.authorizationPrincipals[authorizationType] || [];\n\treturn principals.indexOf(\"(anon)\") !== -1 || (username && (principals.indexOf(\"(authenticated)\") !== -1 || principals.indexOf(username) !== -1));\n}\n\nServer.prototype.requestHandler = function(request,response,options) {\n\toptions = options || {};\n\t// Compose the state object\n\tvar self = this;\n\tvar state = {};\n\tstate.wiki = options.wiki || self.wiki;\n\tstate.boot = options.boot || self.boot;\n\tstate.server = self;\n\tstate.urlInfo = url.parse(request.url);\n\tstate.queryParameters = querystring.parse(state.urlInfo.query);\n\tstate.pathPrefix = options.pathPrefix || this.get(\"path-prefix\") || \"\";\n\t// Get the principals authorized to access this resource\n\tvar authorizationType = this.methodMappings[request.method] || \"readers\";\n\t// Check for the CSRF header if this is a write\n\tif(!this.csrfDisable && authorizationType === \"writers\" && request.headers[\"x-requested-with\"] !== \"TiddlyWiki\") {\n\t\tresponse.writeHead(403,\"'X-Requested-With' header required to login to '\" + this.servername + \"'\");\n\t\tresponse.end();\n\t\treturn;\t\t\n\t}\n\t// Check whether anonymous access is granted\n\tstate.allowAnon = this.isAuthorized(authorizationType,null);\n\t// Authenticate with the first active authenticator\n\tif(this.authenticators.length > 0) {\n\t\tif(!this.authenticators[0].authenticateRequest(request,response,state)) {\n\t\t\t// Bail if we failed (the authenticator will have sent the response)\n\t\t\treturn;\n\t\t}\t\t\n\t}\n\t// Authorize with the authenticated username\n\tif(!this.isAuthorized(authorizationType,state.authenticatedUsername)) {\n\t\tresponse.writeHead(401,\"'\" + state.authenticatedUsername + \"' is not authorized to access '\" + this.servername + \"'\");\n\t\tresponse.end();\n\t\treturn;\n\t}\n\t// Find the route that matches this path\n\tvar route = self.findMatchingRoute(request,state);\n\t// Optionally output debug info\n\tif(self.get(\"debug-level\") !== \"none\") {\n\t\tconsole.log(\"Request path:\",JSON.stringify(state.urlInfo));\n\t\tconsole.log(\"Request headers:\",JSON.stringify(request.headers));\n\t\tconsole.log(\"authenticatedUsername:\",state.authenticatedUsername);\n\t}\n\t// Return a 404 if we didn't find a route\n\tif(!route) {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t\treturn;\n\t}\n\t// Receive the request body if necessary and hand off to the route handler\n\tif(route.bodyFormat === \"stream\" || request.method === \"GET\" || request.method === \"HEAD\") {\n\t\t// Let the route handle the request stream itself\n\t\troute.handler(request,response,state);\n\t} else if(route.bodyFormat === \"string\" || !route.bodyFormat) {\n\t\t// Set the encoding for the incoming request\n\t\trequest.setEncoding(\"utf8\");\n\t\tvar data = \"\";\n\t\trequest.on(\"data\",function(chunk) {\n\t\t\tdata += chunk.toString();\n\t\t});\n\t\trequest.on(\"end\",function() {\n\t\t\tstate.data = data;\n\t\t\troute.handler(request,response,state);\n\t\t});\n\t} else if(route.bodyFormat === \"buffer\") {\n\t\tvar data = [];\n\t\trequest.on(\"data\",function(chunk) {\n\t\t\tdata.push(chunk);\n\t\t});\n\t\trequest.on(\"end\",function() {\n\t\t\tstate.data = Buffer.concat(data);\n\t\t\troute.handler(request,response,state);\n\t\t})\n\t} else {\n\t\tresponse.writeHead(400,\"Invalid bodyFormat \" + route.bodyFormat + \" in route \" + route.method + \" \" + route.path.source);\n\t\tresponse.end();\n\t}\n};\n\n/*\nListen for requests\nport: optional port number (falls back to value of \"port\" variable)\nhost: optional host address (falls back to value of \"host\" variable)\nprefix: optional prefix (falls back to value of \"path-prefix\" variable)\n*/\nServer.prototype.listen = function(port,host,prefix) {\n\tvar self = this;\n\t// Handle defaults for port and host\n\tport = port || this.get(\"port\");\n\thost = host || this.get(\"host\");\n\tprefix = prefix || this.get(\"path-prefix\") || \"\";\n\t// Check for the port being a string and look it up as an environment variable\n\tif(parseInt(port,10).toString() !== port) {\n\t\tport = process.env[port] || 8080;\n\t}\n\t// Warn if required plugins are missing\n\tif(!this.wiki.getTiddler(\"$:/plugins/tiddlywiki/tiddlyweb\") || !this.wiki.getTiddler(\"$:/plugins/tiddlywiki/filesystem\")) {\n\t\t$tw.utils.warning(\"Warning: Plugins required for client-server operation (\\\"tiddlywiki/filesystem\\\" and \\\"tiddlywiki/tiddlyweb\\\") are missing from tiddlywiki.info file\");\n\t}\n\t// Create the server\n\tvar server;\n\tif(this.listenOptions) {\n\t\tserver = this.transport.createServer(this.listenOptions,this.requestHandler.bind(this));\n\t} else {\n\t\tserver = this.transport.createServer(this.requestHandler.bind(this));\n\t}\n\t// Display the port number after we've started listening (the port number might have been specified as zero, in which case we will get an assigned port)\n\tserver.on(\"listening\",function() {\n\t\tvar address = server.address();\n\t\t$tw.utils.log(\"Serving on \" + self.protocol + \"://\" + address.address + \":\" + address.port + prefix,\"brown/orange\");\n\t\t$tw.utils.log(\"(press ctrl-C to exit)\",\"red\");\n\t});\n\t// Listen\n\treturn server.listen(port,host);\n};\n\nexports.Server = Server;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "library"
        },
        "$:/core/modules/browser-messaging.js": {
            "title": "$:/core/modules/browser-messaging.js",
            "text": "/*\\\ntitle: $:/core/modules/browser-messaging.js\ntype: application/javascript\nmodule-type: startup\n\nBrowser message handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"browser-messaging\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n/*\nLoad a specified url as an iframe and call the callback when it is loaded. If the url is already loaded then the existing iframe instance is used\n*/\nfunction loadIFrame(url,callback) {\n\t// Check if iframe already exists\n\tvar iframeInfo = $tw.browserMessaging.iframeInfoMap[url];\n\tif(iframeInfo) {\n\t\t// We've already got the iframe\n\t\tcallback(null,iframeInfo);\n\t} else {\n\t\t// Create the iframe and save it in the list\n\t\tvar iframe = document.createElement(\"iframe\");\n\t\tiframeInfo = {\n\t\t\turl: url,\n\t\t\tstatus: \"loading\",\n\t\t\tdomNode: iframe\n\t\t};\n\t\t$tw.browserMessaging.iframeInfoMap[url] = iframeInfo;\n\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t// Add the iframe to the DOM and hide it\n\t\tiframe.style.display = \"none\";\n\t\tiframe.setAttribute(\"library\",\"true\");\n\t\tdocument.body.appendChild(iframe);\n\t\t// Set up onload\n\t\tiframe.onload = function() {\n\t\t\tiframeInfo.status = \"loaded\";\n\t\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t\tcallback(null,iframeInfo);\n\t\t};\n\t\tiframe.onerror = function() {\n\t\t\tcallback(\"Cannot load iframe\");\n\t\t};\n\t\ttry {\n\t\t\tiframe.src = url;\n\t\t} catch(ex) {\n\t\t\tcallback(ex);\n\t\t}\n\t}\n}\n\n/*\nUnload library iframe for given url\n*/\nfunction unloadIFrame(url){\n\t$tw.utils.each(document.getElementsByTagName('iframe'), function(iframe) {\n\t\tif(iframe.getAttribute(\"library\") === \"true\" &&\n\t\t  iframe.getAttribute(\"src\") === url) {\n\t\t\tiframe.parentNode.removeChild(iframe);\n\t\t}\n\t});\n}\n\nfunction saveIFrameInfoTiddler(iframeInfo) {\n\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),{\n\t\ttitle: \"$:/temp/ServerConnection/\" + iframeInfo.url,\n\t\ttext: iframeInfo.status,\n\t\ttags: [\"$:/tags/ServerConnection\"],\n\t\turl: iframeInfo.url\n\t},$tw.wiki.getModificationFields()));\n}\n\nexports.startup = function() {\n\t// Initialise the store of iframes we've created\n\t$tw.browserMessaging = {\n\t\tiframeInfoMap: {} // Hashmap by URL of {url:,status:\"loading/loaded\",domNode:}\n\t};\n\t// Listen for widget messages to control loading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\tif(url) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers.json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-info\",\n\t\t\t\t\t\t\tinfoTitlePrefix: paramObject.infoTitlePrefix || \"$:/temp/RemoteAssetInfo/\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for widget messages to control unloading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-unload-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\t$tw.browserMessaging.iframeInfoMap[url] = undefined;\n\t\tif(url) {\n\t\t\tunloadIFrame(url);\n\t\t\t$tw.utils.each(\n\t\t\t\t$tw.wiki.filterTiddlers(\"[[$:/temp/ServerConnection/\" + url + \"]] [prefix[$:/temp/RemoteAssetInfo/\" + url + \"/]]\"),\n\t\t\t\tfunction(title) {\n\t\t\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-from-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url,\n\t\t\ttitle = paramObject.title;\n\t\tif(url && title) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers/\" + encodeURIComponent(title) + \".json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-tiddler\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for window messages from other windows\n\twindow.addEventListener(\"message\",function listener(event){\n\t\t// console.log(\"browser-messaging: \",document.location.toString())\n\t\t// console.log(\"browser-messaging: Received message from\",event.origin);\n\t\t// console.log(\"browser-messaging: Message content\",event.data);\n\t\tswitch(event.data.verb) {\n\t\t\tcase \"GET-RESPONSE\":\n\t\t\t\tif(event.data.status.charAt(0) === \"2\") {\n\t\t\t\t\tif(event.data.cookies) {\n\t\t\t\t\t\tif(event.data.cookies.type === \"save-info\") {\n\t\t\t\t\t\t\tvar tiddlers = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\t\t\t\t\ttitle: event.data.cookies.infoTitlePrefix + event.data.cookies.url + \"/\" + tiddler.title,\n\t\t\t\t\t\t\t\t\t\"original-title\": tiddler.title,\n\t\t\t\t\t\t\t\t\ttext: \"\",\n\t\t\t\t\t\t\t\t\ttype: \"text/vnd.tiddlywiki\",\n\t\t\t\t\t\t\t\t\t\"original-type\": tiddler.type,\n\t\t\t\t\t\t\t\t\t\"plugin-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-plugin-type\": tiddler[\"plugin-type\"],\n\t\t\t\t\t\t\t\t\t\"module-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-module-type\": tiddler[\"module-type\"],\n\t\t\t\t\t\t\t\t\ttags: [\"$:/tags/RemoteAssetInfo\"],\n\t\t\t\t\t\t\t\t\t\"original-tags\": $tw.utils.stringifyList(tiddler.tags || []),\n\t\t\t\t\t\t\t\t\t\"server-url\": event.data.cookies.url\n\t\t\t\t\t\t\t\t},$tw.wiki.getModificationFields()));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else if(event.data.cookies.type === \"save-tiddler\") {\n\t\t\t\t\t\t\tvar tiddler = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t},false);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/commands.js": {
            "title": "$:/core/modules/startup/commands.js",
            "text": "/*\\\ntitle: $:/core/modules/startup/commands.js\ntype: application/javascript\nmodule-type: startup\n\nCommand processing\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"commands\";\nexports.platforms = [\"node\"];\nexports.after = [\"story\"];\nexports.synchronous = false;\n\nexports.startup = function(callback) {\n\t// On the server, start a commander with the command line arguments\n\tvar commander = new $tw.Commander(\n\t\t$tw.boot.argv,\n\t\tfunction(err) {\n\t\t\tif(err) {\n\t\t\t\treturn $tw.utils.error(\"Error: \" + err);\n\t\t\t}\n\t\t\tcallback();\n\t\t},\n\t\t$tw.wiki,\n\t\t{output: process.stdout, error: process.stderr}\n\t);\n\tcommander.execute();\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/CSSescape.js": {
            "title": "$:/core/modules/startup/CSSescape.js",
            "text": "/*\\\ntitle: $:/core/modules/startup/CSSescape.js\ntype: application/javascript\nmodule-type: startup\n\nPolyfill for CSS.escape()\n\n\\*/\n(function(root,factory){\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"css-escape\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n/*! https://mths.be/cssescape v1.5.1 by @mathias | MIT license */\n// https://github.com/umdjs/umd/blob/master/returnExports.js\nexports.startup = factory(root);\n}(typeof global != 'undefined' ? global : this, function(root) {\n\n\tif (root.CSS && root.CSS.escape) {\n\t\treturn;\n\t}\n\n\t// https://drafts.csswg.org/cssom/#serialize-an-identifier\n\tvar cssEscape = function(value) {\n\t\tif (arguments.length == 0) {\n\t\t\tthrow new TypeError('`CSS.escape` requires an argument.');\n\t\t}\n\t\tvar string = String(value);\n\t\tvar length = string.length;\n\t\tvar index = -1;\n\t\tvar codeUnit;\n\t\tvar result = '';\n\t\tvar firstCodeUnit = string.charCodeAt(0);\n\t\twhile (++index < length) {\n\t\t\tcodeUnit = string.charCodeAt(index);\n\t\t\t// Note: there’s no need to special-case astral symbols, surrogate\n\t\t\t// pairs, or lone surrogates.\n\n\t\t\t// If the character is NULL (U+0000), then the REPLACEMENT CHARACTER\n\t\t\t// (U+FFFD).\n\t\t\tif (codeUnit == 0x0000) {\n\t\t\t\tresult += '\\uFFFD';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is in the range [\\1-\\1F] (U+0001 to U+001F) or is\n\t\t\t\t// U+007F, […]\n\t\t\t\t(codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F ||\n\t\t\t\t// If the character is the first character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039), […]\n\t\t\t\t(index == 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||\n\t\t\t\t// If the character is the second character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039) and the first character is a `-` (U+002D), […]\n\t\t\t\t(\n\t\t\t\t\tindex == 1 &&\n\t\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 &&\n\t\t\t\t\tfirstCodeUnit == 0x002D\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n\t\t\t\tresult += '\\\\' + codeUnit.toString(16) + ' ';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is the first character and is a `-` (U+002D), and\n\t\t\t\t// there is no second character, […]\n\t\t\t\tindex == 0 &&\n\t\t\t\tlength == 1 &&\n\t\t\t\tcodeUnit == 0x002D\n\t\t\t) {\n\t\t\t\tresult += '\\\\' + string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If the character is not handled by one of the above rules and is\n\t\t\t// greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or\n\t\t\t// is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to\n\t\t\t// U+005A), or [a-z] (U+0061 to U+007A), […]\n\t\t\tif (\n\t\t\t\tcodeUnit >= 0x0080 ||\n\t\t\t\tcodeUnit == 0x002D ||\n\t\t\t\tcodeUnit == 0x005F ||\n\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 ||\n\t\t\t\tcodeUnit >= 0x0041 && codeUnit <= 0x005A ||\n\t\t\t\tcodeUnit >= 0x0061 && codeUnit <= 0x007A\n\t\t\t) {\n\t\t\t\t// the character itself\n\t\t\t\tresult += string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Otherwise, the escaped character.\n\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character\n\t\t\tresult += '\\\\' + string.charAt(index);\n\n\t\t}\n\t\treturn result;\n\t};\n\n\tif (!root.CSS) {\n\t\troot.CSS = {};\n\t}\n\n\troot.CSS.escape = cssEscape;\n\n}));\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/favicon.js": {
            "title": "$:/core/modules/startup/favicon.js",
            "text": "/*\\\ntitle: $:/core/modules/startup/favicon.js\ntype: application/javascript\nmodule-type: startup\n\nFavicon handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"favicon\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\t\t\n// Favicon tiddler\nvar FAVICON_TITLE = \"$:/favicon.ico\";\n\nexports.startup = function() {\n\t// Set up the favicon\n\tsetFavicon();\n\t// Reset the favicon when the tiddler changes\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,FAVICON_TITLE)) {\n\t\t\tsetFavicon();\n\t\t}\n\t});\n};\n\nfunction setFavicon() {\n\tvar tiddler = $tw.wiki.getTiddler(FAVICON_TITLE);\n\tif(tiddler) {\n\t\tvar faviconLink = document.getElementById(\"faviconLink\");\n\t\tfaviconLink.setAttribute(\"href\",$tw.utils.makeDataUri(tiddler.fields.text,tiddler.fields.type,tiddler.fields._canonical_uri));\n\t}\n}\n\n})();\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/info.js": {
            "title": "$:/core/modules/startup/info.js",
            "text": "/*\\\ntitle: $:/core/modules/startup/info.js\ntype: application/javascript\nmodule-type: startup\n\nInitialise $:/info tiddlers via $:/temp/info-plugin pseudo-plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"info\";\nexports.before = [\"startup\"];\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nvar TITLE_INFO_PLUGIN = \"$:/temp/info-plugin\";\n\nexports.startup = function() {\n\t// Function to bake the info plugin with new tiddlers\n\tvar updateInfoPlugin = function(tiddlerFieldsArray) {\n\t\t// Get the existing tiddlers\n\t\tvar json = $tw.wiki.getTiddlerData(TITLE_INFO_PLUGIN,{tiddlers: {}});\n\t\t// Add the new ones\n\t\t$tw.utils.each(tiddlerFieldsArray,function(fields) {\n\t\t\tif(fields && fields.title) {\n\t\t\t\tjson.tiddlers[fields.title] = fields;\n\t\t\t}\n\t\t});\n\t\t// Bake the info tiddlers into a plugin. We use the non-standard plugin-type \"info\" because ordinary plugins are only registered asynchronously after being loaded dynamically\n\t\tvar fields = {\n\t\t\ttitle: TITLE_INFO_PLUGIN,\n\t\t\ttype: \"application/json\",\n\t\t\t\"plugin-type\": \"info\",\n\t\t\ttext: JSON.stringify(json,null,$tw.config.preferences.jsonSpaces)\n\t\t};\n\t\t$tw.wiki.addTiddler(new $tw.Tiddler(fields));\n\n\t};\n\t// Collect up the info tiddlers\n\tvar tiddlerFieldsArray = [];\n\t// Give each info module a chance to provide as many info tiddlers as they want as an array, and give them a callback for dynamically updating them\n\t$tw.modules.forEachModuleOfType(\"info\",function(title,moduleExports) {\n\t\tif(moduleExports && moduleExports.getInfoTiddlerFields) {\n\t\t\tArray.prototype.push.apply(tiddlerFieldsArray,moduleExports.getInfoTiddlerFields(updateInfoPlugin));\n\t\t}\n\t});\n\tupdateInfoPlugin(tiddlerFieldsArray);\n\tvar changes = $tw.wiki.readPluginInfo([TITLE_INFO_PLUGIN]);\n\t$tw.wiki.registerPluginTiddlers(\"info\",[TITLE_INFO_PLUGIN]);\n\t$tw.wiki.unpackPluginTiddlers();\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/load-modules.js": {
            "title": "$:/core/modules/startup/load-modules.js",
            "text": "/*\\\ntitle: $:/core/modules/startup/load-modules.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"load-modules\";\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Load modules\n\t$tw.modules.applyMethods(\"utils\",$tw.utils);\n\tif($tw.node) {\n\t\t$tw.modules.applyMethods(\"utils-node\",$tw.utils);\n\t}\n\t$tw.modules.applyMethods(\"global\",$tw);\n\t$tw.modules.applyMethods(\"config\",$tw.config);\n\t$tw.Tiddler.fieldModules = $tw.modules.getModulesByTypeAsHashmap(\"tiddlerfield\");\n\t$tw.modules.applyMethods(\"tiddlermethod\",$tw.Tiddler.prototype);\n\t$tw.modules.applyMethods(\"wikimethod\",$tw.Wiki.prototype);\n\t$tw.wiki.addIndexersToWiki();\n\t$tw.modules.applyMethods(\"tiddlerdeserializer\",$tw.Wiki.tiddlerDeserializerModules);\n\t$tw.macros = $tw.modules.getModulesByTypeAsHashmap(\"macro\");\n\t$tw.wiki.initParsers();\n\t$tw.Commander.initCommands();\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/password.js": {
            "title": "$:/core/modules/startup/password.js",
            "text": "/*\\\ntitle: $:/core/modules/startup/password.js\ntype: application/javascript\nmodule-type: startup\n\nPassword handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"password\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t$tw.rootWidget.addEventListener(\"tm-set-password\",function(event) {\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: $tw.language.getString(\"Encryption/PromptSetPassword\"),\n\t\t\tnoUserName: true,\n\t\t\tsubmitText: $tw.language.getString(\"Encryption/SetPassword\"),\n\t\t\tcanCancel: true,\n\t\t\trepeatPassword: true,\n\t\t\tcallback: function(data) {\n\t\t\t\tif(data) {\n\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t}\n\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t}\n\t\t});\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-clear-password\",function(event) {\n\t\tif($tw.browser) {\n\t\t\tif(!confirm($tw.language.getString(\"Encryption/ConfirmClearPassword\"))) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t$tw.crypto.setPassword(null);\n\t});\n\t// Ensure that $:/isEncrypted is maintained properly\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,\"$:/isEncrypted\")) {\n\t\t\t$tw.crypto.updateCryptoStateTiddler();\n\t\t}\n\t});\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/plugins.js": {
            "title": "$:/core/modules/startup/plugins.js",
            "text": "/*\\\ntitle: $:/core/modules/startup/plugins.js\ntype: application/javascript\nmodule-type: startup\n\nStartup logic concerned with managing plugins\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"plugins\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nvar TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE = \"$:/status/RequireReloadDueToPluginChange\";\n\nvar PREFIX_CONFIG_REGISTER_PLUGIN_TYPE = \"$:/config/RegisterPluginType/\";\n\nexports.startup = function() {\n\t$tw.wiki.addTiddler({title: TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE,text: \"no\"});\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\t// Work out which of the changed tiddlers are plugins that we need to reregister\n\t\tvar changesToProcess = [],\n\t\t\trequireReloadDueToPluginChange = false;\n\t\t$tw.utils.each(Object.keys(changes),function(title) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title),\n\t\t\t\trequiresReload = $tw.wiki.doesPluginRequireReload(title);\n\t\t\tif(requiresReload) {\n\t\t\t\trequireReloadDueToPluginChange = true;\n\t\t\t} else if(tiddler) {\n\t\t\t\tvar pluginType = tiddler.fields[\"plugin-type\"];\n\t\t\t\tif($tw.wiki.getTiddlerText(PREFIX_CONFIG_REGISTER_PLUGIN_TYPE + (tiddler.fields[\"plugin-type\"] || \"\"),\"no\") === \"yes\") {\n\t\t\t\t\tchangesToProcess.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\t// Issue warning if any of the tiddlers require a reload\n\t\tif(requireReloadDueToPluginChange) {\n\t\t\t$tw.wiki.addTiddler({title: TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE,text: \"yes\"});\n\t\t}\n\t\t// Read or delete the plugin info of the changed tiddlers\n\t\tif(changesToProcess.length > 0) {\n\t\t\tvar changes = $tw.wiki.readPluginInfo(changesToProcess);\n\t\t\tif(changes.modifiedPlugins.length > 0 || changes.deletedPlugins.length > 0) {\n\t\t\t\tvar changedShadowTiddlers = {};\n\t\t\t\t// Collect the shadow tiddlers of any deleted plugins\n\t\t\t\t$tw.utils.each(changes.deletedPlugins,function(pluginTitle) {\n\t\t\t\t\tvar pluginInfo = $tw.wiki.getPluginInfo(pluginTitle);\n\t\t\t\t\tif(pluginInfo) {\n\t\t\t\t\t\t$tw.utils.each(Object.keys(pluginInfo.tiddlers),function(title) {\n\t\t\t\t\t\t\tchangedShadowTiddlers[title] = true;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t// Collect the shadow tiddlers of any modified plugins\n\t\t\t\t$tw.utils.each(changes.modifiedPlugins,function(pluginTitle) {\n\t\t\t\t\tvar pluginInfo = $tw.wiki.getPluginInfo(pluginTitle);\n\t\t\t\t\tif(pluginInfo) {\n\t\t\t\t\t\t$tw.utils.each(Object.keys(pluginInfo.tiddlers),function(title) {\n\t\t\t\t\t\t\tchangedShadowTiddlers[title] = false;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t// (Re-)register any modified plugins\n\t\t\t\t$tw.wiki.registerPluginTiddlers(null,changes.modifiedPlugins);\n\t\t\t\t// Unregister any deleted plugins\n\t\t\t\t$tw.wiki.unregisterPluginTiddlers(null,changes.deletedPlugins);\n\t\t\t\t// Unpack the shadow tiddlers\n\t\t\t\t$tw.wiki.unpackPluginTiddlers();\n\t\t\t\t// Queue change events for the changed shadow tiddlers\n\t\t\t\t$tw.utils.each(Object.keys(changedShadowTiddlers),function(title) {\n\t\t\t\t\t$tw.wiki.enqueueTiddlerEvent(title,changedShadowTiddlers[title]);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/render.js": {
            "title": "$:/core/modules/startup/render.js",
            "text": "/*\\\ntitle: $:/core/modules/startup/render.js\ntype: application/javascript\nmodule-type: startup\n\nTitle, stylesheet and page rendering\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"render\";\nexports.platforms = [\"browser\"];\nexports.after = [\"story\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar PAGE_TITLE_TITLE = \"$:/core/wiki/title\";\nvar PAGE_STYLESHEET_TITLE = \"$:/core/ui/PageStylesheet\";\nvar PAGE_TEMPLATE_TITLE = \"$:/core/ui/RootTemplate\";\n\n// Time (in ms) that we defer refreshing changes to draft tiddlers\nvar DRAFT_TIDDLER_TIMEOUT_TITLE = \"$:/config/Drafts/TypingTimeout\";\nvar THROTTLE_REFRESH_TIMEOUT = 400;\n\nexports.startup = function() {\n\t// Set up the title\n\t$tw.titleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TITLE_TITLE,{document: $tw.fakeDocument, parseAsInline: true});\n\t$tw.titleContainer = $tw.fakeDocument.createElement(\"div\");\n\t$tw.titleWidgetNode.render($tw.titleContainer,null);\n\tdocument.title = $tw.titleContainer.textContent;\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.titleWidgetNode.refresh(changes,$tw.titleContainer,null)) {\n\t\t\tdocument.title = $tw.titleContainer.textContent;\n\t\t}\n\t});\n\t// Set up the styles\n\t$tw.styleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_STYLESHEET_TITLE,{document: $tw.fakeDocument});\n\t$tw.styleContainer = $tw.fakeDocument.createElement(\"style\");\n\t$tw.styleWidgetNode.render($tw.styleContainer,null);\n\t$tw.styleElement = document.createElement(\"style\");\n\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\tdocument.head.insertBefore($tw.styleElement,document.head.firstChild);\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"styleRefresh\",function(changes) {\n\t\tif($tw.styleWidgetNode.refresh(changes,$tw.styleContainer,null)) {\n\t\t\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\t\t}\n\t}));\n\t// Display the $:/core/ui/PageTemplate tiddler to kick off the display\n\t$tw.perf.report(\"mainRender\",function() {\n\t\t$tw.pageWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TEMPLATE_TITLE,{document: document, parentWidget: $tw.rootWidget, recursionMarker: \"no\"});\n\t\t$tw.pageContainer = document.createElement(\"div\");\n\t\t$tw.utils.addClass($tw.pageContainer,\"tc-page-container-wrapper\");\n\t\tdocument.body.insertBefore($tw.pageContainer,document.body.firstChild);\n\t\t$tw.pageWidgetNode.render($tw.pageContainer,null);\n   \t\t$tw.hooks.invokeHook(\"th-page-refreshed\");\n\t})();\n\t// Remove any splash screen elements\n\tvar removeList = document.querySelectorAll(\".tc-remove-when-wiki-loaded\");\n\t$tw.utils.each(removeList,function(removeItem) {\n\t\tif(removeItem.parentNode) {\n\t\t\tremoveItem.parentNode.removeChild(removeItem);\n\t\t}\n\t});\n\t// Prepare refresh mechanism\n\tvar deferredChanges = Object.create(null),\n\t\ttimerId;\n\tfunction refresh() {\n\t\t// Process the refresh\n\t\t$tw.hooks.invokeHook(\"th-page-refreshing\");\n\t\t$tw.pageWidgetNode.refresh(deferredChanges);\n\t\tdeferredChanges = Object.create(null);\n\t\t$tw.hooks.invokeHook(\"th-page-refreshed\");\n\t}\n\t// Add the change event handler\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"mainRefresh\",function(changes) {\n\t\t// Check if only tiddlers that are throttled have changed\n\t\tvar onlyThrottledTiddlersHaveChanged = true;\n\t\tfor(var title in changes) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(!tiddler || !(tiddler.hasField(\"draft.of\") || tiddler.hasField(\"throttle.refresh\"))) {\n\t\t\t\tonlyThrottledTiddlersHaveChanged = false;\n\t\t\t}\n\t\t}\n\t\t// Defer the change if only drafts have changed\n\t\tif(timerId) {\n\t\t\tclearTimeout(timerId);\n\t\t}\n\t\ttimerId = null;\n\t\tif(onlyThrottledTiddlersHaveChanged) {\n\t\t\tvar timeout = parseInt($tw.wiki.getTiddlerText(DRAFT_TIDDLER_TIMEOUT_TITLE,\"\"),10);\n\t\t\tif(isNaN(timeout)) {\n\t\t\t\ttimeout = THROTTLE_REFRESH_TIMEOUT;\n\t\t\t}\n\t\t\ttimerId = setTimeout(refresh,timeout);\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t} else {\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t\trefresh();\n\t\t}\n\t}));\n\t// Fix up the link between the root widget and the page container\n\t$tw.rootWidget.domNodes = [$tw.pageContainer];\n\t$tw.rootWidget.children = [$tw.pageWidgetNode];\n\t// Run any post-render startup actions\n\t$tw.rootWidget.invokeActionsByTag(\"$:/tags/StartupAction/PostRender\");\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/rootwidget.js": {
            "title": "$:/core/modules/startup/rootwidget.js",
            "text": "/*\\\ntitle: $:/core/modules/startup/rootwidget.js\ntype: application/javascript\nmodule-type: startup\n\nSetup the root widget and the core root widget handlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"rootwidget\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.before = [\"story\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Install the modal message mechanism\n\t$tw.modal = new $tw.utils.Modal($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-modal\",function(event) {\n\t\t$tw.modal.display(event.param,{variables: event.paramObject, event: event});\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-show-switcher\",function(event) {\n\t\t$tw.modal.display(\"$:/core/ui/SwitcherModal\",{variables: event.paramObject, event: event});\n\t});\t\n\t// Install the notification  mechanism\n\t$tw.notifier = new $tw.utils.Notifier($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-notify\",function(event) {\n\t\t$tw.notifier.display(event.param,{variables: event.paramObject});\n\t});\n\t// Install the copy-to-clipboard  mechanism\n\t$tw.rootWidget.addEventListener(\"tm-copy-to-clipboard\",function(event) {\n\t\t$tw.utils.copyToClipboard(event.param);\n\t});\n\t// Install the tm-focus-selector message\n\t$tw.rootWidget.addEventListener(\"tm-focus-selector\",function(event) {\n\t\tvar selector = event.param || \"\",\n\t\t\telement;\n\t\ttry {\n\t\t\telement = document.querySelector(selector);\n\t\t} catch(e) {\n\t\t\tconsole.log(\"Error in selector: \",selector)\n\t\t}\n\t\tif(element && element.focus) {\n\t\t\telement.focus(event.paramObject);\n\t\t}\n\t});\n\t// Install the scroller\n\t$tw.pageScroller = new $tw.utils.PageScroller();\n\t$tw.rootWidget.addEventListener(\"tm-scroll\",function(event) {\n\t\t$tw.pageScroller.handleEvent(event);\n\t});\n\tvar fullscreen = $tw.utils.getFullScreenApis();\n\tif(fullscreen) {\n\t\t$tw.rootWidget.addEventListener(\"tm-full-screen\",function(event) {\n\t\t\tvar fullScreenDocument = event.event ? event.event.target.ownerDocument : document;\n\t\t\tif(event.param === \"enter\") {\n\t\t\t\tfullScreenDocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t} else if(event.param === \"exit\") {\n\t\t\t\tfullScreenDocument[fullscreen._exitFullscreen]();\n\t\t\t} else {\n\t\t\t\tif(fullScreenDocument[fullscreen._fullscreenElement]) {\n\t\t\t\t\tfullScreenDocument[fullscreen._exitFullscreen]();\n\t\t\t\t} else {\n\t\t\t\t\tfullScreenDocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t\t}\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\t// If we're being viewed on a data: URI then give instructions for how to save\n\tif(document.location.protocol === \"data:\") {\n\t\t$tw.rootWidget.dispatchEvent({\n\t\t\ttype: \"tm-modal\",\n\t\t\tparam: \"$:/language/Modals/SaveInstructions\"\n\t\t});\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup.js": {
            "title": "$:/core/modules/startup.js",
            "text": "/*\\\ntitle: $:/core/modules/startup.js\ntype: application/javascript\nmodule-type: startup\n\nMiscellaneous startup logic for both the client and server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"startup\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\n// Set to `true` to enable performance instrumentation\nvar PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE = \"$:/config/Performance/Instrumentation\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.startup = function() {\n\tvar modules,n,m,f;\n\t// Minimal browser detection\n\tif($tw.browser) {\n\t\t$tw.browser.isIE = (/msie|trident/i.test(navigator.userAgent));\n\t\t$tw.browser.isFirefox = !!document.mozFullScreenEnabled;\n\t}\n\t// Platform detection\n\t$tw.platform = {};\n\tif($tw.browser) {\n\t\t$tw.platform.isMac = /Mac/.test(navigator.platform);\n\t\t$tw.platform.isWindows = /win/i.test(navigator.platform);\n\t\t$tw.platform.isLinux = /Linux/i.test(navigator.platform);\n\t} else {\n\t\tswitch(require(\"os\").platform()) {\n\t\t\tcase \"darwin\":\n\t\t\t\t$tw.platform.isMac = true;\n\t\t\t\tbreak;\n\t\t\tcase \"win32\":\n\t\t\t\t$tw.platform.isWindows = true;\n\t\t\t\tbreak;\n\t\t\tcase \"freebsd\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t\tcase \"linux\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\t// Initialise version\n\t$tw.version = $tw.utils.extractVersionInfo();\n\t// Set up the performance framework\n\t$tw.perf = new $tw.Performance($tw.wiki.getTiddlerText(PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE,\"no\") === \"yes\");\n\t// Create a root widget for attaching event handlers. By using it as the parentWidget for another widget tree, one can reuse the event handlers\n\t$tw.rootWidget = new widget.widget({\n\t\ttype: \"widget\",\n\t\tchildren: []\n\t},{\n\t\twiki: $tw.wiki,\n\t\tdocument: $tw.browser ? document : $tw.fakeDocument\n\t});\n\t// Execute any startup actions\n\t$tw.rootWidget.invokeActionsByTag(\"$:/tags/StartupAction\");\n\tif($tw.browser) {\n\t\t$tw.rootWidget.invokeActionsByTag(\"$:/tags/StartupAction/Browser\");\t\t\n\t}\n\tif($tw.node) {\n\t\t$tw.rootWidget.invokeActionsByTag(\"$:/tags/StartupAction/Node\");\t\t\n\t}\n\t// Kick off the language manager and switcher\n\t$tw.language = new $tw.Language();\n\t$tw.languageSwitcher = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"language\",\n\t\tcontrollerTitle: \"$:/language\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/languages/en-GB\"\n\t\t],\n\t\tonSwitch: function(plugins) {\n\t\t\tif($tw.browser) {\n\t\t\t\tvar pluginTiddler = $tw.wiki.getTiddler(plugins[0]);\n\t\t\t\tif(pluginTiddler) {\n\t\t\t\t\tdocument.documentElement.setAttribute(\"dir\",pluginTiddler.getFieldString(\"text-direction\") || \"auto\");\n\t\t\t\t} else {\n\t\t\t\t\tdocument.documentElement.removeAttribute(\"dir\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// Kick off the theme manager\n\t$tw.themeManager = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"theme\",\n\t\tcontrollerTitle: \"$:/theme\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/themes/tiddlywiki/snowwhite\",\n\t\t\t\"$:/themes/tiddlywiki/vanilla\"\n\t\t]\n\t});\n\t// Kick off the keyboard manager\n\t$tw.keyboardManager = new $tw.KeyboardManager();\n\t// Listen for shortcuts\n\tif($tw.browser) {\n\t\t$tw.utils.addEventListeners(document,[{\n\t\t\tname: \"keydown\",\n\t\t\thandlerObject: $tw.keyboardManager,\n\t\t\thandlerMethod: \"handleKeydownEvent\"\n\t\t}]);\n\t}\n\t// Clear outstanding tiddler store change events to avoid an unnecessary refresh cycle at startup\n\t$tw.wiki.clearTiddlerEventQueue();\n\t// Find a working syncadaptor\n\t$tw.syncadaptor = undefined;\n\t$tw.modules.forEachModuleOfType(\"syncadaptor\",function(title,module) {\n\t\tif(!$tw.syncadaptor && module.adaptorClass) {\n\t\t\t$tw.syncadaptor = new module.adaptorClass({wiki: $tw.wiki});\n\t\t}\n\t});\n\t// Set up the syncer object if we've got a syncadaptor\n\tif($tw.syncadaptor) {\n\t\t$tw.syncer = new $tw.Syncer({wiki: $tw.wiki, syncadaptor: $tw.syncadaptor});\n\t}\n\t// Setup the saver handler\n\t$tw.saverHandler = new $tw.SaverHandler({\n\t\twiki: $tw.wiki,\n\t\tdirtyTracking: !$tw.syncadaptor,\n\t\tpreloadDirty: $tw.boot.preloadDirty || []\n\t});\n\t// Host-specific startup\n\tif($tw.browser) {\n\t\t// Install the popup manager\n\t\t$tw.popup = new $tw.utils.Popup();\n\t\t// Install the animator\n\t\t$tw.anim = new $tw.utils.Animator();\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/story.js": {
            "title": "$:/core/modules/startup/story.js",
            "text": "/*\\\ntitle: $:/core/modules/startup/story.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"story\";\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar DEFAULT_STORY_TITLE = \"$:/StoryList\";\nvar DEFAULT_HISTORY_TITLE = \"$:/HistoryList\";\n\n// Default tiddlers\nvar DEFAULT_TIDDLERS_TITLE = \"$:/DefaultTiddlers\";\n\n// Config\nvar CONFIG_UPDATE_ADDRESS_BAR = \"$:/config/Navigation/UpdateAddressBar\"; // Can be \"no\", \"permalink\", \"permaview\"\nvar CONFIG_UPDATE_HISTORY = \"$:/config/Navigation/UpdateHistory\"; // Can be \"yes\" or \"no\"\nvar CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD = \"$:/config/Navigation/Permalinkview/CopyToClipboard\"; // Can be \"yes\" (default) or \"no\"\nvar CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR = \"$:/config/Navigation/Permalinkview/UpdateAddressBar\"; // Can be \"yes\" (default) or \"no\"\n\n\n// Links to help, if there is no param\nvar HELP_OPEN_EXTERNAL_WINDOW = \"http://tiddlywiki.com/#WidgetMessage%3A%20tm-open-external-window\";\n\nexports.startup = function() {\n\t// Open startup tiddlers\n\topenStartupTiddlers({\n\t\tdisableHistory: $tw.boot.disableStartupNavigation\n\t});\n\tif($tw.browser) {\n\t\t// Set up location hash update\n\t\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\t\tif($tw.utils.hop(changes,DEFAULT_STORY_TITLE) || $tw.utils.hop(changes,DEFAULT_HISTORY_TITLE)) {\n\t\t\t\tupdateLocationHash({\n\t\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_UPDATE_ADDRESS_BAR,\"permaview\").trim(),\n\t\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim()\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\t// Listen for changes to the browser location hash\n\t\twindow.addEventListener(\"hashchange\",function() {\n\t\t\tvar hash = $tw.utils.getLocationHash();\n\t\t\tif(hash !== $tw.locationHash) {\n\t\t\t\t$tw.locationHash = hash;\n\t\t\t\topenStartupTiddlers({defaultToCurrentStory: true});\n\t\t\t}\n\t\t},false);\n\t\t// Listen for the tm-browser-refresh message\n\t\t$tw.rootWidget.addEventListener(\"tm-browser-refresh\",function(event) {\n\t\t\twindow.location.reload(true);\n\t\t});\n\t\t// Listen for tm-open-external-window message\n\t\t$tw.rootWidget.addEventListener(\"tm-open-external-window\",function(event) {\n\t\t\tvar paramObject = event.paramObject || {},\n\t\t\t\tstrUrl = event.param || HELP_OPEN_EXTERNAL_WINDOW,\n\t\t\t\tstrWindowName = paramObject.windowName,\n\t\t\t\tstrWindowFeatures = paramObject.windowFeatures;\n\t\t\twindow.open(strUrl, strWindowName, strWindowFeatures);\n\t\t});\n\t\t// Listen for the tm-print message\n\t\t$tw.rootWidget.addEventListener(\"tm-print\",function(event) {\n\t\t\t(event.event.view || window).print();\n\t\t});\n\t\t// Listen for the tm-home message\n\t\t$tw.rootWidget.addEventListener(\"tm-home\",function(event) {\n\t\t\twindow.location.hash = \"\";\n\t\t\tvar storyFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE),\n\t\t\t\tstoryList = $tw.wiki.filterTiddlers(storyFilter);\n\t\t\t//invoke any hooks that might change the default story list\n\t\t\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t\t\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t\t\tif(storyList[0]) {\n\t\t\t\t$tw.wiki.addToHistory(storyList[0]);\n\t\t\t}\n\t\t});\n\t\t// Listen for the tm-permalink message\n\t\t$tw.rootWidget.addEventListener(\"tm-permalink\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR,\"yes\").trim() === \"yes\" ? \"permalink\" : \"none\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle,\n\t\t\t\tcopyToClipboard: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD,\"yes\").trim() === \"yes\" ? \"permalink\" : \"none\"\n\t\t\t});\n\t\t});\n\t\t// Listen for the tm-permaview message\n\t\t$tw.rootWidget.addEventListener(\"tm-permaview\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR,\"yes\").trim() === \"yes\" ? \"permaview\" : \"none\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle,\n\t\t\t\tcopyToClipboard: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD,\"yes\").trim() === \"yes\" ? \"permaview\" : \"none\"\n\t\t\t});\t\t\t\t\n\t\t});\n\t}\n};\n\n/*\nProcess the location hash to open the specified tiddlers. Options:\ndisableHistory: if true $:/History is NOT updated\ndefaultToCurrentStory: If true, the current story is retained as the default, instead of opening the default tiddlers\n*/\nfunction openStartupTiddlers(options) {\n\toptions = options || {};\n\t// Work out the target tiddler and the story filter. \"null\" means \"unspecified\"\n\tvar target = null,\n\t\tstoryFilter = null;\n\tif($tw.locationHash.length > 1) {\n\t\tvar hash = $tw.locationHash.substr(1),\n\t\t\tsplit = hash.indexOf(\":\");\n\t\tif(split === -1) {\n\t\t\ttarget = decodeURIComponent(hash.trim());\n\t\t} else {\n\t\t\ttarget = decodeURIComponent(hash.substr(0,split).trim());\n\t\t\tstoryFilter = decodeURIComponent(hash.substr(split + 1).trim());\n\t\t}\n\t}\n\t// If the story wasn't specified use the current tiddlers or a blank story\n\tif(storyFilter === null) {\n\t\tif(options.defaultToCurrentStory) {\n\t\t\tvar currStoryList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE);\n\t\t\tstoryFilter = $tw.utils.stringifyList(currStoryList);\n\t\t} else {\n\t\t\tif(target && target !== \"\") {\n\t\t\t\tstoryFilter = \"\";\n\t\t\t} else {\n\t\t\t\tstoryFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE);\n\t\t\t}\n\t\t}\n\t}\n\t// Process the story filter to get the story list\n\tvar storyList = $tw.wiki.filterTiddlers(storyFilter);\n\t// Invoke any hooks that want to change the default story list\n\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t// If the target tiddler isn't included then splice it in at the top\n\tif(target && storyList.indexOf(target) === -1) {\n\t\tstoryList.unshift(target);\n\t}\n\t// Save the story list\n\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t// Update history\n\tvar story = new $tw.Story({\n\t\twiki: $tw.wiki,\n\t\tstoryTitle: DEFAULT_STORY_TITLE,\n\t\thistoryTitle: DEFAULT_HISTORY_TITLE\n\t});\n\tif(!options.disableHistory) {\n\t\t// If a target tiddler was specified add it to the history stack\n\t\tif(target && target !== \"\") {\n\t\t\t// The target tiddler doesn't need double square brackets, but we'll silently remove them if they're present\n\t\t\tif(target.indexOf(\"[[\") === 0 && target.substr(-2) === \"]]\") {\n\t\t\t\ttarget = target.substr(2,target.length - 4);\n\t\t\t}\n\t\t\tstory.addToHistory(target);\n\t\t} else if(storyList.length > 0) {\n\t\t\tstory.addToHistory(storyList[0]);\n\t\t}\t\t\n\t}\n}\n\n/*\noptions: See below\noptions.updateAddressBar: \"permalink\", \"permaview\" or \"no\" (defaults to \"permaview\")\noptions.updateHistory: \"yes\" or \"no\" (defaults to \"no\")\noptions.copyToClipboard: \"permalink\", \"permaview\" or \"no\" (defaults to \"no\")\noptions.targetTiddler: optional title of target tiddler for permalink\n*/\nfunction updateLocationHash(options) {\n\t// Get the story and the history stack\n\tvar storyList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE),\n\t\thistoryList = $tw.wiki.getTiddlerData(DEFAULT_HISTORY_TITLE,[]),\n\t\ttargetTiddler = \"\";\n\tif(options.targetTiddler) {\n\t\ttargetTiddler = options.targetTiddler;\n\t} else {\n\t\t// The target tiddler is the one at the top of the stack\n\t\tif(historyList.length > 0) {\n\t\t\ttargetTiddler = historyList[historyList.length-1].title;\n\t\t}\n\t\t// Blank the target tiddler if it isn't present in the story\n\t\tif(storyList.indexOf(targetTiddler) === -1) {\n\t\t\ttargetTiddler = \"\";\n\t\t}\n\t}\n\t// Assemble the location hash\n\tswitch(options.updateAddressBar) {\n\t\tcase \"permalink\":\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler);\n\t\t\tbreak;\n\t\tcase \"permaview\":\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList));\n\t\t\tbreak;\n\t}\n\t// Copy URL to the clipboard\n\tswitch(options.copyToClipboard) {\n\t\tcase \"permalink\":\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getLocationPath() + \"#\" + encodeURIComponent(targetTiddler));\n\t\t\tbreak;\n\t\tcase \"permaview\":\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getLocationPath() + \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList)));\n\t\t\tbreak;\n\t}\n\t// Only change the location hash if we must, thus avoiding unnecessary onhashchange events\n\tif($tw.utils.getLocationHash() !== $tw.locationHash) {\n\t\tif(options.updateHistory === \"yes\") {\n\t\t\t// Assign the location hash so that history is updated\n\t\t\twindow.location.hash = $tw.locationHash;\n\t\t} else {\n\t\t\t// We use replace so that browser history isn't affected\n\t\t\twindow.location.replace(window.location.toString().split(\"#\")[0] + $tw.locationHash);\n\t\t}\n\t}\n}\n\n})();\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/windows.js": {
            "title": "$:/core/modules/startup/windows.js",
            "text": "/*\\\ntitle: $:/core/modules/startup/windows.js\ntype: application/javascript\nmodule-type: startup\n\nSetup root widget handlers for the messages concerned with opening external browser windows\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"windows\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Global to keep track of open windows (hashmap by title)\n$tw.windows = {};\n\nexports.startup = function() {\n\t// Handle open window message\n\t$tw.rootWidget.addEventListener(\"tm-open-window\",function(event) {\n\t\t// Get the parameters\n\t\tvar refreshHandler,\n\t\t\ttitle = event.param || event.tiddlerTitle,\n\t\t\tparamObject = event.paramObject || {},\n\t\t\twindowTitle = paramObject.windowTitle || title,\n\t\t\ttemplate = paramObject.template || \"$:/core/templates/single.tiddler.window\",\n\t\t\twidth = paramObject.width || \"700\",\n\t\t\theight = paramObject.height || \"600\",\n\t\t\tvariables = $tw.utils.extend({},paramObject,{currentTiddler: title});\n\t\t// Open the window\n\t\tvar srcWindow,\n\t\t    srcDocument;\n\t\t// In case that popup blockers deny opening a new window\n\t\ttry {\n\t\t\tsrcWindow = window.open(\"\",\"external-\" + title,\"scrollbars,width=\" + width + \",height=\" + height),\n\t\t\tsrcDocument = srcWindow.document;\n\t\t}\n\t\tcatch(e) {\n\t\t\treturn;\n\t\t}\n\t\t$tw.windows[title] = srcWindow;\n\t\t// Check for reopening the same window\n\t\tif(srcWindow.haveInitialisedWindow) {\n\t\t\treturn;\n\t\t}\n\t\t// Initialise the document\n\t\tsrcDocument.write(\"<html><head></head><body class='tc-body tc-single-tiddler-window'></body></html>\");\n\t\tsrcDocument.close();\n\t\tsrcDocument.title = windowTitle;\n\t\tsrcWindow.addEventListener(\"beforeunload\",function(event) {\n\t\t\tdelete $tw.windows[title];\n\t\t\t$tw.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t},false);\n\t\t// Set up the styles\n\t\tvar styleWidgetNode = $tw.wiki.makeTranscludeWidget(\"$:/core/ui/PageStylesheet\",{\n\t\t\t\tdocument: $tw.fakeDocument,\n\t\t\t\tvariables: variables,\n\t\t\t\timportPageMacros: true}),\n\t\t\tstyleContainer = $tw.fakeDocument.createElement(\"style\");\n\t\tstyleWidgetNode.render(styleContainer,null);\n\t\tvar styleElement = srcDocument.createElement(\"style\");\n\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\tsrcDocument.head.insertBefore(styleElement,srcDocument.head.firstChild);\n\t\t// Render the text of the tiddler\n\t\tvar parser = $tw.wiki.parseTiddler(template),\n\t\t\twidgetNode = $tw.wiki.makeWidget(parser,{document: srcDocument, parentWidget: $tw.rootWidget, variables: variables});\n\t\twidgetNode.render(srcDocument.body,srcDocument.body.firstChild);\n\t\t// Function to handle refreshes\n\t\trefreshHandler = function(changes) {\n\t\t\tif(styleWidgetNode.refresh(changes,styleContainer,null)) {\n\t\t\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\t\t}\n\t\t\twidgetNode.refresh(changes);\n\t\t};\n\t\t$tw.wiki.addEventListener(\"change\",refreshHandler);\n\t\t// Listen for keyboard shortcuts\n\t\t$tw.utils.addEventListeners(srcDocument,[{\n\t\t\tname: \"keydown\",\n\t\t\thandlerObject: $tw.keyboardManager,\n\t\t\thandlerMethod: \"handleKeydownEvent\"\n\t\t}]);\n\t\tsrcWindow.document.documentElement.addEventListener(\"click\",$tw.popup,true);\n\t\tsrcWindow.haveInitialisedWindow = true;\n\t});\n\t// Close open windows when unloading main window\n\t$tw.addUnloadTask(function() {\n\t\t$tw.utils.each($tw.windows,function(win) {\n\t\t\twin.close();\n\t\t});\n\t});\n\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/story.js": {
            "title": "$:/core/modules/story.js",
            "text": "/*\\\ntitle: $:/core/modules/story.js\ntype: application/javascript\nmodule-type: global\n\nLightweight object for managing interactions with the story and history lists.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nConstruct Story object with options:\nwiki: reference to wiki object to use to resolve tiddler titles\nstoryTitle: title of story list tiddler\nhistoryTitle: title of history list tiddler\n*/\nfunction Story(options) {\n\toptions = options || {};\n\tthis.wiki = options.wiki || $tw.wiki;\n\tthis.storyTitle = options.storyTitle || \"$:/StoryList\";\n\tthis.historyTitle = options.historyTitle || \"$:/HistoryList\";\n};\n\nStory.prototype.navigateTiddler = function(navigateTo,navigateFromTitle,navigateFromClientRect) {\n\tthis.addToStory(navigateTo,navigateFromTitle);\n\tthis.addToHistory(navigateTo,navigateFromClientRect);\n};\n\nStory.prototype.getStoryList = function() {\n\treturn this.wiki.getTiddlerList(this.storyTitle) || [];\n};\n\nStory.prototype.addToStory = function(navigateTo,navigateFromTitle,options) {\n\toptions = options || {};\n\tvar storyList = this.getStoryList();\n\t// See if the tiddler is already there\n\tvar slot = storyList.indexOf(navigateTo);\n\t// Quit if it already exists in the story river\n\tif(slot >= 0) {\n\t\treturn;\n\t}\n\t// First we try to find the position of the story element we navigated from\n\tvar fromIndex = storyList.indexOf(navigateFromTitle);\n\tif(fromIndex >= 0) {\n\t\t// The tiddler is added from inside the river\n\t\t// Determine where to insert the tiddler; Fallback is \"below\"\n\t\tswitch(options.openLinkFromInsideRiver) {\n\t\t\tcase \"top\":\n\t\t\t\tslot = 0;\n\t\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tslot = storyList.length;\n\t\t\t\tbreak;\n\t\t\tcase \"above\":\n\t\t\t\tslot = fromIndex;\n\t\t\t\tbreak;\n\t\t\tcase \"below\": // Intentional fall-through\n\t\t\tdefault:\n\t\t\t\tslot = fromIndex + 1;\n\t\t\t\tbreak;\n\t\t}\n\t} else {\n\t\t// The tiddler is opened from outside the river. Determine where to insert the tiddler; default is \"top\"\n\t\tif(options.openLinkFromOutsideRiver === \"bottom\") {\n\t\t\t// Insert at bottom\n\t\t\tslot = storyList.length;\n\t\t} else {\n\t\t\t// Insert at top\n\t\t\tslot = 0;\n\t\t}\n\t}\n\t// Add the tiddler\n\tstoryList.splice(slot,0,navigateTo);\n\t// Save the story\n\tthis.saveStoryList(storyList);\n};\n\nStory.prototype.saveStoryList = function(storyList) {\n\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\t{title: this.storyTitle},\n\t\tstoryTiddler,\n\t\t{list: storyList},\n\t\tthis.wiki.getModificationFields()\n\t));\n};\n\nStory.prototype.addToHistory = function(navigateTo,navigateFromClientRect) {\n\tvar titles = $tw.utils.isArray(navigateTo) ? navigateTo : [navigateTo];\n\t// Add a new record to the top of the history stack\n\tvar historyList = this.wiki.getTiddlerData(this.historyTitle,[]);\n\t$tw.utils.each(titles,function(title) {\n\t\thistoryList.push({title: title, fromPageRect: navigateFromClientRect});\n\t});\n\tthis.wiki.setTiddlerData(this.historyTitle,historyList,{\"current-tiddler\": titles[titles.length-1]});\n};\n\nStory.prototype.storyCloseTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCloseAllTiddlers = function() {\n// TBD\n};\n\nStory.prototype.storyCloseOtherTiddlers = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyEditTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyDeleteTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storySaveTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCancelTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyNewTiddler = function(targetTitle) {\n// TBD\n};\n\nexports.Story = Story;\n\n\n})();\n",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/storyviews/classic.js": {
            "title": "$:/core/modules/storyviews/classic.js",
            "text": "/*\\\ntitle: $:/core/modules/storyviews/classic.js\ntype: application/javascript\nmodule-type: storyview\n\nViews the story as a linear sequence\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ClassicStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nClassicStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar duration = $tw.utils.getAnimationDuration()\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\tif(duration) {\n\t\t// Scroll the node into view\n\t\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\t\n\t} else {\n\t\ttargetElement.scrollIntoView();\n\t}\n};\n\nClassicStoryView.prototype.insert = function(widget) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tif(duration) {\n\t\tvar targetElement = widget.findFirstDomNode();\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(targetElement instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\t\t// Get the current height of the tiddler\n\t\tvar computedStyle = window.getComputedStyle(targetElement),\n\t\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t\t// Reset the margin once the transition is over\n\t\tsetTimeout(function() {\n\t\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t\t{transition: \"none\"},\n\t\t\t\t{marginBottom: \"\"}\n\t\t\t]);\n\t\t},duration);\n\t\t// Set up the initial position of the element\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t\t{opacity: \"0.0\"}\n\t\t]);\n\t\t$tw.utils.forceLayout(targetElement);\n\t\t// Transition to the final position\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t\t{opacity: \"1.0\"}\n\t]);\n\t}\n};\n\nClassicStoryView.prototype.remove = function(widget) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tif(duration) {\n\t\tvar targetElement = widget.findFirstDomNode(),\n\t\t\tremoveElement = function() {\n\t\t\t\twidget.removeChildDomNodes();\n\t\t\t};\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(targetElement instanceof Element)) {\n\t\t\tremoveElement();\n\t\t\treturn;\n\t\t}\n\t\t// Get the current height of the tiddler\n\t\tvar currWidth = targetElement.offsetWidth,\n\t\t\tcomputedStyle = window.getComputedStyle(targetElement),\n\t\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t\t// Remove the dom nodes of the widget at the end of the transition\n\t\tsetTimeout(removeElement,duration);\n\t\t// Animate the closure\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{transform: \"translateX(0px)\"},\n\t\t\t{marginBottom:  currMarginBottom + \"px\"},\n\t\t\t{opacity: \"1.0\"}\n\t\t]);\n\t\t$tw.utils.forceLayout(targetElement);\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t\t{transform: \"translateX(-\" + currWidth + \"px)\"},\n\t\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t\t{opacity: \"0.0\"}\n\t\t]);\n\t} else {\n\t\twidget.removeChildDomNodes();\n\t}\n};\n\nexports.classic = ClassicStoryView;\n\n})();",
            "type": "application/javascript",
            "module-type": "storyview"
        },
        "$:/core/modules/storyviews/pop.js": {
            "title": "$:/core/modules/storyviews/pop.js",
            "text": "/*\\\ntitle: $:/core/modules/storyviews/pop.js\ntype: application/javascript\nmodule-type: storyview\n\nAnimates list insertions and removals\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar PopStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nPopStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Scroll the node into view\n\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\n};\n\nPopStoryView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Reset once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{transform: \"none\"}\n\t\t]);\n\t\t$tw.utils.setStyle(widget.document.body,[\n\t\t\t{\"overflow-x\": \"\"}\n\t\t]);\n\t},duration);\n\t// Prevent the page from overscrolling due to the zoom factor\n\t$tw.utils.setStyle(widget.document.body,[\n\t\t{\"overflow-x\": \"hidden\"}\n\t]);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(2)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t// Transition to the final position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n};\n\nPopStoryView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\tif(targetElement && targetElement.parentNode) {\n\t\t\t\twidget.removeChildDomNodes();\n\t\t\t}\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Remove the element at the end of the transition\n\tsetTimeout(removeElement,duration);\n\t// Animate the closure\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(0.1)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n};\n\nexports.pop = PopStoryView;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "storyview"
        },
        "$:/core/modules/storyviews/zoomin.js": {
            "title": "$:/core/modules/storyviews/zoomin.js",
            "text": "/*\\\ntitle: $:/core/modules/storyviews/zoomin.js\ntype: application/javascript\nmodule-type: storyview\n\nZooms between individual tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ZoominListView = function(listWidget) {\n\tvar self = this;\n\tthis.listWidget = listWidget;\n\t// Get the index of the tiddler that is at the top of the history\n\tvar history = this.listWidget.wiki.getTiddlerDataCached(this.listWidget.historyTitle,[]),\n\t\ttargetTiddler;\n\tif(history.length > 0) {\n\t\ttargetTiddler = history[history.length-1].title;\n\t}\n\t// Make all the tiddlers position absolute, and hide all but the top (or first) one\n\t$tw.utils.each(this.listWidget.children,function(itemWidget,index) {\n\t\tvar domNode = itemWidget.findFirstDomNode();\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(domNode instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\t\tif((targetTiddler && targetTiddler !== itemWidget.parseTreeNode.itemTitle) || (!targetTiddler && index)) {\n\t\t\tdomNode.style.display = \"none\";\n\t\t} else {\n\t\t\tself.currentTiddlerDomNode = domNode;\n\t\t}\n\t\t$tw.utils.addClass(domNode,\"tc-storyview-zoomin-tiddler\");\n\t});\n};\n\nZoominListView.prototype.navigateTo = function(historyInfo) {\n\tvar duration = $tw.utils.getAnimationDuration(),\n\t\tlistElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the new tiddler be position absolute and visible so that we can measure it\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"0 0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t// Get the position of the source node, or use the centre of the window as the source position\n\tvar sourceBounds = historyInfo.fromPageRect || {\n\t\t\tleft: window.innerWidth/2 - 2,\n\t\t\ttop: window.innerHeight/2 - 2,\n\t\t\twidth: window.innerWidth/8,\n\t\t\theight: window.innerHeight/8\n\t\t};\n\t// Try to find the title node in the target tiddler\n\tvar titleDomNode = findTitleDomNode(listItemWidget) || listItemWidget.findFirstDomNode(),\n\t\tzoomBounds = titleDomNode.getBoundingClientRect();\n\t// Compute the transform for the target tiddler to make the title lie over the source rectange\n\tvar targetBounds = targetElement.getBoundingClientRect(),\n\t\tscale = sourceBounds.width / zoomBounds.width,\n\t\tx = sourceBounds.left - targetBounds.left - (zoomBounds.left - targetBounds.left) * scale,\n\t\ty = sourceBounds.top - targetBounds.top - (zoomBounds.top - targetBounds.top) * scale;\n\t// Transform the target tiddler to its starting position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(targetElement);\n\t// Apply the ending transitions with a timeout to ensure that the previously applied transformations are applied first\n\tvar self = this,\n\t\tprevCurrentTiddler = this.currentTiddlerDomNode;\n\tthis.currentTiddlerDomNode = targetElement;\n\t// Transform the target tiddler to its natural size\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{zIndex: \"500\"},\n\t]);\n\t// Transform the previous tiddler out of the way and then hide it\n\tif(prevCurrentTiddler && prevCurrentTiddler !== targetElement) {\n\t\tscale = zoomBounds.width / sourceBounds.width;\n\t\tx =  zoomBounds.left - targetBounds.left - (sourceBounds.left - targetBounds.left) * scale;\n\t\ty =  zoomBounds.top - targetBounds.top - (sourceBounds.top - targetBounds.top) * scale;\n\t\t$tw.utils.setStyle(prevCurrentTiddler,[\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transformOrigin: \"0 0\"},\n\t\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"},\n\t\t\t{zIndex: \"0\"}\n\t\t]);\n\t\t// Hide the tiddler when the transition has finished\n\t\tsetTimeout(function() {\n\t\t\tif(self.currentTiddlerDomNode !== prevCurrentTiddler) {\n\t\t\t\tprevCurrentTiddler.style.display = \"none\";\n\t\t\t}\n\t\t},duration);\n\t}\n\t// Scroll the target into view\n//\t$tw.pageScroller.scrollIntoView(targetElement);\n};\n\n/*\nFind the first child DOM node of a widget that has the class \"tc-title\"\n*/\nfunction findTitleDomNode(widget,targetClass) {\n\ttargetClass = targetClass || \"tc-title\";\n\tvar domNode = widget.findFirstDomNode();\n\tif(domNode && domNode.querySelector) {\n\t\treturn domNode.querySelector(\".\" + targetClass);\n\t}\n\treturn null;\n}\n\nZoominListView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the newly inserted node position absolute and hidden\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"none\"}\n\t]);\n};\n\nZoominListView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\twidget.removeChildDomNodes();\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Abandon if hidden\n\tif(targetElement.style.display != \"block\" ) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Set up the tiddler that is being closed\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\t// We'll move back to the previous or next element in the story\n\tvar toWidget = widget.previousSibling();\n\tif(!toWidget) {\n\t\ttoWidget = widget.nextSibling();\n\t}\n\tvar toWidgetDomNode = toWidget && toWidget.findFirstDomNode();\n\t// Set up the tiddler we're moving back in\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.addClass(toWidgetDomNode,\"tc-storyview-zoomin-tiddler\");\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{display: \"block\"},\n\t\t\t{transformOrigin: \"50% 50%\"},\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(10)\"},\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0\"},\n\t\t\t{zIndex: \"500\"}\n\t\t]);\n\t\tthis.currentTiddlerDomNode = toWidgetDomNode;\n\t}\n\t// Animate them both\n\t// Force layout\n\t$tw.utils.forceLayout(this.listWidget.parentDomNode);\n\t// First, the tiddler we're closing\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(0.1)\"},\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"0\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\tsetTimeout(removeElement,duration);\n\t// Now the tiddler we're going back to\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t\t{opacity: \"1\"}\n\t\t]);\n\t}\n\treturn true; // Indicate that we'll delete the DOM node\n};\n\nexports.zoomin = ZoominListView;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "storyview"
        },
        "$:/core/modules/syncer.js": {
            "title": "$:/core/modules/syncer.js",
            "text": "/*\\\ntitle: $:/core/modules/syncer.js\ntype: application/javascript\nmodule-type: global\n\nThe syncer tracks changes to the store and synchronises them to a remote data store represented as a \"sync adaptor\"\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDefaults\n*/\nSyncer.prototype.titleIsLoggedIn = \"$:/status/IsLoggedIn\";\nSyncer.prototype.titleIsAnonymous = \"$:/status/IsAnonymous\";\nSyncer.prototype.titleIsReadOnly = \"$:/status/IsReadOnly\";\nSyncer.prototype.titleUserName = \"$:/status/UserName\";\nSyncer.prototype.titleSyncFilter = \"$:/config/SyncFilter\";\nSyncer.prototype.titleSyncPollingInterval = \"$:/config/SyncPollingInterval\";\nSyncer.prototype.titleSyncDisableLazyLoading = \"$:/config/SyncDisableLazyLoading\";\nSyncer.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\nSyncer.prototype.titleSyncThrottleInterval = \"$:/config/SyncThrottleInterval\";\nSyncer.prototype.taskTimerInterval = 1 * 1000; // Interval for sync timer\nSyncer.prototype.throttleInterval = 1 * 1000; // Defer saving tiddlers if they've changed in the last 1s...\nSyncer.prototype.errorRetryInterval = 5 * 1000; // Interval to retry after an error\nSyncer.prototype.fallbackInterval = 10 * 1000; // Unless the task is older than 10s\nSyncer.prototype.pollTimerInterval = 60 * 1000; // Interval for polling for changes from the adaptor\n\n/*\nInstantiate the syncer with the following options:\nsyncadaptor: reference to syncadaptor to be used\nwiki: wiki to be synced\n*/\nfunction Syncer(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\t// Save parameters\n\tthis.syncadaptor = options.syncadaptor;\n\tthis.disableUI = !!options.disableUI;\n\tthis.titleIsLoggedIn = options.titleIsLoggedIn || this.titleIsLoggedIn;\n\tthis.titleUserName = options.titleUserName || this.titleUserName;\n\tthis.titleSyncFilter = options.titleSyncFilter || this.titleSyncFilter;\n\tthis.titleSavedNotification = options.titleSavedNotification || this.titleSavedNotification;\n\tthis.taskTimerInterval = options.taskTimerInterval || this.taskTimerInterval;\n\tthis.throttleInterval = options.throttleInterval || parseInt(this.wiki.getTiddlerText(this.titleSyncThrottleInterval,\"\"),10) || this.throttleInterval;\n\tthis.errorRetryInterval = options.errorRetryInterval || this.errorRetryInterval;\n\tthis.fallbackInterval = options.fallbackInterval || this.fallbackInterval;\n\tthis.pollTimerInterval = options.pollTimerInterval || parseInt(this.wiki.getTiddlerText(this.titleSyncPollingInterval,\"\"),10) || this.pollTimerInterval;\n\tthis.logging = \"logging\" in options ? options.logging : true;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\")  + (this.syncadaptor.name ? (\"-\" + this.syncadaptor.name) : \"\"),{\n\t\tcolour: \"cyan\",\n\t\tenable: this.logging,\n\t\tsaveHistory: true\n\t});\n\t// Make another logger for connection errors\n\tthis.loggerConnection = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\")  + (this.syncadaptor.name ? (\"-\" + this.syncadaptor.name) : \"\") + \"-connection\",{\n\t\tcolour: \"cyan\",\n\t\tenable: this.logging\n\t});\n\t// Ask the syncadaptor to use the main logger\n\tif(this.syncadaptor.setLoggerSaveBuffer) {\n\t\tthis.syncadaptor.setLoggerSaveBuffer(this.logger);\n\t}\n\t// Compile the dirty tiddler filter\n\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t// Record information for known tiddlers\n\tthis.readTiddlerInfo();\n\tthis.titlesToBeLoaded = {}; // Hashmap of titles of tiddlers that need loading from the server\n\tthis.titlesHaveBeenLazyLoaded = {}; // Hashmap of titles of tiddlers that have already been lazily loaded from the server\n\t// Timers\n\tthis.taskTimerId = null; // Timer for task dispatch\n\tthis.pollTimerId = null; // Timer for polling server\n\t// Number of outstanding requests\n\tthis.numTasksInProgress = 0;\n\t// Listen out for changes to tiddlers\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\t// Filter the changes to just include ones that are being synced\n\t\tvar filteredChanges = self.getSyncedTiddlers(function(callback) {\n\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\tvar tiddler = self.wiki.tiddlerExists(title) && self.wiki.getTiddler(title);\n\t\t\t\tcallback(tiddler,title);\n\t\t\t});\n\t\t});\n\t\tif(filteredChanges.length > 0) {\n\t\t\tself.processTaskQueue();\n\t\t} else {\n\t\t\t// Look for deletions of tiddlers we're already syncing\t\n\t\t\tvar outstandingDeletion = false\n\t\t\t$tw.utils.each(changes,function(change,title,object) {\n\t\t\t\tif(change.deleted && $tw.utils.hop(self.tiddlerInfo,title)) {\n\t\t\t\t\toutstandingDeletion = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(outstandingDeletion) {\n\t\t\t\tself.processTaskQueue();\n\t\t\t}\n\t\t}\n\t});\n\t// Browser event handlers\n\tif($tw.browser && !this.disableUI) {\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t\t// Listen out for login/logout/refresh events in the browser\n\t\t$tw.rootWidget.addEventListener(\"tm-login\",function(event) {\n\t\t\tvar username = event && event.paramObject && event.paramObject.username,\n\t\t\t\tpassword = event && event.paramObject && event.paramObject.password;\n\t\t\tif(username && password) {\n\t\t\t\t// Login with username and password\n\t\t\t\tself.login(username,password,function() {});\n\t\t\t} else {\n\t\t\t\t// No username and password, so we display a prompt\n\t\t\t\tself.handleLoginEvent();\t\t\t\t\n\t\t\t}\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-logout\",function() {\n\t\t\tself.handleLogoutEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-server-refresh\",function() {\n\t\t\tself.handleRefreshEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-copy-syncer-logs-to-clipboard\",function() {\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getSystemInfo() + \"\\n\\nLog:\\n\" + self.logger.getBuffer());\n\t\t});\n\t}\n\t// Listen out for lazyLoad events\n\tif(!this.disableUI && this.wiki.getTiddlerText(this.titleSyncDisableLazyLoading) !== \"yes\") {\n\t\tthis.wiki.addEventListener(\"lazyLoad\",function(title) {\n\t\t\tself.handleLazyLoadEvent(title);\n\t\t});\t\t\n\t}\n\t// Get the login status\n\tthis.getStatus(function(err,isLoggedIn) {\n\t\t// Do a sync from the server\n\t\tself.syncFromServer();\n\t});\n}\n\n/*\nShow a generic network error alert\n*/\nSyncer.prototype.displayError = function(msg,err) {\n\tif(err === ($tw.language.getString(\"Error/XMLHttpRequest\") + \": 0\")) {\n\t\tthis.loggerConnection.alert($tw.language.getString(\"Error/NetworkErrorAlert\"));\n\t\tthis.logger.log(msg + \":\",err);\n\t} else {\n\t\tthis.logger.alert(msg + \":\",err);\n\t}\n};\n\n/*\nReturn an array of the tiddler titles that are subjected to syncing\n*/\nSyncer.prototype.getSyncedTiddlers = function(source) {\n\treturn this.filterFn.call(this.wiki,source);\n};\n\n/*\nReturn an array of the tiddler titles that are subjected to syncing\n*/\nSyncer.prototype.getTiddlerRevision = function(title) {\n\tif(this.syncadaptor && this.syncadaptor.getTiddlerRevision) {\n\t\treturn this.syncadaptor.getTiddlerRevision(title);\n\t} else {\n\t\treturn this.wiki.getTiddler(title).fields.revision;\t\n\t} \n};\n\n/*\nRead (or re-read) the latest tiddler info from the store\n*/\nSyncer.prototype.readTiddlerInfo = function() {\n\t// Hashmap by title of {revision:,changeCount:,adaptorInfo:}\n\t// \"revision\" is the revision of the tiddler last seen on the server, and \"changecount\" is the corresponding local changecount\n\tthis.tiddlerInfo = {};\n\t// Record information for known tiddlers\n\tvar self = this,\n\t\ttiddlers = this.getSyncedTiddlers();\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\tif(tiddler) {\n\t\t\tself.tiddlerInfo[title] = {\n\t\t\t\trevision: self.getTiddlerRevision(title),\n\t\t\t\tadaptorInfo: self.syncadaptor && self.syncadaptor.getTiddlerInfo(tiddler),\n\t\t\t\tchangeCount: self.wiki.getChangeCount(title)\n\t\t\t};\n\t\t}\n\t});\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSyncer.prototype.isDirty = function() {\n\tthis.logger.log(\"Checking dirty status\");\n\t// Check tiddlers that are in the store and included in the filter function\n\tvar titles = this.getSyncedTiddlers();\n\tfor(var index=0; index<titles.length; index++) {\n\t\tvar title = titles[index],\n\t\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\tif(this.wiki.tiddlerExists(title)) {\n\t\t\tif(tiddlerInfo) {\n\t\t\t\t// If the tiddler is known on the server and has been modified locally then it needs to be saved to the server\n\t\t\t\tif(this.wiki.getChangeCount(title) > tiddlerInfo.changeCount) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If the tiddler isn't known on the server then it needs to be saved to the server\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\t// Check tiddlers that are known from the server but not currently in the store\n\ttitles = Object.keys(this.tiddlerInfo);\n\tfor(index=0; index<titles.length; index++) {\n\t\tif(!this.wiki.tiddlerExists(titles[index])) {\n\t\t\t// There must be a pending delete\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSyncer.prototype.updateDirtyStatus = function() {\n\tif($tw.browser && !this.disableUI) {\n\t\tvar dirty = this.isDirty();\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",dirty);\n\t\tif(!dirty) {\n\t\t\tthis.loggerConnection.clearAlerts();\n\t\t}\n\t}\n};\n\n/*\nSave an incoming tiddler in the store, and updates the associated tiddlerInfo\n*/\nSyncer.prototype.storeTiddler = function(tiddlerFields) {\n\t// Save the tiddler\n\tvar tiddler = new $tw.Tiddler(tiddlerFields);\n\tthis.wiki.addTiddler(tiddler);\n\t// Save the tiddler revision and changeCount details\n\tthis.tiddlerInfo[tiddlerFields.title] = {\n\t\trevision: this.getTiddlerRevision(tiddlerFields.title),\n\t\tadaptorInfo: this.syncadaptor.getTiddlerInfo(tiddler),\n\t\tchangeCount: this.wiki.getChangeCount(tiddlerFields.title)\n\t};\n};\n\nSyncer.prototype.getStatus = function(callback) {\n\tvar self = this;\n\t// Check if the adaptor supports getStatus()\n\tif(this.syncadaptor && this.syncadaptor.getStatus) {\n\t\t// Mark us as not logged in\n\t\tthis.wiki.addTiddler({title: this.titleIsLoggedIn,text: \"no\"});\n\t\t// Get login status\n\t\tthis.syncadaptor.getStatus(function(err,isLoggedIn,username,isReadOnly,isAnonymous) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t} else {\n\t\t\t\t// Set the various status tiddlers\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsReadOnly,text: isReadOnly ? \"yes\" : \"no\"});\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsAnonymous,text: isAnonymous ? \"yes\" : \"no\"});\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsLoggedIn,text: isLoggedIn ? \"yes\" : \"no\"});\n\t\t\t\tif(isLoggedIn) {\n\t\t\t\t\tself.wiki.addTiddler({title: self.titleUserName,text: username || \"\"});\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Invoke the callback\n\t\t\tif(callback) {\n\t\t\t\tcallback(err,isLoggedIn,username);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tcallback(null,true,\"UNAUTHENTICATED\");\n\t}\n};\n\n/*\nSynchronise from the server by reading the skinny tiddler list and queuing up loads for any tiddlers that we don't already have up to date\n*/\nSyncer.prototype.syncFromServer = function() {\n\tvar self = this,\n\t\tcancelNextSync = function() {\n\t\t\tif(self.pollTimerId) {\n\t\t\t\tclearTimeout(self.pollTimerId);\n\t\t\t\tself.pollTimerId = null;\n\t\t\t}\n\t\t},\n\t\ttriggerNextSync = function() {\n\t\t\tself.pollTimerId = setTimeout(function() {\n\t\t\t\tself.pollTimerId = null;\n\t\t\t\tself.syncFromServer.call(self);\n\t\t\t},self.pollTimerInterval);\n\t\t},\n\t\tsyncSystemFromServer = (self.wiki.getTiddlerText(\"$:/config/SyncSystemTiddlersFromServer\") === \"yes\" ? true : false);\n\tif(this.syncadaptor && this.syncadaptor.getUpdatedTiddlers) {\n\t\tthis.logger.log(\"Retrieving updated tiddler list\");\n\t\tcancelNextSync();\n\t\tthis.syncadaptor.getUpdatedTiddlers(self,function(err,updates) {\n\t\t\ttriggerNextSync();\n\t\t\tif(err) {\n\t\t\t\tself.displayError($tw.language.getString(\"Error/RetrievingSkinny\"),err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(updates) {\n\t\t\t\t$tw.utils.each(updates.modifications,function(title) {\n\t\t\t\t\tself.titlesToBeLoaded[title] = true;\n\t\t\t\t});\n\t\t\t\t$tw.utils.each(updates.deletions,function(title) {\n\t\t\t\t\tif(syncSystemFromServer || !self.wiki.isSystemTiddler(title)) {\n\t\t\t\t\t\tdelete self.tiddlerInfo[title];\n\t\t\t\t\t\tself.logger.log(\"Deleting tiddler missing from server:\",title);\n\t\t\t\t\t\tself.wiki.deleteTiddler(title);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(updates.modifications.length > 0 || updates.deletions.length > 0) {\n\t\t\t\t\tself.processTaskQueue();\n\t\t\t\t}\t\t\t\t\n\t\t\t}\n\t\t});\n\t} else if(this.syncadaptor && this.syncadaptor.getSkinnyTiddlers) {\n\t\tthis.logger.log(\"Retrieving skinny tiddler list\");\n\t\tcancelNextSync();\n\t\tthis.syncadaptor.getSkinnyTiddlers(function(err,tiddlers) {\n\t\t\ttriggerNextSync();\n\t\t\t// Check for errors\n\t\t\tif(err) {\n\t\t\t\tself.displayError($tw.language.getString(\"Error/RetrievingSkinny\"),err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Keep track of which tiddlers we already know about have been reported this time\n\t\t\tvar previousTitles = Object.keys(self.tiddlerInfo);\n\t\t\t// Process each incoming tiddler\n\t\t\tfor(var t=0; t<tiddlers.length; t++) {\n\t\t\t\t// Get the incoming tiddler fields, and the existing tiddler\n\t\t\t\tvar tiddlerFields = tiddlers[t],\n\t\t\t\t\tincomingRevision = tiddlerFields.revision + \"\",\n\t\t\t\t\ttiddler = self.wiki.tiddlerExists(tiddlerFields.title) && self.wiki.getTiddler(tiddlerFields.title),\n\t\t\t\t\ttiddlerInfo = self.tiddlerInfo[tiddlerFields.title],\n\t\t\t\t\tcurrRevision = tiddlerInfo ? tiddlerInfo.revision : null,\n\t\t\t\t\tindexInPreviousTitles = previousTitles.indexOf(tiddlerFields.title);\n\t\t\t\tif(indexInPreviousTitles !== -1) {\n\t\t\t\t\tpreviousTitles.splice(indexInPreviousTitles,1);\n\t\t\t\t}\n\t\t\t\t// Ignore the incoming tiddler if it's the same as the revision we've already got\n\t\t\t\tif(currRevision !== incomingRevision) {\n\t\t\t\t\t// Only load the skinny version if we don't already have a fat version of the tiddler\n\t\t\t\t\tif(!tiddler || tiddler.fields.text === undefined) {\n\t\t\t\t\t\tself.storeTiddler(tiddlerFields);\n\t\t\t\t\t}\n\t\t\t\t\t// Do a full load of this tiddler\n\t\t\t\t\tself.titlesToBeLoaded[tiddlerFields.title] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Delete any tiddlers that were previously reported but missing this time\n\t\t\t$tw.utils.each(previousTitles,function(title) {\n\t\t\t\tif(syncSystemFromServer || !self.wiki.isSystemTiddler(title)) {\n\t\t\t\t\tdelete self.tiddlerInfo[title];\n\t\t\t\t\tself.logger.log(\"Deleting tiddler missing from server:\",title);\n\t\t\t\t\tself.wiki.deleteTiddler(title);\n\t\t\t\t}\n\t\t\t});\n\t\t\tself.processTaskQueue();\n\t\t});\n\t}\n};\n\n/*\nForce load a tiddler from the server\n*/\nSyncer.prototype.enqueueLoadTiddler = function(title) {\n\tthis.titlesToBeLoaded[title] = true;\n\tthis.processTaskQueue();\n};\n\n/*\nLazily load a skinny tiddler if we can\n*/\nSyncer.prototype.handleLazyLoadEvent = function(title) {\n\t// Ignore if the syncadaptor doesn't handle it\n\tif(!this.syncadaptor.supportsLazyLoading) {\n\t\treturn;\n\t}\n\t// Don't lazy load the same tiddler twice\n\tif(!this.titlesHaveBeenLazyLoaded[title]) {\n\t\t// Don't lazy load if the tiddler isn't included in the sync filter\n\t\tif(this.getSyncedTiddlers().indexOf(title) !== -1) {\n\t\t\t// Mark the tiddler as needing loading, and having already been lazily loaded\n\t\t\tthis.titlesToBeLoaded[title] = true;\n\t\t\tthis.titlesHaveBeenLazyLoaded[title] = true;\n\t\t}\n\t}\n};\n\n/*\nDispay a password prompt and allow the user to login\n*/\nSyncer.prototype.handleLoginEvent = function() {\n\tvar self = this;\n\tthis.getStatus(function(err,isLoggedIn,username) {\n\t\tif(!err && !isLoggedIn) {\n\t\t\tif(self.syncadaptor && self.syncadaptor.displayLoginPrompt) {\n\t\t\t\tself.syncadaptor.displayLoginPrompt(self);\n\t\t\t} else {\n\t\t\t\tself.displayLoginPrompt();\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nDispay a password prompt\n*/\nSyncer.prototype.displayLoginPrompt = function() {\n\tvar self = this;\n\tvar promptInfo = $tw.passwordPrompt.createPrompt({\n\t\tserviceName: $tw.language.getString(\"LoginToTiddlySpace\"),\n\t\tcallback: function(data) {\n\t\t\tself.login(data.username,data.password,function(err,isLoggedIn) {\n\t\t\t\tself.syncFromServer();\n\t\t\t});\n\t\t\treturn true; // Get rid of the password prompt\n\t\t}\n\t});\n};\n\n/*\nAttempt to login to TiddlyWeb.\n\tusername: username\n\tpassword: password\n\tcallback: invoked with arguments (err,isLoggedIn)\n*/\nSyncer.prototype.login = function(username,password,callback) {\n\tthis.logger.log(\"Attempting to login as\",username);\n\tvar self = this;\n\tif(this.syncadaptor.login) {\n\t\tthis.syncadaptor.login(username,password,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.getStatus(function(err,isLoggedIn,username) {\n\t\t\t\tif(callback) {\n\t\t\t\t\tcallback(err,isLoggedIn);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t} else {\n\t\tcallback(null,true);\n\t}\n};\n\n/*\nAttempt to log out of TiddlyWeb\n*/\nSyncer.prototype.handleLogoutEvent = function() {\n\tthis.logger.log(\"Attempting to logout\");\n\tvar self = this;\n\tif(this.syncadaptor.logout) {\n\t\tthis.syncadaptor.logout(function(err) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t} else {\n\t\t\t\tself.getStatus();\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nImmediately refresh from the server\n*/\nSyncer.prototype.handleRefreshEvent = function() {\n\tthis.syncFromServer();\n};\n\n/*\nProcess the next task\n*/\nSyncer.prototype.processTaskQueue = function() {\n\tvar self = this;\n\t// Only process a task if the sync adaptor is fully initialised and we're not already performing\n\t// a task. If we are already performing a task then we'll dispatch the next one when it completes\n\tif((!this.syncadaptor.isReady || this.syncadaptor.isReady()) && this.numTasksInProgress === 0) {\n\t\t// Choose the next task to perform\n\t\tvar task = this.chooseNextTask();\n\t\t// Perform the task if we had one\n\t\tif(typeof task === \"object\" && task !== null) {\n\t\t\tthis.numTasksInProgress += 1;\n\t\t\ttask.run(function(err) {\n\t\t\t\tself.numTasksInProgress -= 1;\n\t\t\t\tif(err) {\n\t\t\t\t\tself.displayError(\"Sync error while processing \" + task.type + \" of '\" + task.title + \"'\",err);\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t\tself.triggerTimeout(self.errorRetryInterval);\n\t\t\t\t} else {\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t\t// Process the next task\n\t\t\t\t\tself.processTaskQueue.call(self);\t\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// No task is ready so update the status\n\t\t\tthis.updateDirtyStatus();\n\t\t\t// And trigger a timeout if there is a pending task\n\t\t\tif(task === true) {\n\t\t\t\tthis.triggerTimeout();\t\t\t\t\n\t\t\t}\n\t\t}\n\t} else {\n\t\tthis.updateDirtyStatus();\t\t\n\t}\n};\n\nSyncer.prototype.triggerTimeout = function(interval) {\n\tvar self = this;\n\tif(!this.taskTimerId) {\n\t\tthis.taskTimerId = setTimeout(function() {\n\t\t\tself.taskTimerId = null;\n\t\t\tself.processTaskQueue.call(self);\n\t\t},interval || self.taskTimerInterval);\n\t}\n};\n\n/*\nChoose the next sync task. We prioritise saves, then deletes, then loads from the server\n\nReturns either a task object, null if there's no upcoming tasks, or the boolean true if there are pending tasks that aren't yet due\n*/\nSyncer.prototype.chooseNextTask = function() {\n\tvar thresholdLastSaved = (new Date()) - this.throttleInterval,\n\t\thavePending = null;\n\t// First we look for tiddlers that have been modified locally and need saving back to the server\n\tvar titles = this.getSyncedTiddlers();\n\tfor(var index=0; index<titles.length; index++) {\n\t\tvar title = titles[index],\n\t\t\ttiddler = this.wiki.tiddlerExists(title) && this.wiki.getTiddler(title),\n\t\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\tif(tiddler) {\n\t\t\t// If the tiddler is not known on the server, or has been modified locally no more recently than the threshold then it needs to be saved to the server\n\t\t\tvar hasChanged = !tiddlerInfo || this.wiki.getChangeCount(title) > tiddlerInfo.changeCount,\n\t\t\t\tisReadyToSave = !tiddlerInfo || !tiddlerInfo.timestampLastSaved || tiddlerInfo.timestampLastSaved < thresholdLastSaved;\n\t\t\tif(hasChanged) {\n\t\t\t\tif(isReadyToSave) {\n\t\t\t\t\treturn new SaveTiddlerTask(this,title); \t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\thavePending = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Second, we check tiddlers that are known from the server but not currently in the store, and so need deleting on the server\n\ttitles = Object.keys(this.tiddlerInfo);\n\tfor(index=0; index<titles.length; index++) {\n\t\ttitle = titles[index];\n\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\ttiddler = this.wiki.tiddlerExists(title) && this.wiki.getTiddler(title);\n\t\tif(!tiddler) {\n\t\t\treturn new DeleteTiddlerTask(this,title);\n\t\t}\n\t}\n\t// Check for tiddlers that need loading\n\ttitle = Object.keys(this.titlesToBeLoaded)[0];\n\tif(title) {\n\t\tdelete this.titlesToBeLoaded[title];\n\t\treturn new LoadTiddlerTask(this,title);\n\t}\n\t// No tasks are ready\n\treturn havePending;\n};\n\nfunction SaveTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"save\";\n}\n\nSaveTiddlerTask.prototype.run = function(callback) {\n\tvar self = this,\n\t\tchangeCount = this.syncer.wiki.getChangeCount(this.title),\n\t\ttiddler = this.syncer.wiki.tiddlerExists(this.title) && this.syncer.wiki.getTiddler(this.title);\n\tthis.syncer.logger.log(\"Dispatching 'save' task:\",this.title);\n\tif(tiddler) {\n\t\tthis.syncer.syncadaptor.saveTiddler(tiddler,function(err,adaptorInfo,revision) {\n\t\t\t// If there's an error, exit without changing any internal state\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\t// Adjust the info stored about this tiddler\n\t\t\tself.syncer.tiddlerInfo[self.title] = {\n\t\t\t\tchangeCount: changeCount,\n\t\t\t\tadaptorInfo: adaptorInfo,\n\t\t\t\trevision: revision,\n\t\t\t\ttimestampLastSaved: new Date()\n\t\t\t};\n\t\t\t// Invoke the callback\n\t\t\tcallback(null);\n\t\t},{\n\t\t\ttiddlerInfo: self.syncer.tiddlerInfo[self.title]\n\t\t});\n\t} else {\n\t\tthis.syncer.logger.log(\" Not Dispatching 'save' task:\",this.title,\"tiddler does not exist\");\n\t\t$tw.utils.nextTick(callback(null));\n\t}\n};\n\nfunction DeleteTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"delete\";\n}\n\nDeleteTiddlerTask.prototype.run = function(callback) {\n\tvar self = this;\n\tthis.syncer.logger.log(\"Dispatching 'delete' task:\",this.title);\n\tthis.syncer.syncadaptor.deleteTiddler(this.title,function(err) {\n\t\t// If there's an error, exit without changing any internal state\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\t// Remove the info stored about this tiddler\n\t\tdelete self.syncer.tiddlerInfo[self.title];\n\t\tif($tw.boot.files){\n\t\t\t// Remove the tiddler from $tw.boot.files\n\t\t\tdelete $tw.boot.files[self.title];\n\t\t}\n\t\t// Invoke the callback\n\t\tcallback(null);\n\t},{\n\t\ttiddlerInfo: self.syncer.tiddlerInfo[this.title]\n\t});\n};\n\nfunction LoadTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"load\";\n}\n\nLoadTiddlerTask.prototype.run = function(callback) {\n\tvar self = this;\n\tthis.syncer.logger.log(\"Dispatching 'load' task:\",this.title);\n\tthis.syncer.syncadaptor.loadTiddler(this.title,function(err,tiddlerFields) {\n\t\t// If there's an error, exit without changing any internal state\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\t// Update the info stored about this tiddler\n\t\tif(tiddlerFields) {\n\t\t\tself.syncer.storeTiddler(tiddlerFields);\n\t\t}\n\t\t// Invoke the callback\n\t\tcallback(null);\n\t});\n};\n\nexports.Syncer = Syncer;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/tiddler.js": {
            "title": "$:/core/modules/tiddler.js",
            "text": "/*\\\ntitle: $:/core/modules/tiddler.js\ntype: application/javascript\nmodule-type: tiddlermethod\n\nExtension methods for the $tw.Tiddler object (constructor and methods required at boot time are in boot/boot.js)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.hasTag = function(tag) {\n\treturn this.fields.tags && this.fields.tags.indexOf(tag) !== -1;\n};\n\nexports.isPlugin = function() {\n\treturn this.fields.type === \"application/json\" && this.hasField(\"plugin-type\");\n};\n\nexports.isDraft = function() {\n\treturn this.hasField(\"draft.of\");\n};\n\nexports.getFieldString = function(field) {\n\tvar value = this.fields[field];\n\t// Check for a missing field\n\tif(value === undefined || value === null) {\n\t\treturn \"\";\n\t}\n\t// Parse the field with the associated module (if any)\n\tvar fieldModule = $tw.Tiddler.fieldModules[field];\n\tif(fieldModule && fieldModule.stringify) {\n\t\treturn fieldModule.stringify.call(this,value);\n\t} else {\n\t\treturn value.toString();\n\t}\n};\n\n/*\nGet the value of a field as a list\n*/\nexports.getFieldList = function(field) {\n\tvar value = this.fields[field];\n\t// Check for a missing field\n\tif(value === undefined || value === null) {\n\t\treturn [];\n\t}\n\treturn $tw.utils.parseStringArray(value);\n};\n\n/*\nGet all the fields as a hashmap of strings. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStrings = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [];\n\tvar fields = {};\n\tfor(var field in this.fields) {\n\t\tif($tw.utils.hop(this.fields,field)) {\n\t\t\tif(exclude.indexOf(field) === -1) {\n\t\t\t\tfields[field] = this.getFieldString(field);\n\t\t\t}\n\t\t}\n\t}\n\treturn fields;\n};\n\n/*\nGet all the fields as a name:value block. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStringBlock = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [],\n\t\tfields = Object.keys(this.fields).sort(),\n\t\tresult = [];\n\tfor(var t=0; t<fields.length; t++) {\n\t\tvar field = fields[t];\n\t\tif(exclude.indexOf(field) === -1) {\n\t\t\tresult.push(field + \": \" + this.getFieldString(field));\n\t\t}\n\t}\n\treturn result.join(\"\\n\");\n};\n\nexports.getFieldDay = function(field) {\n\tif(this.cache && this.cache.day && $tw.utils.hop(this.cache.day,field) ) {\n\t\treturn this.cache.day[field];\n\t}\n\tvar day = \"\";\n\tif(this.fields[field]) {\n\t\tday = (new Date($tw.utils.parseDate(this.fields[field]))).setHours(0,0,0,0);\n\t}\n\tthis.cache.day = this.cache.day || {};\n\tthis.cache.day[field] = day;\n\treturn day;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "tiddlermethod"
        },
        "$:/core/modules/upgraders/plugins.js": {
            "title": "$:/core/modules/upgraders/plugins.js",
            "text": "/*\\\ntitle: $:/core/modules/upgraders/plugins.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that checks that plugins are newer than any already installed version\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar BLOCKED_PLUGINS = {\n\t\"$:/themes/tiddlywiki/stickytitles\": {\n\t\tversions: [\"*\"]\n\t},\n\t\"$:/plugins/tiddlywiki/fullscreen\": {\n\t\tversions: [\"*\"]\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {},\n\t\tupgradeLibrary,\n\t\tgetLibraryTiddler = function(title) {\n\t\t\tif(!upgradeLibrary) {\n\t\t\t\tupgradeLibrary = wiki.getTiddlerData(UPGRADE_LIBRARY_TITLE,{});\n\t\t\t\tupgradeLibrary.tiddlers = upgradeLibrary.tiddlers || {};\n\t\t\t}\n\t\t\treturn upgradeLibrary.tiddlers[title];\n\t\t};\n\n\t// Go through all the incoming tiddlers\n\t$tw.utils.each(titles,function(title) {\n\t\tvar incomingTiddler = tiddlers[title];\n\t\t// Check if we're dealing with a plugin\n\t\tif(incomingTiddler && incomingTiddler[\"plugin-type\"]) {\n\t\t\t// Check whether the plugin contains JS modules\n\t\t\tvar requiresReload = wiki.doesPluginInfoRequireReload(JSON.parse(incomingTiddler.text)) ? (wiki.getTiddlerText(\"$:/language/ControlPanel/Plugins/PluginWillRequireReload\") + \" \") : \"\";\n\t\t\tmessages[title] = requiresReload;\n\t\t\tif(incomingTiddler.version) {\n\t\t\t\t// Upgrade the incoming plugin if it is in the upgrade library\n\t\t\t\tvar libraryTiddler = getLibraryTiddler(title);\n\t\t\t\tif(libraryTiddler && libraryTiddler[\"plugin-type\"] && libraryTiddler.version) {\n\t\t\t\t\ttiddlers[title] = libraryTiddler;\n\t\t\t\t\tmessages[title] = requiresReload + $tw.language.getString(\"Import/Upgrader/Plugins/Upgraded\",{variables: {incoming: incomingTiddler.version, upgraded: libraryTiddler.version}});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// Suppress the incoming plugin if it is older than the currently installed one\n\t\t\t\tvar existingTiddler = wiki.getTiddler(title);\n\t\t\t\tif(existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t\t\t\t// Reject the incoming plugin by blanking all its fields\n\t\t\t\t\tif($tw.utils.checkVersions(existingTiddler.fields.version,incomingTiddler.version)) {\n\t\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Version\",{variables: {incoming: incomingTiddler.version, existing: existingTiddler.fields.version}});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Check whether the plugin is on the blocked list\n\t\t\tvar blockInfo = BLOCKED_PLUGINS[title];\n\t\t\tif(blockInfo) {\n\t\t\t\tif(blockInfo.versions.indexOf(\"*\") !== -1 || (incomingTiddler.version && blockInfo.versions.indexOf(incomingTiddler.version) !== -1)) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Incompatible\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "upgrader"
        },
        "$:/core/modules/upgraders/system.js": {
            "title": "$:/core/modules/upgraders/system.js",
            "text": "/*\\\ntitle: $:/core/modules/upgraders/system.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that suppresses certain system tiddlers that shouldn't be imported\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DONT_IMPORT_LIST = [\"$:/StoryList\",\"$:/HistoryList\"],\n\tDONT_IMPORT_PREFIX_LIST = [\"$:/temp/\",\"$:/state/\",\"$:/Import\"],\n\tWARN_IMPORT_PREFIX_LIST = [\"$:/core/modules/\"];\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {},\n\t\tshowAlert = false;\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tif(DONT_IMPORT_LIST.indexOf(title) !== -1) {\n\t\t\ttiddlers[title] = Object.create(null);\n\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/System/Suppressed\");\n\t\t} else {\n\t\t\tfor(var t=0; t<DONT_IMPORT_PREFIX_LIST.length; t++) {\n\t\t\t\tvar prefix = DONT_IMPORT_PREFIX_LIST[t];\n\t\t\t\tif(title.substr(0,prefix.length) === prefix) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/State/Suppressed\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor(var t=0; t<WARN_IMPORT_PREFIX_LIST.length; t++) {\n\t\t\t\tvar prefix = WARN_IMPORT_PREFIX_LIST[t];\n\t\t\t\tif(title.substr(0,prefix.length) === prefix && wiki.isShadowTiddler(title)) {\n\t\t\t\t\tshowAlert = true;\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/System/Warning\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\tif(showAlert) {\n\t\tvar logger = new $tw.utils.Logger(\"import\");\n\t\tlogger.alert($tw.language.getString(\"Import/Upgrader/System/Alert\"));\n\t}\n\treturn messages;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "upgrader"
        },
        "$:/core/modules/upgraders/themetweaks.js": {
            "title": "$:/core/modules/upgraders/themetweaks.js",
            "text": "/*\\\ntitle: $:/core/modules/upgraders/themetweaks.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that handles the change in theme tweak storage introduced in 5.0.14-beta.\n\nPreviously, theme tweaks were stored in two data tiddlers:\n\n* $:/themes/tiddlywiki/vanilla/metrics\n* $:/themes/tiddlywiki/vanilla/settings\n\nNow, each tweak is stored in its own separate tiddler.\n\nThis upgrader copies any values from the old format to the new. The old data tiddlers are not deleted in case they have been used to store additional indexes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar MAPPINGS = {\n\t\"$:/themes/tiddlywiki/vanilla/metrics\": {\n\t\t\"fontsize\": \"$:/themes/tiddlywiki/vanilla/metrics/fontsize\",\n\t\t\"lineheight\": \"$:/themes/tiddlywiki/vanilla/metrics/lineheight\",\n\t\t\"storyleft\": \"$:/themes/tiddlywiki/vanilla/metrics/storyleft\",\n\t\t\"storytop\": \"$:/themes/tiddlywiki/vanilla/metrics/storytop\",\n\t\t\"storyright\": \"$:/themes/tiddlywiki/vanilla/metrics/storyright\",\n\t\t\"storywidth\": \"$:/themes/tiddlywiki/vanilla/metrics/storywidth\",\n\t\t\"tiddlerwidth\": \"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"\n\t},\n\t\"$:/themes/tiddlywiki/vanilla/settings\": {\n\t\t\"fontfamily\": \"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {};\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tvar mapping = MAPPINGS[title];\n\t\tif(mapping) {\n\t\t\tvar tiddler = new $tw.Tiddler(tiddlers[title]),\n\t\t\t\ttiddlerData = wiki.getTiddlerDataCached(tiddler,{});\n\t\t\tfor(var index in mapping) {\n\t\t\t\tvar mappedTitle = mapping[index];\n\t\t\t\tif(!tiddlers[mappedTitle] || tiddlers[mappedTitle].title !== mappedTitle) {\n\t\t\t\t\ttiddlers[mappedTitle] = {\n\t\t\t\t\t\ttitle: mappedTitle,\n\t\t\t\t\t\ttext: tiddlerData[index]\n\t\t\t\t\t};\n\t\t\t\t\tmessages[mappedTitle] = $tw.language.getString(\"Import/Upgrader/ThemeTweaks/Created\",{variables: {\n\t\t\t\t\t\tfrom: title + \"##\" + index\n\t\t\t\t\t}});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "upgrader"
        },
        "$:/core/modules/utils/base64-utf8/base64-utf8.module.js": {
            "text": "(function(){// From https://gist.github.com/Nijikokun/5192472\n//\n// UTF8 Module\n//\n// Cleaner and modularized utf-8 encoding and decoding library for javascript.\n//\n// copyright: MIT\n// author: Nijiko Yonskai, @nijikokun, nijikokun@gmail.com\n!function(r,e,o,t){void 0!==o.module&&o.module.exports?o.module.exports=e.apply(o):void 0!==o.define&&\"function\"===o.define&&o.define.amd?define(\"utf8\",[],e):o.utf8=e.apply(o)}(0,function(){return{encode:function(r){if(\"string\"!=typeof r)return r;r=r.replace(/\\r\\n/g,\"\\n\");for(var e,o=\"\",t=0;t<r.length;t++)if((e=r.charCodeAt(t))<128)o+=String.fromCharCode(e);else if(e>127&&e<2048)o+=String.fromCharCode(e>>6|192),o+=String.fromCharCode(63&e|128);else if(e>55295&&e<57344&&r.length>t+1){var i=e,n=r.charCodeAt(t+1);t++;var d=65536+(i-55296<<10|n-56320);o+=String.fromCharCode(d>>18|240),o+=String.fromCharCode(d>>12&63|128),o+=String.fromCharCode(d>>6&63|128),o+=String.fromCharCode(63&d|128)}else o+=String.fromCharCode(e>>12|224),o+=String.fromCharCode(e>>6&63|128),o+=String.fromCharCode(63&e|128);return o},decode:function(r){if(\"string\"!=typeof r)return r;for(var e=\"\",o=0,t=0;o<r.length;)if((t=r.charCodeAt(o))<128)e+=String.fromCharCode(t),o++;else if(t>191&&t<224)e+=String.fromCharCode((31&t)<<6|63&r.charCodeAt(o+1)),o+=2;else if(t>223&&t<240)e+=String.fromCharCode((15&t)<<12|(63&r.charCodeAt(o+1))<<6|63&r.charCodeAt(o+2)),o+=3;else{var i=(7&t)<<18|(63&r.charCodeAt(o+1))<<12|(63&r.charCodeAt(o+2))<<6|63&r.charCodeAt(o+3);e+=String.fromCharCode(55296+(i-65536>>10))+String.fromCharCode(56320+(i-65536&1023)),o+=4}return e}}},this),function(r,e,o,t){if(void 0!==o.module&&o.module.exports){if(t&&o.require)for(var i=0;i<t.length;i++)o[t[i]]=o.require(t[i]);o.module.exports=e.apply(o)}else void 0!==o.define&&\"function\"===o.define&&o.define.amd?define(\"base64\",t||[],e):o.base64=e.apply(o)}(0,function(r){var e=r||this.utf8,o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";return{encode:function(r){if(void 0===e)throw{error:\"MissingMethod\",message:\"UTF8 Module is missing.\"};if(\"string\"!=typeof r)return r;r=e.encode(r);for(var t,i,n,d,f,a,h,C=\"\",c=0;c<r.length;)d=(t=r.charCodeAt(c++))>>2,f=(3&t)<<4|(i=r.charCodeAt(c++))>>4,a=(15&i)<<2|(n=r.charCodeAt(c++))>>6,h=63&n,isNaN(i)?a=h=64:isNaN(n)&&(h=64),C+=o.charAt(d)+o.charAt(f)+o.charAt(a)+o.charAt(h);return C},decode:function(r){if(void 0===e)throw{error:\"MissingMethod\",message:\"UTF8 Module is missing.\"};if(\"string\"!=typeof r)return r;r=r.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");for(var t,i,n,d,f,a,h=\"\",C=0;C<r.length;)t=o.indexOf(r.charAt(C++))<<2|(d=o.indexOf(r.charAt(C++)))>>4,i=(15&d)<<4|(f=o.indexOf(r.charAt(C++)))>>2,n=(3&f)<<6|(a=o.indexOf(r.charAt(C++))),h+=String.fromCharCode(t),64!=f&&(h+=String.fromCharCode(i)),64!=a&&(h+=String.fromCharCode(n));return e.decode(h)}}},this,[\"utf8\"]);}).call(exports);",
            "type": "application/javascript",
            "title": "$:/core/modules/utils/base64-utf8/base64-utf8.module.js",
            "module-type": "library"
        },
        "$:/core/modules/utils/crypto.js": {
            "title": "$:/core/modules/utils/crypto.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/crypto.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions related to crypto.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for an encrypted store area in the text of a TiddlyWiki file\n*/\nexports.extractEncryptedStoreArea = function(text) {\n\tvar encryptedStoreAreaStartMarker = \"<pre id=\\\"encryptedStoreArea\\\" type=\\\"text/plain\\\" style=\\\"display:none;\\\">\",\n\t\tencryptedStoreAreaStart = text.indexOf(encryptedStoreAreaStartMarker);\n\tif(encryptedStoreAreaStart !== -1) {\n\t\tvar encryptedStoreAreaEnd = text.indexOf(\"</pre>\",encryptedStoreAreaStart);\n\t\tif(encryptedStoreAreaEnd !== -1) {\n\t\t\treturn $tw.utils.htmlDecode(text.substring(encryptedStoreAreaStart + encryptedStoreAreaStartMarker.length,encryptedStoreAreaEnd-1));\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If the password is not provided then the password in the password store will be used\n*/\nexports.decryptStoreArea = function(encryptedStoreArea,password) {\n\tvar decryptedText = $tw.crypto.decrypt(encryptedStoreArea,password);\n\tif(decryptedText) {\n\t\tvar json = JSON.parse(decryptedText),\n\t\t\ttiddlers = [];\n\t\tfor(var title in json) {\n\t\t\tif(title !== \"$:/isEncrypted\") {\n\t\t\t\ttiddlers.push(json[title]);\n\t\t\t}\n\t\t}\n\t\treturn tiddlers;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If that fails, the user is prompted for a password.\nencryptedStoreArea: text of the TiddlyWiki encrypted store area\ncallback: function(tiddlers) called with the array of decrypted tiddlers\n\nThe following configuration settings are supported:\n\n$tw.config.usePasswordVault: causes any password entered by the user to also be put into the system password vault\n*/\nexports.decryptStoreAreaInteractive = function(encryptedStoreArea,callback,options) {\n\t// Try to decrypt with the current password\n\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea);\n\tif(tiddlers) {\n\t\tcallback(tiddlers);\n\t} else {\n\t\t// Prompt for a new password and keep trying\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: \"Enter a password to decrypt the imported TiddlyWiki\",\n\t\t\tnoUserName: true,\n\t\t\tcanCancel: true,\n\t\t\tsubmitText: \"Decrypt\",\n\t\t\tcallback: function(data) {\n\t\t\t\t// Exit if the user cancelled\n\t\t\t\tif(!data) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t// Attempt to decrypt the tiddlers\n\t\t\t\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea,data.password);\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tif($tw.config.usePasswordVault) {\n\t\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t\t}\n\t\t\t\t\tcallback(tiddlers);\n\t\t\t\t\t// Exit and remove the password prompt\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\t// We didn't decrypt everything, so continue to prompt for password\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/csv.js": {
            "title": "$:/core/modules/utils/csv.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/csv.js\ntype: application/javascript\nmodule-type: utils\n\nA barebones CSV parser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse a CSV string with a header row and return an array of hashmaps.\n*/\nexports.parseCsvStringWithHeader = function(text,options) {\n\toptions = options || {};\n\tvar separator = options.separator || \",\",\n\t\trows = text.split(/\\r?\\n/mg).map(function(row) {\n\t\t\treturn $tw.utils.trim(row);\n\t\t}).filter(function(row) {\n\t\t\treturn row !== \"\";\n\t\t});\n\tif(rows.length < 1) {\n\t\treturn \"Missing header row\";\n\t}\n\tvar headings = rows[0].split(separator),\n\t\tresults = [];\n\tfor(var row=1; row<rows.length; row++) {\n\t\tvar columns = rows[row].split(separator),\n\t\t\tcolumnResult = Object.create(null);\n\t\tif(columns.length !== headings.length) {\n\t\t\treturn \"Malformed CSV row '\" + rows[row] + \"'\";\n\t\t}\n\t\tfor(var column=0; column<columns.length; column++) {\n\t\t\tvar columnName = headings[column];\n\t\t\tcolumnResult[columnName] = $tw.utils.trim(columns[column] || \"\");\n\t\t}\n\t\tresults.push(columnResult);\t\t\t\n\t}\n\treturn results;\n}\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/diff-match-patch/diff_match_patch.js": {
            "text": "(function(){function diff_match_patch(){this.Diff_Timeout=1;this.Diff_EditCost=4;this.Match_Threshold=.5;this.Match_Distance=1E3;this.Patch_DeleteThreshold=.5;this.Patch_Margin=4;this.Match_MaxBits=32}var DIFF_DELETE=-1,DIFF_INSERT=1,DIFF_EQUAL=0;\ndiff_match_patch.prototype.diff_main=function(a,b,c,d){\"undefined\"==typeof d&&(d=0>=this.Diff_Timeout?Number.MAX_VALUE:(new Date).getTime()+1E3*this.Diff_Timeout);if(null==a||null==b)throw Error(\"Null input. (diff_main)\");if(a==b)return a?[[DIFF_EQUAL,a]]:[];\"undefined\"==typeof c&&(c=!0);var e=c,f=this.diff_commonPrefix(a,b);c=a.substring(0,f);a=a.substring(f);b=b.substring(f);f=this.diff_commonSuffix(a,b);var g=a.substring(a.length-f);a=a.substring(0,a.length-f);b=b.substring(0,b.length-f);a=this.diff_compute_(a,\nb,e,d);c&&a.unshift([DIFF_EQUAL,c]);g&&a.push([DIFF_EQUAL,g]);this.diff_cleanupMerge(a);return a};\ndiff_match_patch.prototype.diff_compute_=function(a,b,c,d){if(!a)return[[DIFF_INSERT,b]];if(!b)return[[DIFF_DELETE,a]];var e=a.length>b.length?a:b,f=a.length>b.length?b:a,g=e.indexOf(f);return-1!=g?(c=[[DIFF_INSERT,e.substring(0,g)],[DIFF_EQUAL,f],[DIFF_INSERT,e.substring(g+f.length)]],a.length>b.length&&(c[0][0]=c[2][0]=DIFF_DELETE),c):1==f.length?[[DIFF_DELETE,a],[DIFF_INSERT,b]]:(e=this.diff_halfMatch_(a,b))?(b=e[1],f=e[3],a=e[4],e=this.diff_main(e[0],e[2],c,d),c=this.diff_main(b,f,c,d),e.concat([[DIFF_EQUAL,\na]],c)):c&&100<a.length&&100<b.length?this.diff_lineMode_(a,b,d):this.diff_bisect_(a,b,d)};\ndiff_match_patch.prototype.diff_lineMode_=function(a,b,c){var d=this.diff_linesToChars_(a,b);a=d.chars1;b=d.chars2;d=d.lineArray;a=this.diff_main(a,b,!1,c);this.diff_charsToLines_(a,d);this.diff_cleanupSemantic(a);a.push([DIFF_EQUAL,\"\"]);for(var e=d=b=0,f=\"\",g=\"\";b<a.length;){switch(a[b][0]){case DIFF_INSERT:e++;g+=a[b][1];break;case DIFF_DELETE:d++;f+=a[b][1];break;case DIFF_EQUAL:if(1<=d&&1<=e){a.splice(b-d-e,d+e);b=b-d-e;d=this.diff_main(f,g,!1,c);for(e=d.length-1;0<=e;e--)a.splice(b,0,d[e]);b+=\nd.length}d=e=0;g=f=\"\"}b++}a.pop();return a};\ndiff_match_patch.prototype.diff_bisect_=function(a,b,c){for(var d=a.length,e=b.length,f=Math.ceil((d+e)/2),g=2*f,h=Array(g),l=Array(g),k=0;k<g;k++)h[k]=-1,l[k]=-1;h[f+1]=0;l[f+1]=0;k=d-e;for(var m=0!=k%2,p=0,x=0,w=0,q=0,t=0;t<f&&!((new Date).getTime()>c);t++){for(var v=-t+p;v<=t-x;v+=2){var n=f+v;var r=v==-t||v!=t&&h[n-1]<h[n+1]?h[n+1]:h[n-1]+1;for(var y=r-v;r<d&&y<e&&a.charAt(r)==b.charAt(y);)r++,y++;h[n]=r;if(r>d)x+=2;else if(y>e)p+=2;else if(m&&(n=f+k-v,0<=n&&n<g&&-1!=l[n])){var u=d-l[n];if(r>=\nu)return this.diff_bisectSplit_(a,b,r,y,c)}}for(v=-t+w;v<=t-q;v+=2){n=f+v;u=v==-t||v!=t&&l[n-1]<l[n+1]?l[n+1]:l[n-1]+1;for(r=u-v;u<d&&r<e&&a.charAt(d-u-1)==b.charAt(e-r-1);)u++,r++;l[n]=u;if(u>d)q+=2;else if(r>e)w+=2;else if(!m&&(n=f+k-v,0<=n&&n<g&&-1!=h[n]&&(r=h[n],y=f+r-n,u=d-u,r>=u)))return this.diff_bisectSplit_(a,b,r,y,c)}}return[[DIFF_DELETE,a],[DIFF_INSERT,b]]};\ndiff_match_patch.prototype.diff_bisectSplit_=function(a,b,c,d,e){var f=a.substring(0,c),g=b.substring(0,d);a=a.substring(c);b=b.substring(d);f=this.diff_main(f,g,!1,e);e=this.diff_main(a,b,!1,e);return f.concat(e)};\ndiff_match_patch.prototype.diff_linesToChars_=function(a,b){function c(a){for(var b=\"\",c=0,f=-1,g=d.length;f<a.length-1;){f=a.indexOf(\"\\n\",c);-1==f&&(f=a.length-1);var h=a.substring(c,f+1);c=f+1;(e.hasOwnProperty?e.hasOwnProperty(h):void 0!==e[h])?b+=String.fromCharCode(e[h]):(b+=String.fromCharCode(g),e[h]=g,d[g++]=h)}return b}var d=[],e={};d[0]=\"\";var f=c(a),g=c(b);return{chars1:f,chars2:g,lineArray:d}};\ndiff_match_patch.prototype.diff_charsToLines_=function(a,b){for(var c=0;c<a.length;c++){for(var d=a[c][1],e=[],f=0;f<d.length;f++)e[f]=b[d.charCodeAt(f)];a[c][1]=e.join(\"\")}};diff_match_patch.prototype.diff_commonPrefix=function(a,b){if(!a||!b||a.charAt(0)!=b.charAt(0))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(f,e)==b.substring(f,e)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};\ndiff_match_patch.prototype.diff_commonSuffix=function(a,b){if(!a||!b||a.charAt(a.length-1)!=b.charAt(b.length-1))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(a.length-e,a.length-f)==b.substring(b.length-e,b.length-f)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};\ndiff_match_patch.prototype.diff_commonOverlap_=function(a,b){var c=a.length,d=b.length;if(0==c||0==d)return 0;c>d?a=a.substring(c-d):c<d&&(b=b.substring(0,c));c=Math.min(c,d);if(a==b)return c;d=0;for(var e=1;;){var f=a.substring(c-e);f=b.indexOf(f);if(-1==f)return d;e+=f;if(0==f||a.substring(c-e)==b.substring(0,e))d=e,e++}};\ndiff_match_patch.prototype.diff_halfMatch_=function(a,b){function c(a,b,c){for(var d=a.substring(c,c+Math.floor(a.length/4)),e=-1,g=\"\",h,k,l,m;-1!=(e=b.indexOf(d,e+1));){var p=f.diff_commonPrefix(a.substring(c),b.substring(e)),u=f.diff_commonSuffix(a.substring(0,c),b.substring(0,e));g.length<u+p&&(g=b.substring(e-u,e)+b.substring(e,e+p),h=a.substring(0,c-u),k=a.substring(c+p),l=b.substring(0,e-u),m=b.substring(e+p))}return 2*g.length>=a.length?[h,k,l,m,g]:null}if(0>=this.Diff_Timeout)return null;\nvar d=a.length>b.length?a:b,e=a.length>b.length?b:a;if(4>d.length||2*e.length<d.length)return null;var f=this,g=c(d,e,Math.ceil(d.length/4));d=c(d,e,Math.ceil(d.length/2));if(g||d)g=d?g?g[4].length>d[4].length?g:d:d:g;else return null;if(a.length>b.length){d=g[0];e=g[1];var h=g[2];var l=g[3]}else h=g[0],l=g[1],d=g[2],e=g[3];return[d,e,h,l,g[4]]};\ndiff_match_patch.prototype.diff_cleanupSemantic=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=0,h=0,l=0,k=0;f<a.length;)a[f][0]==DIFF_EQUAL?(c[d++]=f,g=l,h=k,k=l=0,e=a[f][1]):(a[f][0]==DIFF_INSERT?l+=a[f][1].length:k+=a[f][1].length,e&&e.length<=Math.max(g,h)&&e.length<=Math.max(l,k)&&(a.splice(c[d-1],0,[DIFF_DELETE,e]),a[c[d-1]+1][0]=DIFF_INSERT,d--,d--,f=0<d?c[d-1]:-1,k=l=h=g=0,e=null,b=!0)),f++;b&&this.diff_cleanupMerge(a);this.diff_cleanupSemanticLossless(a);for(f=1;f<a.length;){if(a[f-1][0]==\nDIFF_DELETE&&a[f][0]==DIFF_INSERT){b=a[f-1][1];c=a[f][1];d=this.diff_commonOverlap_(b,c);e=this.diff_commonOverlap_(c,b);if(d>=e){if(d>=b.length/2||d>=c.length/2)a.splice(f,0,[DIFF_EQUAL,c.substring(0,d)]),a[f-1][1]=b.substring(0,b.length-d),a[f+1][1]=c.substring(d),f++}else if(e>=b.length/2||e>=c.length/2)a.splice(f,0,[DIFF_EQUAL,b.substring(0,e)]),a[f-1][0]=DIFF_INSERT,a[f-1][1]=c.substring(0,c.length-e),a[f+1][0]=DIFF_DELETE,a[f+1][1]=b.substring(e),f++;f++}f++}};\ndiff_match_patch.prototype.diff_cleanupSemanticLossless=function(a){function b(a,b){if(!a||!b)return 6;var c=a.charAt(a.length-1),d=b.charAt(0),e=c.match(diff_match_patch.nonAlphaNumericRegex_),f=d.match(diff_match_patch.nonAlphaNumericRegex_),g=e&&c.match(diff_match_patch.whitespaceRegex_),h=f&&d.match(diff_match_patch.whitespaceRegex_);c=g&&c.match(diff_match_patch.linebreakRegex_);d=h&&d.match(diff_match_patch.linebreakRegex_);var k=c&&a.match(diff_match_patch.blanklineEndRegex_),l=d&&b.match(diff_match_patch.blanklineStartRegex_);\nreturn k||l?5:c||d?4:e&&!g&&h?3:g||h?2:e||f?1:0}for(var c=1;c<a.length-1;){if(a[c-1][0]==DIFF_EQUAL&&a[c+1][0]==DIFF_EQUAL){var d=a[c-1][1],e=a[c][1],f=a[c+1][1],g=this.diff_commonSuffix(d,e);if(g){var h=e.substring(e.length-g);d=d.substring(0,d.length-g);e=h+e.substring(0,e.length-g);f=h+f}g=d;h=e;for(var l=f,k=b(d,e)+b(e,f);e.charAt(0)===f.charAt(0);){d+=e.charAt(0);e=e.substring(1)+f.charAt(0);f=f.substring(1);var m=b(d,e)+b(e,f);m>=k&&(k=m,g=d,h=e,l=f)}a[c-1][1]!=g&&(g?a[c-1][1]=g:(a.splice(c-\n1,1),c--),a[c][1]=h,l?a[c+1][1]=l:(a.splice(c+1,1),c--))}c++}};diff_match_patch.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/;diff_match_patch.whitespaceRegex_=/\\s/;diff_match_patch.linebreakRegex_=/[\\r\\n]/;diff_match_patch.blanklineEndRegex_=/\\n\\r?\\n$/;diff_match_patch.blanklineStartRegex_=/^\\r?\\n\\r?\\n/;\ndiff_match_patch.prototype.diff_cleanupEfficiency=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=!1,h=!1,l=!1,k=!1;f<a.length;)a[f][0]==DIFF_EQUAL?(a[f][1].length<this.Diff_EditCost&&(l||k)?(c[d++]=f,g=l,h=k,e=a[f][1]):(d=0,e=null),l=k=!1):(a[f][0]==DIFF_DELETE?k=!0:l=!0,e&&(g&&h&&l&&k||e.length<this.Diff_EditCost/2&&3==g+h+l+k)&&(a.splice(c[d-1],0,[DIFF_DELETE,e]),a[c[d-1]+1][0]=DIFF_INSERT,d--,e=null,g&&h?(l=k=!0,d=0):(d--,f=0<d?c[d-1]:-1,l=k=!1),b=!0)),f++;b&&this.diff_cleanupMerge(a)};\ndiff_match_patch.prototype.diff_cleanupMerge=function(a){a.push([DIFF_EQUAL,\"\"]);for(var b=0,c=0,d=0,e=\"\",f=\"\",g;b<a.length;)switch(a[b][0]){case DIFF_INSERT:d++;f+=a[b][1];b++;break;case DIFF_DELETE:c++;e+=a[b][1];b++;break;case DIFF_EQUAL:1<c+d?(0!==c&&0!==d&&(g=this.diff_commonPrefix(f,e),0!==g&&(0<b-c-d&&a[b-c-d-1][0]==DIFF_EQUAL?a[b-c-d-1][1]+=f.substring(0,g):(a.splice(0,0,[DIFF_EQUAL,f.substring(0,g)]),b++),f=f.substring(g),e=e.substring(g)),g=this.diff_commonSuffix(f,e),0!==g&&(a[b][1]=f.substring(f.length-\ng)+a[b][1],f=f.substring(0,f.length-g),e=e.substring(0,e.length-g))),0===c?a.splice(b-d,c+d,[DIFF_INSERT,f]):0===d?a.splice(b-c,c+d,[DIFF_DELETE,e]):a.splice(b-c-d,c+d,[DIFF_DELETE,e],[DIFF_INSERT,f]),b=b-c-d+(c?1:0)+(d?1:0)+1):0!==b&&a[b-1][0]==DIFF_EQUAL?(a[b-1][1]+=a[b][1],a.splice(b,1)):b++,c=d=0,f=e=\"\"}\"\"===a[a.length-1][1]&&a.pop();c=!1;for(b=1;b<a.length-1;)a[b-1][0]==DIFF_EQUAL&&a[b+1][0]==DIFF_EQUAL&&(a[b][1].substring(a[b][1].length-a[b-1][1].length)==a[b-1][1]?(a[b][1]=a[b-1][1]+a[b][1].substring(0,\na[b][1].length-a[b-1][1].length),a[b+1][1]=a[b-1][1]+a[b+1][1],a.splice(b-1,1),c=!0):a[b][1].substring(0,a[b+1][1].length)==a[b+1][1]&&(a[b-1][1]+=a[b+1][1],a[b][1]=a[b][1].substring(a[b+1][1].length)+a[b+1][1],a.splice(b+1,1),c=!0)),b++;c&&this.diff_cleanupMerge(a)};\ndiff_match_patch.prototype.diff_xIndex=function(a,b){var c=0,d=0,e=0,f=0,g;for(g=0;g<a.length;g++){a[g][0]!==DIFF_INSERT&&(c+=a[g][1].length);a[g][0]!==DIFF_DELETE&&(d+=a[g][1].length);if(c>b)break;e=c;f=d}return a.length!=g&&a[g][0]===DIFF_DELETE?f:f+(b-e)};\ndiff_match_patch.prototype.diff_prettyHtml=function(a){for(var b=[],c=/&/g,d=/</g,e=/>/g,f=/\\n/g,g=0;g<a.length;g++){var h=a[g][0],l=a[g][1].replace(c,\"&amp;\").replace(d,\"&lt;\").replace(e,\"&gt;\").replace(f,\"&para;<br>\");switch(h){case DIFF_INSERT:b[g]='<ins style=\"background:#e6ffe6;\">'+l+\"</ins>\";break;case DIFF_DELETE:b[g]='<del style=\"background:#ffe6e6;\">'+l+\"</del>\";break;case DIFF_EQUAL:b[g]=\"<span>\"+l+\"</span>\"}}return b.join(\"\")};\ndiff_match_patch.prototype.diff_text1=function(a){for(var b=[],c=0;c<a.length;c++)a[c][0]!==DIFF_INSERT&&(b[c]=a[c][1]);return b.join(\"\")};diff_match_patch.prototype.diff_text2=function(a){for(var b=[],c=0;c<a.length;c++)a[c][0]!==DIFF_DELETE&&(b[c]=a[c][1]);return b.join(\"\")};\ndiff_match_patch.prototype.diff_levenshtein=function(a){for(var b=0,c=0,d=0,e=0;e<a.length;e++){var f=a[e][1];switch(a[e][0]){case DIFF_INSERT:c+=f.length;break;case DIFF_DELETE:d+=f.length;break;case DIFF_EQUAL:b+=Math.max(c,d),d=c=0}}return b+=Math.max(c,d)};\ndiff_match_patch.prototype.diff_toDelta=function(a){for(var b=[],c=0;c<a.length;c++)switch(a[c][0]){case DIFF_INSERT:b[c]=\"+\"+encodeURI(a[c][1]);break;case DIFF_DELETE:b[c]=\"-\"+a[c][1].length;break;case DIFF_EQUAL:b[c]=\"=\"+a[c][1].length}return b.join(\"\\t\").replace(/%20/g,\" \")};\ndiff_match_patch.prototype.diff_fromDelta=function(a,b){for(var c=[],d=0,e=0,f=b.split(/\\t/g),g=0;g<f.length;g++){var h=f[g].substring(1);switch(f[g].charAt(0)){case \"+\":try{c[d++]=[DIFF_INSERT,decodeURI(h)]}catch(k){throw Error(\"Illegal escape in diff_fromDelta: \"+h);}break;case \"-\":case \"=\":var l=parseInt(h,10);if(isNaN(l)||0>l)throw Error(\"Invalid number in diff_fromDelta: \"+h);h=a.substring(e,e+=l);\"=\"==f[g].charAt(0)?c[d++]=[DIFF_EQUAL,h]:c[d++]=[DIFF_DELETE,h];break;default:if(f[g])throw Error(\"Invalid diff operation in diff_fromDelta: \"+\nf[g]);}}if(e!=a.length)throw Error(\"Delta length (\"+e+\") does not equal source text length (\"+a.length+\").\");return c};diff_match_patch.prototype.match_main=function(a,b,c){if(null==a||null==b||null==c)throw Error(\"Null input. (match_main)\");c=Math.max(0,Math.min(c,a.length));return a==b?0:a.length?a.substring(c,c+b.length)==b?c:this.match_bitap_(a,b,c):-1};\ndiff_match_patch.prototype.match_bitap_=function(a,b,c){function d(a,d){var e=a/b.length,g=Math.abs(c-d);return f.Match_Distance?e+g/f.Match_Distance:g?1:e}if(b.length>this.Match_MaxBits)throw Error(\"Pattern too long for this browser.\");var e=this.match_alphabet_(b),f=this,g=this.Match_Threshold,h=a.indexOf(b,c);-1!=h&&(g=Math.min(d(0,h),g),h=a.lastIndexOf(b,c+b.length),-1!=h&&(g=Math.min(d(0,h),g)));var l=1<<b.length-1;h=-1;for(var k,m,p=b.length+a.length,x,w=0;w<b.length;w++){k=0;for(m=p;k<m;)d(w,\nc+m)<=g?k=m:p=m,m=Math.floor((p-k)/2+k);p=m;k=Math.max(1,c-m+1);var q=Math.min(c+m,a.length)+b.length;m=Array(q+2);for(m[q+1]=(1<<w)-1;q>=k;q--){var t=e[a.charAt(q-1)];m[q]=0===w?(m[q+1]<<1|1)&t:(m[q+1]<<1|1)&t|(x[q+1]|x[q])<<1|1|x[q+1];if(m[q]&l&&(t=d(w,q-1),t<=g))if(g=t,h=q-1,h>c)k=Math.max(1,2*c-h);else break}if(d(w+1,c)>g)break;x=m}return h};\ndiff_match_patch.prototype.match_alphabet_=function(a){for(var b={},c=0;c<a.length;c++)b[a.charAt(c)]=0;for(c=0;c<a.length;c++)b[a.charAt(c)]|=1<<a.length-c-1;return b};\ndiff_match_patch.prototype.patch_addContext_=function(a,b){if(0!=b.length){for(var c=b.substring(a.start2,a.start2+a.length1),d=0;b.indexOf(c)!=b.lastIndexOf(c)&&c.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin;)d+=this.Patch_Margin,c=b.substring(a.start2-d,a.start2+a.length1+d);d+=this.Patch_Margin;(c=b.substring(a.start2-d,a.start2))&&a.diffs.unshift([DIFF_EQUAL,c]);(d=b.substring(a.start2+a.length1,a.start2+a.length1+d))&&a.diffs.push([DIFF_EQUAL,d]);a.start1-=c.length;a.start2-=\nc.length;a.length1+=c.length+d.length;a.length2+=c.length+d.length}};\ndiff_match_patch.prototype.patch_make=function(a,b,c){if(\"string\"==typeof a&&\"string\"==typeof b&&\"undefined\"==typeof c){var d=a;b=this.diff_main(d,b,!0);2<b.length&&(this.diff_cleanupSemantic(b),this.diff_cleanupEfficiency(b))}else if(a&&\"object\"==typeof a&&\"undefined\"==typeof b&&\"undefined\"==typeof c)b=a,d=this.diff_text1(b);else if(\"string\"==typeof a&&b&&\"object\"==typeof b&&\"undefined\"==typeof c)d=a;else if(\"string\"==typeof a&&\"string\"==typeof b&&c&&\"object\"==typeof c)d=a,b=c;else throw Error(\"Unknown call format to patch_make.\");\nif(0===b.length)return[];c=[];a=new diff_match_patch.patch_obj;for(var e=0,f=0,g=0,h=d,l=0;l<b.length;l++){var k=b[l][0],m=b[l][1];e||k===DIFF_EQUAL||(a.start1=f,a.start2=g);switch(k){case DIFF_INSERT:a.diffs[e++]=b[l];a.length2+=m.length;d=d.substring(0,g)+m+d.substring(g);break;case DIFF_DELETE:a.length1+=m.length;a.diffs[e++]=b[l];d=d.substring(0,g)+d.substring(g+m.length);break;case DIFF_EQUAL:m.length<=2*this.Patch_Margin&&e&&b.length!=l+1?(a.diffs[e++]=b[l],a.length1+=m.length,a.length2+=m.length):\nm.length>=2*this.Patch_Margin&&e&&(this.patch_addContext_(a,h),c.push(a),a=new diff_match_patch.patch_obj,e=0,h=d,f=g)}k!==DIFF_INSERT&&(f+=m.length);k!==DIFF_DELETE&&(g+=m.length)}e&&(this.patch_addContext_(a,h),c.push(a));return c};\ndiff_match_patch.prototype.patch_deepCopy=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c],e=new diff_match_patch.patch_obj;e.diffs=[];for(var f=0;f<d.diffs.length;f++)e.diffs[f]=d.diffs[f].slice();e.start1=d.start1;e.start2=d.start2;e.length1=d.length1;e.length2=d.length2;b[c]=e}return b};\ndiff_match_patch.prototype.patch_apply=function(a,b){if(0==a.length)return[b,[]];a=this.patch_deepCopy(a);var c=this.patch_addPadding(a);b=c+b+c;this.patch_splitMax(a);for(var d=0,e=[],f=0;f<a.length;f++){var g=a[f].start2+d,h=this.diff_text1(a[f].diffs),l=-1;if(h.length>this.Match_MaxBits){var k=this.match_main(b,h.substring(0,this.Match_MaxBits),g);-1!=k&&(l=this.match_main(b,h.substring(h.length-this.Match_MaxBits),g+h.length-this.Match_MaxBits),-1==l||k>=l)&&(k=-1)}else k=this.match_main(b,h,\ng);if(-1==k)e[f]=!1,d-=a[f].length2-a[f].length1;else if(e[f]=!0,d=k-g,g=-1==l?b.substring(k,k+h.length):b.substring(k,l+this.Match_MaxBits),h==g)b=b.substring(0,k)+this.diff_text2(a[f].diffs)+b.substring(k+h.length);else if(g=this.diff_main(h,g,!1),h.length>this.Match_MaxBits&&this.diff_levenshtein(g)/h.length>this.Patch_DeleteThreshold)e[f]=!1;else{this.diff_cleanupSemanticLossless(g);h=0;var m;for(l=0;l<a[f].diffs.length;l++){var p=a[f].diffs[l];p[0]!==DIFF_EQUAL&&(m=this.diff_xIndex(g,h));p[0]===\nDIFF_INSERT?b=b.substring(0,k+m)+p[1]+b.substring(k+m):p[0]===DIFF_DELETE&&(b=b.substring(0,k+m)+b.substring(k+this.diff_xIndex(g,h+p[1].length)));p[0]!==DIFF_DELETE&&(h+=p[1].length)}}}b=b.substring(c.length,b.length-c.length);return[b,e]};\ndiff_match_patch.prototype.patch_addPadding=function(a){for(var b=this.Patch_Margin,c=\"\",d=1;d<=b;d++)c+=String.fromCharCode(d);for(d=0;d<a.length;d++)a[d].start1+=b,a[d].start2+=b;d=a[0];var e=d.diffs;if(0==e.length||e[0][0]!=DIFF_EQUAL)e.unshift([DIFF_EQUAL,c]),d.start1-=b,d.start2-=b,d.length1+=b,d.length2+=b;else if(b>e[0][1].length){var f=b-e[0][1].length;e[0][1]=c.substring(e[0][1].length)+e[0][1];d.start1-=f;d.start2-=f;d.length1+=f;d.length2+=f}d=a[a.length-1];e=d.diffs;0==e.length||e[e.length-\n1][0]!=DIFF_EQUAL?(e.push([DIFF_EQUAL,c]),d.length1+=b,d.length2+=b):b>e[e.length-1][1].length&&(f=b-e[e.length-1][1].length,e[e.length-1][1]+=c.substring(0,f),d.length1+=f,d.length2+=f);return c};\ndiff_match_patch.prototype.patch_splitMax=function(a){for(var b=this.Match_MaxBits,c=0;c<a.length;c++)if(!(a[c].length1<=b)){var d=a[c];a.splice(c--,1);for(var e=d.start1,f=d.start2,g=\"\";0!==d.diffs.length;){var h=new diff_match_patch.patch_obj,l=!0;h.start1=e-g.length;h.start2=f-g.length;\"\"!==g&&(h.length1=h.length2=g.length,h.diffs.push([DIFF_EQUAL,g]));for(;0!==d.diffs.length&&h.length1<b-this.Patch_Margin;){g=d.diffs[0][0];var k=d.diffs[0][1];g===DIFF_INSERT?(h.length2+=k.length,f+=k.length,h.diffs.push(d.diffs.shift()),\nl=!1):g===DIFF_DELETE&&1==h.diffs.length&&h.diffs[0][0]==DIFF_EQUAL&&k.length>2*b?(h.length1+=k.length,e+=k.length,l=!1,h.diffs.push([g,k]),d.diffs.shift()):(k=k.substring(0,b-h.length1-this.Patch_Margin),h.length1+=k.length,e+=k.length,g===DIFF_EQUAL?(h.length2+=k.length,f+=k.length):l=!1,h.diffs.push([g,k]),k==d.diffs[0][1]?d.diffs.shift():d.diffs[0][1]=d.diffs[0][1].substring(k.length))}g=this.diff_text2(h.diffs);g=g.substring(g.length-this.Patch_Margin);k=this.diff_text1(d.diffs).substring(0,\nthis.Patch_Margin);\"\"!==k&&(h.length1+=k.length,h.length2+=k.length,0!==h.diffs.length&&h.diffs[h.diffs.length-1][0]===DIFF_EQUAL?h.diffs[h.diffs.length-1][1]+=k:h.diffs.push([DIFF_EQUAL,k]));l||a.splice(++c,0,h)}}};diff_match_patch.prototype.patch_toText=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=a[c];return b.join(\"\")};\ndiff_match_patch.prototype.patch_fromText=function(a){var b=[];if(!a)return b;a=a.split(\"\\n\");for(var c=0,d=/^@@ -(\\d+),?(\\d*) \\+(\\d+),?(\\d*) @@$/;c<a.length;){var e=a[c].match(d);if(!e)throw Error(\"Invalid patch string: \"+a[c]);var f=new diff_match_patch.patch_obj;b.push(f);f.start1=parseInt(e[1],10);\"\"===e[2]?(f.start1--,f.length1=1):\"0\"==e[2]?f.length1=0:(f.start1--,f.length1=parseInt(e[2],10));f.start2=parseInt(e[3],10);\"\"===e[4]?(f.start2--,f.length2=1):\"0\"==e[4]?f.length2=0:(f.start2--,f.length2=\nparseInt(e[4],10));for(c++;c<a.length;){e=a[c].charAt(0);try{var g=decodeURI(a[c].substring(1))}catch(h){throw Error(\"Illegal escape in patch_fromText: \"+g);}if(\"-\"==e)f.diffs.push([DIFF_DELETE,g]);else if(\"+\"==e)f.diffs.push([DIFF_INSERT,g]);else if(\" \"==e)f.diffs.push([DIFF_EQUAL,g]);else if(\"@\"==e)break;else if(\"\"!==e)throw Error('Invalid patch mode \"'+e+'\" in: '+g);c++}}return b};diff_match_patch.patch_obj=function(){this.diffs=[];this.start2=this.start1=null;this.length2=this.length1=0};\ndiff_match_patch.patch_obj.prototype.toString=function(){for(var a=[\"@@ -\"+(0===this.length1?this.start1+\",0\":1==this.length1?this.start1+1:this.start1+1+\",\"+this.length1)+\" +\"+(0===this.length2?this.start2+\",0\":1==this.length2?this.start2+1:this.start2+1+\",\"+this.length2)+\" @@\\n\"],b,c=0;c<this.diffs.length;c++){switch(this.diffs[c][0]){case DIFF_INSERT:b=\"+\";break;case DIFF_DELETE:b=\"-\";break;case DIFF_EQUAL:b=\" \"}a[c+1]=b+encodeURI(this.diffs[c][1])+\"\\n\"}return a.join(\"\").replace(/%20/g,\" \")};\nthis.diff_match_patch=diff_match_patch;this.DIFF_DELETE=DIFF_DELETE;this.DIFF_INSERT=DIFF_INSERT;this.DIFF_EQUAL=DIFF_EQUAL;\n}).call(exports);",
            "type": "application/javascript",
            "title": "$:/core/modules/utils/diff-match-patch/diff_match_patch.js",
            "module-type": "library"
        },
        "$:/core/modules/utils/dom/animations/slide.js": {
            "title": "$:/core/modules/utils/dom/animations/slide.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/animations/slide.js\ntype: application/javascript\nmodule-type: animation\n\nA simple slide animation that varies the height of the element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction slideOpen(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration();\n\t// Get the current height of the domNode\n\tvar computedStyle = window.getComputedStyle(domNode),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrPaddingBottom = parseInt(computedStyle.paddingBottom,10),\n\t\tcurrPaddingTop = parseInt(computedStyle.paddingTop,10),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Reset the margin once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"none\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t{marginTop: currMarginTop + \"px\"},\n\t\t{paddingBottom: currPaddingBottom + \"px\"},\n\t\t{paddingTop: currPaddingTop + \"px\"},\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n}\n\nfunction slideClosed(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration(),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Clear the properties we've set when the animation is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n}\n\nexports.slide = {\n\topen: slideOpen,\n\tclose: slideClosed\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "animation"
        },
        "$:/core/modules/utils/dom/animator.js": {
            "title": "$:/core/modules/utils/dom/animator.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/animator.js\ntype: application/javascript\nmodule-type: utils\n\nOrchestrates animations and transitions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Animator() {\n\t// Get the registered animation modules\n\tthis.animations = {};\n\t$tw.modules.applyMethods(\"animation\",this.animations);\n}\n\nAnimator.prototype.perform = function(type,domNode,options) {\n\toptions = options || {};\n\t// Find an animation that can handle this type\n\tvar chosenAnimation;\n\t$tw.utils.each(this.animations,function(animation,name) {\n\t\tif($tw.utils.hop(animation,type)) {\n\t\t\tchosenAnimation = animation[type];\n\t\t}\n\t});\n\tif(!chosenAnimation) {\n\t\tchosenAnimation = function(domNode,options) {\n\t\t\tif(options.callback) {\n\t\t\t\toptions.callback();\n\t\t\t}\n\t\t};\n\t}\n\t// Call the animation\n\tchosenAnimation(domNode,options);\n};\n\nexports.Animator = Animator;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/browser.js": {
            "title": "$:/core/modules/utils/dom/browser.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/browser.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser feature detection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet style properties of an element\n\telement: dom node\n\tstyles: ordered array of {name: value} pairs\n*/\nexports.setStyle = function(element,styles) {\n\tif(element.nodeType === 1) { // Element.ELEMENT_NODE\n\t\tfor(var t=0; t<styles.length; t++) {\n\t\t\tfor(var styleName in styles[t]) {\n\t\t\t\telement.style[$tw.utils.convertStyleNameToPropertyName(styleName)] = styles[t][styleName];\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nConverts a standard CSS property name into the local browser-specific equivalent. For example:\n\t\"background-color\" --> \"backgroundColor\"\n\t\"transition\" --> \"webkitTransition\"\n*/\n\nvar styleNameCache = {}; // We'll cache the style name conversions\n\nexports.convertStyleNameToPropertyName = function(styleName) {\n\t// Return from the cache if we can\n\tif(styleNameCache[styleName]) {\n\t\treturn styleNameCache[styleName];\n\t}\n\t// Convert it by first removing any hyphens\n\tvar propertyName = $tw.utils.unHyphenateCss(styleName);\n\t// Then check if it needs a prefix\n\tif($tw.browser && document.body.style[propertyName] === undefined) {\n\t\tvar prefixes = [\"O\",\"MS\",\"Moz\",\"webkit\"];\n\t\tfor(var t=0; t<prefixes.length; t++) {\n\t\t\tvar prefixedName = prefixes[t] + propertyName.substr(0,1).toUpperCase() + propertyName.substr(1);\n\t\t\tif(document.body.style[prefixedName] !== undefined) {\n\t\t\t\tpropertyName = prefixedName;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t// Put it in the cache too\n\tstyleNameCache[styleName] = propertyName;\n\treturn propertyName;\n};\n\n/*\nConverts a JS format CSS property name back into the dashed form used in CSS declarations. For example:\n\t\"backgroundColor\" --> \"background-color\"\n\t\"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.convertPropertyNameToStyleName = function(propertyName) {\n\t// Rehyphenate the name\n\tvar styleName = $tw.utils.hyphenateCss(propertyName);\n\t// If there's a webkit prefix, add a dash (other browsers have uppercase prefixes, and so get the dash automatically)\n\tif(styleName.indexOf(\"webkit\") === 0) {\n\t\tstyleName = \"-\" + styleName;\n\t} else if(styleName.indexOf(\"-m-s\") === 0) {\n\t\tstyleName = \"-ms\" + styleName.substr(4);\n\t}\n\treturn styleName;\n};\n\n/*\nRound trip a stylename to a property name and back again. For example:\n\t\"transform\" --> \"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.roundTripPropertyName = function(propertyName) {\n\treturn $tw.utils.convertPropertyNameToStyleName($tw.utils.convertStyleNameToPropertyName(propertyName));\n};\n\n/*\nConverts a standard event name into the local browser specific equivalent. For example:\n\t\"animationEnd\" --> \"webkitAnimationEnd\"\n*/\n\nvar eventNameCache = {}; // We'll cache the conversions\n\nvar eventNameMappings = {\n\t\"transitionEnd\": {\n\t\tcorrespondingCssProperty: \"transition\",\n\t\tmappings: {\n\t\t\ttransition: \"transitionend\",\n\t\t\tOTransition: \"oTransitionEnd\",\n\t\t\tMSTransition: \"msTransitionEnd\",\n\t\t\tMozTransition: \"transitionend\",\n\t\t\twebkitTransition: \"webkitTransitionEnd\"\n\t\t}\n\t},\n\t\"animationEnd\": {\n\t\tcorrespondingCssProperty: \"animation\",\n\t\tmappings: {\n\t\t\tanimation: \"animationend\",\n\t\t\tOAnimation: \"oAnimationEnd\",\n\t\t\tMSAnimation: \"msAnimationEnd\",\n\t\t\tMozAnimation: \"animationend\",\n\t\t\twebkitAnimation: \"webkitAnimationEnd\"\n\t\t}\n\t}\n};\n\nexports.convertEventName = function(eventName) {\n\tif(eventNameCache[eventName]) {\n\t\treturn eventNameCache[eventName];\n\t}\n\tvar newEventName = eventName,\n\t\tmappings = eventNameMappings[eventName];\n\tif(mappings) {\n\t\tvar convertedProperty = $tw.utils.convertStyleNameToPropertyName(mappings.correspondingCssProperty);\n\t\tif(mappings.mappings[convertedProperty]) {\n\t\t\tnewEventName = mappings.mappings[convertedProperty];\n\t\t}\n\t}\n\t// Put it in the cache too\n\teventNameCache[eventName] = newEventName;\n\treturn newEventName;\n};\n\n/*\nReturn the names of the fullscreen APIs\n*/\nexports.getFullScreenApis = function() {\n\tvar d = document,\n\t\tdb = d.body,\n\t\tresult = {\n\t\t\"_requestFullscreen\": db.webkitRequestFullscreen !== undefined ? \"webkitRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.mozRequestFullScreen !== undefined ? \"mozRequestFullScreen\" :\n\t\t\t\t\t\t\tdb.msRequestFullscreen !== undefined ? \"msRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.requestFullscreen !== undefined ? \"requestFullscreen\" : \"\",\n\t\t\"_exitFullscreen\": d.webkitExitFullscreen !== undefined ? \"webkitExitFullscreen\" :\n\t\t\t\t\t\t\td.mozCancelFullScreen !== undefined ? \"mozCancelFullScreen\" :\n\t\t\t\t\t\t\td.msExitFullscreen !== undefined ? \"msExitFullscreen\" :\n\t\t\t\t\t\t\td.exitFullscreen !== undefined ? \"exitFullscreen\" : \"\",\n\t\t\"_fullscreenElement\": d.webkitFullscreenElement !== undefined ? \"webkitFullscreenElement\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozFullScreenElement\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"msFullscreenElement\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenElement\" : \"\",\n\t\t\"_fullscreenChange\": d.webkitFullscreenElement !== undefined ? \"webkitfullscreenchange\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozfullscreenchange\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"MSFullscreenChange\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenchange\" : \"\"\n\t};\n\tif(!result._requestFullscreen || !result._exitFullscreen || !result._fullscreenElement || !result._fullscreenChange) {\n\t\treturn null;\n\t} else {\n\t\treturn result;\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/csscolorparser.js": {
            "title": "$:/core/modules/utils/dom/csscolorparser.js",
            "text": "// (c) Dean McNamee <dean@gmail.com>, 2012.\n//\n// https://github.com/deanm/css-color-parser-js\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n// IN THE SOFTWARE.\n\n// http://www.w3.org/TR/css3-color/\nvar kCSSColorTable = {\n  \"transparent\": [0,0,0,0], \"aliceblue\": [240,248,255,1],\n  \"antiquewhite\": [250,235,215,1], \"aqua\": [0,255,255,1],\n  \"aquamarine\": [127,255,212,1], \"azure\": [240,255,255,1],\n  \"beige\": [245,245,220,1], \"bisque\": [255,228,196,1],\n  \"black\": [0,0,0,1], \"blanchedalmond\": [255,235,205,1],\n  \"blue\": [0,0,255,1], \"blueviolet\": [138,43,226,1],\n  \"brown\": [165,42,42,1], \"burlywood\": [222,184,135,1],\n  \"cadetblue\": [95,158,160,1], \"chartreuse\": [127,255,0,1],\n  \"chocolate\": [210,105,30,1], \"coral\": [255,127,80,1],\n  \"cornflowerblue\": [100,149,237,1], \"cornsilk\": [255,248,220,1],\n  \"crimson\": [220,20,60,1], \"cyan\": [0,255,255,1],\n  \"darkblue\": [0,0,139,1], \"darkcyan\": [0,139,139,1],\n  \"darkgoldenrod\": [184,134,11,1], \"darkgray\": [169,169,169,1],\n  \"darkgreen\": [0,100,0,1], \"darkgrey\": [169,169,169,1],\n  \"darkkhaki\": [189,183,107,1], \"darkmagenta\": [139,0,139,1],\n  \"darkolivegreen\": [85,107,47,1], \"darkorange\": [255,140,0,1],\n  \"darkorchid\": [153,50,204,1], \"darkred\": [139,0,0,1],\n  \"darksalmon\": [233,150,122,1], \"darkseagreen\": [143,188,143,1],\n  \"darkslateblue\": [72,61,139,1], \"darkslategray\": [47,79,79,1],\n  \"darkslategrey\": [47,79,79,1], \"darkturquoise\": [0,206,209,1],\n  \"darkviolet\": [148,0,211,1], \"deeppink\": [255,20,147,1],\n  \"deepskyblue\": [0,191,255,1], \"dimgray\": [105,105,105,1],\n  \"dimgrey\": [105,105,105,1], \"dodgerblue\": [30,144,255,1],\n  \"firebrick\": [178,34,34,1], \"floralwhite\": [255,250,240,1],\n  \"forestgreen\": [34,139,34,1], \"fuchsia\": [255,0,255,1],\n  \"gainsboro\": [220,220,220,1], \"ghostwhite\": [248,248,255,1],\n  \"gold\": [255,215,0,1], \"goldenrod\": [218,165,32,1],\n  \"gray\": [128,128,128,1], \"green\": [0,128,0,1],\n  \"greenyellow\": [173,255,47,1], \"grey\": [128,128,128,1],\n  \"honeydew\": [240,255,240,1], \"hotpink\": [255,105,180,1],\n  \"indianred\": [205,92,92,1], \"indigo\": [75,0,130,1],\n  \"ivory\": [255,255,240,1], \"khaki\": [240,230,140,1],\n  \"lavender\": [230,230,250,1], \"lavenderblush\": [255,240,245,1],\n  \"lawngreen\": [124,252,0,1], \"lemonchiffon\": [255,250,205,1],\n  \"lightblue\": [173,216,230,1], \"lightcoral\": [240,128,128,1],\n  \"lightcyan\": [224,255,255,1], \"lightgoldenrodyellow\": [250,250,210,1],\n  \"lightgray\": [211,211,211,1], \"lightgreen\": [144,238,144,1],\n  \"lightgrey\": [211,211,211,1], \"lightpink\": [255,182,193,1],\n  \"lightsalmon\": [255,160,122,1], \"lightseagreen\": [32,178,170,1],\n  \"lightskyblue\": [135,206,250,1], \"lightslategray\": [119,136,153,1],\n  \"lightslategrey\": [119,136,153,1], \"lightsteelblue\": [176,196,222,1],\n  \"lightyellow\": [255,255,224,1], \"lime\": [0,255,0,1],\n  \"limegreen\": [50,205,50,1], \"linen\": [250,240,230,1],\n  \"magenta\": [255,0,255,1], \"maroon\": [128,0,0,1],\n  \"mediumaquamarine\": [102,205,170,1], \"mediumblue\": [0,0,205,1],\n  \"mediumorchid\": [186,85,211,1], \"mediumpurple\": [147,112,219,1],\n  \"mediumseagreen\": [60,179,113,1], \"mediumslateblue\": [123,104,238,1],\n  \"mediumspringgreen\": [0,250,154,1], \"mediumturquoise\": [72,209,204,1],\n  \"mediumvioletred\": [199,21,133,1], \"midnightblue\": [25,25,112,1],\n  \"mintcream\": [245,255,250,1], \"mistyrose\": [255,228,225,1],\n  \"moccasin\": [255,228,181,1], \"navajowhite\": [255,222,173,1],\n  \"navy\": [0,0,128,1], \"oldlace\": [253,245,230,1],\n  \"olive\": [128,128,0,1], \"olivedrab\": [107,142,35,1],\n  \"orange\": [255,165,0,1], \"orangered\": [255,69,0,1],\n  \"orchid\": [218,112,214,1], \"palegoldenrod\": [238,232,170,1],\n  \"palegreen\": [152,251,152,1], \"paleturquoise\": [175,238,238,1],\n  \"palevioletred\": [219,112,147,1], \"papayawhip\": [255,239,213,1],\n  \"peachpuff\": [255,218,185,1], \"peru\": [205,133,63,1],\n  \"pink\": [255,192,203,1], \"plum\": [221,160,221,1],\n  \"powderblue\": [176,224,230,1], \"purple\": [128,0,128,1],\n  \"red\": [255,0,0,1], \"rosybrown\": [188,143,143,1],\n  \"royalblue\": [65,105,225,1], \"saddlebrown\": [139,69,19,1],\n  \"salmon\": [250,128,114,1], \"sandybrown\": [244,164,96,1],\n  \"seagreen\": [46,139,87,1], \"seashell\": [255,245,238,1],\n  \"sienna\": [160,82,45,1], \"silver\": [192,192,192,1],\n  \"skyblue\": [135,206,235,1], \"slateblue\": [106,90,205,1],\n  \"slategray\": [112,128,144,1], \"slategrey\": [112,128,144,1],\n  \"snow\": [255,250,250,1], \"springgreen\": [0,255,127,1],\n  \"steelblue\": [70,130,180,1], \"tan\": [210,180,140,1],\n  \"teal\": [0,128,128,1], \"thistle\": [216,191,216,1],\n  \"tomato\": [255,99,71,1], \"turquoise\": [64,224,208,1],\n  \"violet\": [238,130,238,1], \"wheat\": [245,222,179,1],\n  \"white\": [255,255,255,1], \"whitesmoke\": [245,245,245,1],\n  \"yellow\": [255,255,0,1], \"yellowgreen\": [154,205,50,1]}\n\nfunction clamp_css_byte(i) {  // Clamp to integer 0 .. 255.\n  i = Math.round(i);  // Seems to be what Chrome does (vs truncation).\n  return i < 0 ? 0 : i > 255 ? 255 : i;\n}\n\nfunction clamp_css_float(f) {  // Clamp to float 0.0 .. 1.0.\n  return f < 0 ? 0 : f > 1 ? 1 : f;\n}\n\nfunction parse_css_int(str) {  // int or percentage.\n  if (str[str.length - 1] === '%')\n    return clamp_css_byte(parseFloat(str) / 100 * 255);\n  return clamp_css_byte(parseInt(str));\n}\n\nfunction parse_css_float(str) {  // float or percentage.\n  if (str[str.length - 1] === '%')\n    return clamp_css_float(parseFloat(str) / 100);\n  return clamp_css_float(parseFloat(str));\n}\n\nfunction css_hue_to_rgb(m1, m2, h) {\n  if (h < 0) h += 1;\n  else if (h > 1) h -= 1;\n\n  if (h * 6 < 1) return m1 + (m2 - m1) * h * 6;\n  if (h * 2 < 1) return m2;\n  if (h * 3 < 2) return m1 + (m2 - m1) * (2/3 - h) * 6;\n  return m1;\n}\n\nfunction parseCSSColor(css_str) {\n  // Remove all whitespace, not compliant, but should just be more accepting.\n  var str = css_str.replace(/ /g, '').toLowerCase();\n\n  // Color keywords (and transparent) lookup.\n  if (str in kCSSColorTable) return kCSSColorTable[str].slice();  // dup.\n\n  // #abc and #abc123 syntax.\n  if (str[0] === '#') {\n    if (str.length === 4) {\n      var iv = parseInt(str.substr(1), 16);  // TODO(deanm): Stricter parsing.\n      if (!(iv >= 0 && iv <= 0xfff)) return null;  // Covers NaN.\n      return [((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8),\n              (iv & 0xf0) | ((iv & 0xf0) >> 4),\n              (iv & 0xf) | ((iv & 0xf) << 4),\n              1];\n    } else if (str.length === 7) {\n      var iv = parseInt(str.substr(1), 16);  // TODO(deanm): Stricter parsing.\n      if (!(iv >= 0 && iv <= 0xffffff)) return null;  // Covers NaN.\n      return [(iv & 0xff0000) >> 16,\n              (iv & 0xff00) >> 8,\n              iv & 0xff,\n              1];\n    }\n\n    return null;\n  }\n\n  var op = str.indexOf('('), ep = str.indexOf(')');\n  if (op !== -1 && ep + 1 === str.length) {\n    var fname = str.substr(0, op);\n    var params = str.substr(op+1, ep-(op+1)).split(',');\n    var alpha = 1;  // To allow case fallthrough.\n    switch (fname) {\n      case 'rgba':\n        if (params.length !== 4) return null;\n        alpha = parse_css_float(params.pop());\n        // Fall through.\n      case 'rgb':\n        if (params.length !== 3) return null;\n        return [parse_css_int(params[0]),\n                parse_css_int(params[1]),\n                parse_css_int(params[2]),\n                alpha];\n      case 'hsla':\n        if (params.length !== 4) return null;\n        alpha = parse_css_float(params.pop());\n        // Fall through.\n      case 'hsl':\n        if (params.length !== 3) return null;\n        var h = (((parseFloat(params[0]) % 360) + 360) % 360) / 360;  // 0 .. 1\n        // NOTE(deanm): According to the CSS spec s/l should only be\n        // percentages, but we don't bother and let float or percentage.\n        var s = parse_css_float(params[1]);\n        var l = parse_css_float(params[2]);\n        var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n        var m1 = l * 2 - m2;\n        return [clamp_css_byte(css_hue_to_rgb(m1, m2, h+1/3) * 255),\n                clamp_css_byte(css_hue_to_rgb(m1, m2, h) * 255),\n                clamp_css_byte(css_hue_to_rgb(m1, m2, h-1/3) * 255),\n                alpha];\n      default:\n        return null;\n    }\n  }\n\n  return null;\n}\n\ntry { exports.parseCSSColor = parseCSSColor } catch(e) { }\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom.js": {
            "title": "$:/core/modules/utils/dom.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/dom.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static DOM-related utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDetermines whether element 'a' contains element 'b'\nCode thanks to John Resig, http://ejohn.org/blog/comparing-document-position/\n*/\nexports.domContains = function(a,b) {\n\treturn a.contains ?\n\t\ta !== b && a.contains(b) :\n\t\t!!(a.compareDocumentPosition(b) & 16);\n};\n\nexports.removeChildren = function(node) {\n\twhile(node.hasChildNodes()) {\n\t\tnode.removeChild(node.firstChild);\n\t}\n};\n\nexports.hasClass = function(el,className) {\n\treturn el && el.hasAttribute && el.hasAttribute(\"class\") && el.getAttribute(\"class\").split(\" \").indexOf(className) !== -1;\n};\n\nexports.addClass = function(el,className) {\n\tvar c = (el.getAttribute(\"class\") || \"\").split(\" \");\n\tif(c.indexOf(className) === -1) {\n\t\tc.push(className);\n\t\tel.setAttribute(\"class\",c.join(\" \"));\n\t}\n};\n\nexports.removeClass = function(el,className) {\n\tvar c = (el.getAttribute(\"class\") || \"\").split(\" \"),\n\t\tp = c.indexOf(className);\n\tif(p !== -1) {\n\t\tc.splice(p,1);\n\t\tel.setAttribute(\"class\",c.join(\" \"));\n\t}\n};\n\nexports.toggleClass = function(el,className,status) {\n\tif(status === undefined) {\n\t\tstatus = !exports.hasClass(el,className);\n\t}\n\tif(status) {\n\t\texports.addClass(el,className);\n\t} else {\n\t\texports.removeClass(el,className);\n\t}\n};\n\n/*\nGet the first parent element that has scrollbars or use the body as fallback.\n*/\nexports.getScrollContainer = function(el) {\n\tvar doc = el.ownerDocument;\n\twhile(el.parentNode) {\t\n\t\tel = el.parentNode;\n\t\tif(el.scrollTop) {\n\t\t\treturn el;\n\t\t}\n\t}\n\treturn doc.body;\n};\n\n/*\nGet the scroll position of the viewport\nReturns:\n\t{\n\t\tx: horizontal scroll position in pixels,\n\t\ty: vertical scroll position in pixels\n\t}\n*/\nexports.getScrollPosition = function(srcWindow) {\n\tvar scrollWindow = srcWindow || window;\n\tif(\"scrollX\" in scrollWindow) {\n\t\treturn {x: scrollWindow.scrollX, y: scrollWindow.scrollY};\n\t} else {\n\t\treturn {x: scrollWindow.document.documentElement.scrollLeft, y: scrollWindow.document.documentElement.scrollTop};\n\t}\n};\n\n/*\nAdjust the height of a textarea to fit its content, preserving scroll position, and return the height\n*/\nexports.resizeTextAreaToFit = function(domNode,minHeight) {\n\t// Get the scroll container and register the current scroll position\n\tvar container = $tw.utils.getScrollContainer(domNode),\n\t\tscrollTop = container.scrollTop;\n    // Measure the specified minimum height\n\tdomNode.style.height = minHeight;\n\tvar measuredHeight = domNode.offsetHeight || parseInt(minHeight,10);\n\t// Set its height to auto so that it snaps to the correct height\n\tdomNode.style.height = \"auto\";\n\t// Calculate the revised height\n\tvar newHeight = Math.max(domNode.scrollHeight + domNode.offsetHeight - domNode.clientHeight,measuredHeight);\n\t// Only try to change the height if it has changed\n\tif(newHeight !== domNode.offsetHeight) {\n\t\tdomNode.style.height = newHeight + \"px\";\n\t\t// Make sure that the dimensions of the textarea are recalculated\n\t\t$tw.utils.forceLayout(domNode);\n\t\t// Set the container to the position we registered at the beginning\n\t\tcontainer.scrollTop = scrollTop;\n\t}\n\treturn newHeight;\n};\n\n/*\nGets the bounding rectangle of an element in absolute page coordinates\n*/\nexports.getBoundingPageRect = function(element) {\n\tvar scrollPos = $tw.utils.getScrollPosition(element.ownerDocument.defaultView),\n\t\tclientRect = element.getBoundingClientRect();\n\treturn {\n\t\tleft: clientRect.left + scrollPos.x,\n\t\twidth: clientRect.width,\n\t\tright: clientRect.right + scrollPos.x,\n\t\ttop: clientRect.top + scrollPos.y,\n\t\theight: clientRect.height,\n\t\tbottom: clientRect.bottom + scrollPos.y\n\t};\n};\n\n/*\nSaves a named password in the browser\n*/\nexports.savePassword = function(name,password) {\n\tvar done = false;\n\ttry {\n\t\twindow.localStorage.setItem(\"tw5-password-\" + name,password);\n\t\tdone = true;\n\t} catch(e) {\n\t}\n\tif(!done) {\n\t\t$tw.savedPasswords = $tw.savedPasswords || Object.create(null);\n\t\t$tw.savedPasswords[name] = password;\n\t}\n};\n\n/*\nRetrieve a named password from the browser\n*/\nexports.getPassword = function(name) {\n\tvar value;\n\ttry {\n\t\tvalue = window.localStorage.getItem(\"tw5-password-\" + name);\n\t} catch(e) {\n\t}\n\tif(value !== undefined) {\n\t\treturn value;\n\t} else {\n\t\treturn ($tw.savedPasswords || Object.create(null))[name] || \"\";\n\t}\n};\n\n/*\nForce layout of a dom node and its descendents\n*/\nexports.forceLayout = function(element) {\n\tvar dummy = element.offsetWidth;\n};\n\n/*\nPulse an element for debugging purposes\n*/\nexports.pulseElement = function(element) {\n\t// Event handler to remove the class at the end\n\telement.addEventListener($tw.browser.animationEnd,function handler(event) {\n\t\telement.removeEventListener($tw.browser.animationEnd,handler,false);\n\t\t$tw.utils.removeClass(element,\"pulse\");\n\t},false);\n\t// Apply the pulse class\n\t$tw.utils.removeClass(element,\"pulse\");\n\t$tw.utils.forceLayout(element);\n\t$tw.utils.addClass(element,\"pulse\");\n};\n\n/*\nAttach specified event handlers to a DOM node\ndomNode: where to attach the event handlers\nevents: array of event handlers to be added (see below)\nEach entry in the events array is an object with these properties:\nhandlerFunction: optional event handler function\nhandlerObject: optional event handler object\nhandlerMethod: optionally specifies object handler method name (defaults to `handleEvent`)\n*/\nexports.addEventListeners = function(domNode,events) {\n\t$tw.utils.each(events,function(eventInfo) {\n\t\tvar handler;\n\t\tif(eventInfo.handlerFunction) {\n\t\t\thandler = eventInfo.handlerFunction;\n\t\t} else if(eventInfo.handlerObject) {\n\t\t\tif(eventInfo.handlerMethod) {\n\t\t\t\thandler = function(event) {\n\t\t\t\t\teventInfo.handlerObject[eventInfo.handlerMethod].call(eventInfo.handlerObject,event);\n\t\t\t\t};\t\n\t\t\t} else {\n\t\t\t\thandler = eventInfo.handlerObject;\n\t\t\t}\n\t\t}\n\t\tdomNode.addEventListener(eventInfo.name,handler,false);\n\t});\n};\n\n/*\nGet the computed styles applied to an element as an array of strings of individual CSS properties\n*/\nexports.getComputedStyles = function(domNode) {\n\tvar textAreaStyles = window.getComputedStyle(domNode,null),\n\t\tstyleDefs = [],\n\t\tname;\n\tfor(var t=0; t<textAreaStyles.length; t++) {\n\t\tname = textAreaStyles[t];\n\t\tstyleDefs.push(name + \": \" + textAreaStyles.getPropertyValue(name) + \";\");\n\t}\n\treturn styleDefs;\n};\n\n/*\nApply a set of styles passed as an array of strings of individual CSS properties\n*/\nexports.setStyles = function(domNode,styleDefs) {\n\tdomNode.style.cssText = styleDefs.join(\"\");\n};\n\n/*\nCopy the computed styles from a source element to a destination element\n*/\nexports.copyStyles = function(srcDomNode,dstDomNode) {\n\t$tw.utils.setStyles(dstDomNode,$tw.utils.getComputedStyles(srcDomNode));\n};\n\n/*\nCopy plain text to the clipboard on browsers that support it\n*/\nexports.copyToClipboard = function(text,options) {\n\toptions = options || {};\n\tvar textArea = document.createElement(\"textarea\");\n\ttextArea.style.position = \"fixed\";\n\ttextArea.style.top = 0;\n\ttextArea.style.left = 0;\n\ttextArea.style.fontSize = \"12pt\";\n\ttextArea.style.width = \"2em\";\n\ttextArea.style.height = \"2em\";\n\ttextArea.style.padding = 0;\n\ttextArea.style.border = \"none\";\n\ttextArea.style.outline = \"none\";\n\ttextArea.style.boxShadow = \"none\";\n\ttextArea.style.background = \"transparent\";\n\ttextArea.value = text;\n\tdocument.body.appendChild(textArea);\n\ttextArea.select();\n\ttextArea.setSelectionRange(0,text.length);\n\tvar succeeded = false;\n\ttry {\n\t\tsucceeded = document.execCommand(\"copy\");\n\t} catch (err) {\n\t}\n\tif(!options.doNotNotify) {\n\t\t$tw.notifier.display(succeeded ? \"$:/language/Notifications/CopiedToClipboard/Succeeded\" : \"$:/language/Notifications/CopiedToClipboard/Failed\");\n\t}\n\tdocument.body.removeChild(textArea);\n};\n\nexports.getLocationPath = function() {\n\treturn window.location.toString().split(\"#\")[0];\n};\n\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/dragndrop.js": {
            "title": "$:/core/modules/utils/dom/dragndrop.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/dragndrop.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser data transfer utilities, used with the clipboard and drag and drop\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOptions:\n\ndomNode: dom node to make draggable\ndragImageType: \"pill\" or \"dom\"\ndragTiddlerFn: optional function to retrieve the title of tiddler to drag\ndragFilterFn: optional function to retreive the filter defining a list of tiddlers to drag\nwidget: widget to use as the contect for the filter\n*/\nexports.makeDraggable = function(options) {\n\tvar dragImageType = options.dragImageType || \"dom\",\n\t\tdragImage,\n\t\tdomNode = options.domNode;\n\t// Make the dom node draggable (not necessary for anchor tags)\n\tif((domNode.tagName || \"\").toLowerCase() !== \"a\") {\n\t\tdomNode.setAttribute(\"draggable\",\"true\");\t\t\n\t}\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragstart\", handlerFunction: function(event) {\n\t\t\tif(event.dataTransfer === undefined) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Collect the tiddlers being dragged\n\t\t\tvar dragTiddler = options.dragTiddlerFn && options.dragTiddlerFn(),\n\t\t\t\tdragFilter = options.dragFilterFn && options.dragFilterFn(),\n\t\t\t\ttitles = dragTiddler ? [dragTiddler] : [],\n\t\t\t    \tstartActions = options.startActions;\n\t\t\tif(dragFilter) {\n\t\t\t\ttitles.push.apply(titles,options.widget.wiki.filterTiddlers(dragFilter,options.widget));\n\t\t\t}\n\t\t\tvar titleString = $tw.utils.stringifyList(titles);\n\t\t\t// Check that we've something to drag\n\t\t\tif(titles.length > 0 && event.target === domNode) {\n\t\t\t\t// Mark the drag in progress\n\t\t\t\t$tw.dragInProgress = domNode;\n\t\t\t\t// Set the dragging class on the element being dragged\n\t\t\t\t$tw.utils.addClass(event.target,\"tc-dragging\");\n\t\t\t\t// Invoke drag-start actions if given\n\t\t\t\tif(startActions !== undefined) {\n\t\t\t\t\toptions.widget.invokeActionString(startActions,options.widget,event,{actionTiddler: titleString});\n\t\t\t\t}\n\t\t\t\t// Create the drag image elements\n\t\t\t\tdragImage = options.widget.document.createElement(\"div\");\n\t\t\t\tdragImage.className = \"tc-tiddler-dragger\";\n\t\t\t\tvar inner = options.widget.document.createElement(\"div\");\n\t\t\t\tinner.className = \"tc-tiddler-dragger-inner\";\n\t\t\t\tinner.appendChild(options.widget.document.createTextNode(\n\t\t\t\t\ttitles.length === 1 ? \n\t\t\t\t\t\ttitles[0] :\n\t\t\t\t\t\ttitles.length + \" tiddlers\"\n\t\t\t\t));\n\t\t\t\tdragImage.appendChild(inner);\n\t\t\t\toptions.widget.document.body.appendChild(dragImage);\n\t\t\t\t// Set the data transfer properties\n\t\t\t\tvar dataTransfer = event.dataTransfer;\n\t\t\t\t// Set up the image\n\t\t\t\tdataTransfer.effectAllowed = \"all\";\n\t\t\t\tif(dataTransfer.setDragImage) {\n\t\t\t\t\tif(dragImageType === \"pill\") {\n\t\t\t\t\t\tdataTransfer.setDragImage(dragImage.firstChild,-16,-16);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar r = domNode.getBoundingClientRect();\n\t\t\t\t\t\tdataTransfer.setDragImage(domNode,event.clientX-r.left,event.clientY-r.top);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Set up the data transfer\n\t\t\t\tif(dataTransfer.clearData) {\n\t\t\t\t\tdataTransfer.clearData();\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tvar jsonData = [];\n\t\t\t\tif(titles.length > 1) {\n\t\t\t\t\ttitles.forEach(function(title) {\n\t\t\t\t\t\tjsonData.push(options.widget.wiki.getTiddlerAsJson(title));\n\t\t\t\t\t});\n\t\t\t\t\tjsonData = \"[\" + jsonData.join(\",\") + \"]\";\n\t\t\t\t} else {\n\t\t\t\t\tjsonData = options.widget.wiki.getTiddlerAsJson(titles[0]);\n\t\t\t\t}\n\t\t\t\t// IE doesn't like these content types\n\t\t\t\tif(!$tw.browser.isIE) {\n\t\t\t\t\tdataTransfer.setData(\"text/vnd.tiddler\",jsonData);\n\t\t\t\t\tdataTransfer.setData(\"text/plain\",titleString);\n\t\t\t\t\tdataTransfer.setData(\"text/x-moz-url\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\t}\n\t\t\t\tdataTransfer.setData(\"URL\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\tdataTransfer.setData(\"Text\",titleString);\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t\treturn false;\n\t\t}},\n\t\t{name: \"dragend\", handlerFunction: function(event) {\n\t\t\tif(event.target === domNode) {\n\t\t\t\t// Collect the tiddlers being dragged\n\t\t\t\tvar dragTiddler = options.dragTiddlerFn && options.dragTiddlerFn(),\n\t\t\t\t\tdragFilter = options.dragFilterFn && options.dragFilterFn(),\n\t\t\t\t\ttitles = dragTiddler ? [dragTiddler] : [],\n\t\t\t    \t\tendActions = options.endActions;\n\t\t\t\tif(dragFilter) {\n\t\t\t\t\ttitles.push.apply(titles,options.widget.wiki.filterTiddlers(dragFilter,options.widget));\n\t\t\t\t}\n\t\t\t\tvar titleString = $tw.utils.stringifyList(titles);\n\t\t\t\t$tw.dragInProgress = null;\n\t\t\t\t// Invoke drag-end actions if given\n\t\t\t\tif(endActions !== undefined) {\n\t\t\t\t\toptions.widget.invokeActionString(endActions,options.widget,event,{actionTiddler: titleString});\n\t\t\t\t}\n\t\t\t\t// Remove the dragging class on the element being dragged\n\t\t\t\t$tw.utils.removeClass(event.target,\"tc-dragging\");\n\t\t\t\t// Delete the drag image element\n\t\t\t\tif(dragImage) {\n\t\t\t\t\tdragImage.parentNode.removeChild(dragImage);\n\t\t\t\t\tdragImage = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}}\n\t]);\n};\n\nexports.importDataTransfer = function(dataTransfer,fallbackTitle,callback) {\n\t// Try each provided data type in turn\n\tif($tw.log.IMPORT) {\n\t\tconsole.log(\"Available data types:\");\n\t\tfor(var type=0; type<dataTransfer.types.length; type++) {\n\t\t\tconsole.log(\"type\",dataTransfer.types[type],dataTransfer.getData(dataTransfer.types[type]))\n\t\t}\n\t}\n\tfor(var t=0; t<importDataTypes.length; t++) {\n\t\tif(!$tw.browser.isIE || importDataTypes[t].IECompatible) {\n\t\t\t// Get the data\n\t\t\tvar dataType = importDataTypes[t];\n\t\t\t\tvar data = dataTransfer.getData(dataType.type);\n\t\t\t// Import the tiddlers in the data\n\t\t\tif(data !== \"\" && data !== null) {\n\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\tconsole.log(\"Importing data type '\" + dataType.type + \"', data: '\" + data + \"'\")\n\t\t\t\t}\n\t\t\t\tvar tiddlerFields = dataType.toTiddlerFieldsArray(data,fallbackTitle);\n\t\t\t\tcallback(tiddlerFields);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar importDataTypes = [\n\t{type: \"text/vnd.tiddler\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn parseJSONTiddlers(data,fallbackTitle);\n\t}},\n\t{type: \"URL\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/x-moz-url\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/html\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/plain\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"Text\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/uri-list\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}}\n];\n\nfunction parseJSONTiddlers(json,fallbackTitle) {\n\tvar data = JSON.parse(json);\n\tif(!$tw.utils.isArray(data)) {\n\t\tdata = [data];\n\t}\n\tdata.forEach(function(fields) {\n\t\tfields.title = fields.title || fallbackTitle;\n\t});\n\treturn data;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/http.js": {
            "title": "$:/core/modules/utils/dom/http.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/http.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser HTTP support\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nA quick and dirty HTTP function; to be refactored later. Options are:\n\turl: URL to retrieve\n\theaders: hashmap of headers to send\n\ttype: GET, PUT, POST etc\n\tcallback: function invoked with (err,data,xhr)\n\treturnProp: string name of the property to return as first argument of callback\n*/\nexports.httpRequest = function(options) {\n\tvar type = options.type || \"GET\",\n\t\turl = options.url,\n\t\theaders = options.headers || {accept: \"application/json\"},\n\t\thasHeader = function(targetHeader) {\n\t\t\ttargetHeader = targetHeader.toLowerCase();\n\t\t\tvar result = false;\n\t\t\t$tw.utils.each(headers,function(header,headerTitle,object) {\n\t\t\t\tif(headerTitle.toLowerCase() === targetHeader) {\n\t\t\t\t\tresult = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn result;\n\t\t},\n\t\treturnProp = options.returnProp || \"responseText\",\n\t\trequest = new XMLHttpRequest(),\n\t\tdata = \"\",\n\t\tf,results;\n\t// Massage the data hashmap into a string\n\tif(options.data) {\n\t\tif(typeof options.data === \"string\") { // Already a string\n\t\t\tdata = options.data;\n\t\t} else { // A hashmap of strings\n\t\t\tresults = [];\n\t\t\t$tw.utils.each(options.data,function(dataItem,dataItemTitle) {\n\t\t\t\tresults.push(dataItemTitle + \"=\" + encodeURIComponent(dataItem));\n\t\t\t});\n\t\t\tif(type === \"GET\" || type === \"HEAD\") {\n\t\t\t\turl += \"?\" + results.join(\"&\");\n\t\t\t} else {\n\t\t\t\tdata = results.join(\"&\");\n\t\t\t}\n\t\t}\n\t}\n\t// Set up the state change handler\n\trequest.onreadystatechange = function() {\n\t\tif(this.readyState === 4) {\n\t\t\tif(this.status === 200 || this.status === 201 || this.status === 204) {\n\t\t\t\t// Success!\n\t\t\t\toptions.callback(null,this[returnProp],this);\n\t\t\t\treturn;\n\t\t\t}\n\t\t// Something went wrong\n\t\toptions.callback($tw.language.getString(\"Error/XMLHttpRequest\") + \": \" + this.status,null,this);\n\t\t}\n\t};\n\t// Make the request\n\trequest.open(type,url,true);\n\tif(headers) {\n\t\t$tw.utils.each(headers,function(header,headerTitle,object) {\n\t\t\trequest.setRequestHeader(headerTitle,header);\n\t\t});\n\t}\n\tif(data && !hasHeader(\"Content-Type\")) {\n\t\trequest.setRequestHeader(\"Content-Type\",\"application/x-www-form-urlencoded; charset=UTF-8\");\n\t}\n\tif(!hasHeader(\"X-Requested-With\")) {\n\t\trequest.setRequestHeader(\"X-Requested-With\",\"TiddlyWiki\");\n\t}\n\ttry {\n\t\trequest.send(data);\n\t} catch(e) {\n\t\toptions.callback(e,null,this);\n\t}\n\treturn request;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/keyboard.js": {
            "title": "$:/core/modules/utils/dom/keyboard.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/keyboard.js\ntype: application/javascript\nmodule-type: utils\n\nKeyboard utilities; now deprecated. Instead, use $tw.keyboardManager\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n[\"parseKeyDescriptor\",\"checkKeyDescriptor\"].forEach(function(method) {\n\texports[method] = function() {\n\t\tif($tw.keyboardManager) {\n\t\t\treturn $tw.keyboardManager[method].apply($tw.keyboardManager,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t};\n});\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/modal.js": {
            "title": "$:/core/modules/utils/dom/modal.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/modal.js\ntype: application/javascript\nmodule-type: utils\n\nModal message mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\nvar navigator = require(\"$:/core/modules/widgets/navigator.js\");\n\nvar Modal = function(wiki) {\n\tthis.wiki = wiki;\n\tthis.modalCount = 0;\n};\n\n/*\nDisplay a modal dialogue\n\ttitle: Title of tiddler to display\n\toptions: see below\nOptions include:\n\tdownloadLink: Text of a big download link to include\n*/\nModal.prototype.display = function(title,options) {\n\toptions = options || {};\n\tthis.srcDocument = options.variables && (options.variables.rootwindow === \"true\" ||\n\t\t\t\toptions.variables.rootwindow === \"yes\") ? document :\n\t\t\t\t(options.event.event && options.event.event.target ? options.event.event.target.ownerDocument : document);\n\tthis.srcWindow = this.srcDocument.defaultView;\n\tvar self = this,\n\t\trefreshHandler,\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\ttiddler = this.wiki.getTiddler(title);\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Create the variables\n\tvar variables = $tw.utils.extend({\n\t\t\tcurrentTiddler: title,\n\t\t\t\"tv-story-list\": (options.event && options.event.widget ? options.event.widget.getVariable(\"tv-story-list\") : \"\"),\n\t\t\t\"tv-history-list\": (options.event && options.event.widget ? options.event.widget.getVariable(\"tv-history-list\") : \"\")\n\t\t},options.variables);\n\n\t// Create the wrapper divs\n\tvar wrapper = this.srcDocument.createElement(\"div\"),\n\t\tmodalBackdrop = this.srcDocument.createElement(\"div\"),\n\t\tmodalWrapper = this.srcDocument.createElement(\"div\"),\n\t\tmodalHeader = this.srcDocument.createElement(\"div\"),\n\t\theaderTitle = this.srcDocument.createElement(\"h3\"),\n\t\tmodalBody = this.srcDocument.createElement(\"div\"),\n\t\tmodalLink = this.srcDocument.createElement(\"a\"),\n\t\tmodalFooter = this.srcDocument.createElement(\"div\"),\n\t\tmodalFooterHelp = this.srcDocument.createElement(\"span\"),\n\t\tmodalFooterButtons = this.srcDocument.createElement(\"span\");\n\t// Up the modal count and adjust the body class\n\tthis.modalCount++;\n\tthis.adjustPageClass();\n\t// Add classes\n\t$tw.utils.addClass(wrapper,\"tc-modal-wrapper\");\n\tif(tiddler.fields && tiddler.fields.class) {\n\t\t$tw.utils.addClass(wrapper,tiddler.fields.class);\n\t}\n\t$tw.utils.addClass(modalBackdrop,\"tc-modal-backdrop\");\n\t$tw.utils.addClass(modalWrapper,\"tc-modal\");\n\t$tw.utils.addClass(modalHeader,\"tc-modal-header\");\n\t$tw.utils.addClass(modalBody,\"tc-modal-body\");\n\t$tw.utils.addClass(modalFooter,\"tc-modal-footer\");\n\t// Join them together\n\twrapper.appendChild(modalBackdrop);\n\twrapper.appendChild(modalWrapper);\n\tmodalHeader.appendChild(headerTitle);\n\tmodalWrapper.appendChild(modalHeader);\n\tmodalWrapper.appendChild(modalBody);\n\tmodalFooter.appendChild(modalFooterHelp);\n\tmodalFooter.appendChild(modalFooterButtons);\n\tmodalWrapper.appendChild(modalFooter);\n\tvar navigatorTree = {\n\t\t\"type\": \"navigator\",\n\t\t\"attributes\": {\n\t\t\t\"story\": {\n\t\t\t\t\"name\": \"story\",\n\t\t\t\t\"type\": \"string\",\n\t\t\t\t\"value\": variables[\"tv-story-list\"]\n\t\t\t},\n\t\t\t\"history\": {\n\t\t\t\t\"name\": \"history\",\n\t\t\t\t\"type\": \"string\",\n\t\t\t\t\"value\": variables[\"tv-history-list\"]\n\t\t\t}\n\t\t},\n\t\t\"tag\": \"$navigator\",\n\t\t\"isBlock\": true,\n\t\t\"children\": []\n\t};\n\tvar navigatorWidgetNode = new navigator.navigator(navigatorTree, {\n\t\twiki: this.wiki,\n\t\tdocument : this.srcDocument,\n\t\tparentWidget: $tw.rootWidget\n\t});\n\tnavigatorWidgetNode.render(modalBody,null);\n\t\n\t// Render the title of the message\n\tvar headerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"subtitle\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\tattributes: {\n\t\t\t\ttext: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title\n\t\t}}}],\n\t\tparentWidget: navigatorWidgetNode,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\theaderWidgetNode.render(headerTitle,null);\n\t// Render the body of the message\n\tvar bodyWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: navigatorWidgetNode,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\n\tbodyWidgetNode.render(modalBody,null);\n\t// Setup the link if present\n\tif(options.downloadLink) {\n\t\tmodalLink.href = options.downloadLink;\n\t\tmodalLink.appendChild(this.srcDocument.createTextNode(\"Right-click to save changes\"));\n\t\tmodalBody.appendChild(modalLink);\n\t}\n\t// Render the footer of the message\n\tif(tiddler.fields && tiddler.fields.help) {\n\t\tvar link = this.srcDocument.createElement(\"a\");\n\t\tlink.setAttribute(\"href\",tiddler.fields.help);\n\t\tlink.setAttribute(\"target\",\"_blank\");\n\t\tlink.setAttribute(\"rel\",\"noopener noreferrer\");\n\t\tlink.appendChild(this.srcDocument.createTextNode(\"Help\"));\n\t\tmodalFooterHelp.appendChild(link);\n\t\tmodalFooterHelp.style.float = \"left\";\n\t}\n\tvar footerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"footer\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"button\",\n\t\t\tattributes: {\n\t\t\t\tmessage: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: \"tm-close-tiddler\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\tattributes: {\n\t\t\t\t\ttext: {\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\tvalue: $tw.language.getString(\"Buttons/Close/Caption\")\n\t\t\t}}}\n\t\t]}],\n\t\tparentWidget: navigatorWidgetNode,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\tfooterWidgetNode.render(modalFooterButtons,null);\n\t// Set up the refresh handler\n\trefreshHandler = function(changes) {\n\t\theaderWidgetNode.refresh(changes,modalHeader,null);\n\t\tbodyWidgetNode.refresh(changes,modalBody,null);\n\t\tfooterWidgetNode.refresh(changes,modalFooterButtons,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Add the close event handler\n\tvar closeHandler = function(event) {\n\t\t// Remove our refresh handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Decrease the modal count and adjust the body class\n\t\tself.modalCount--;\n\t\tself.adjustPageClass();\n\t\t// Force layout and animate the modal message away\n\t\t$tw.utils.forceLayout(modalBackdrop);\n\t\t$tw.utils.forceLayout(modalWrapper);\n\t\t$tw.utils.setStyle(modalBackdrop,[\n\t\t\t{opacity: \"0\"}\n\t\t]);\n\t\t$tw.utils.setStyle(modalWrapper,[\n\t\t\t{transform: \"translateY(\" + self.srcWindow.innerHeight + \"px)\"}\n\t\t]);\n\t\t// Set up an event for the transition end\n\t\tself.srcWindow.setTimeout(function() {\n\t\t\tif(wrapper.parentNode) {\n\t\t\t\t// Remove the modal message from the DOM\n\t\t\t\tself.srcDocument.body.removeChild(wrapper);\n\t\t\t}\n\t\t},duration);\n\t\t// Don't let anyone else handle the tm-close-tiddler message\n\t\treturn false;\n\t};\n\theaderWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tbodyWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tfooterWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\t// Set the initial styles for the message\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-this.srcWindow.innerHeight) + \"px)\"}\n\t]);\n\t// Put the message into the document\n\tthis.srcDocument.body.appendChild(wrapper);\n\t// Set up animation for the styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{transition: \"opacity \" + duration + \"ms ease-out\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(modalBackdrop);\n\t$tw.utils.forceLayout(modalWrapper);\n\t// Set final animated styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0.7\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n};\n\nModal.prototype.adjustPageClass = function() {\n\tvar windowContainer = $tw.pageContainer ? ($tw.pageContainer === this.srcDocument.body.firstChild ? $tw.pageContainer : this.srcDocument.body.firstChild) : null;\n\tif(windowContainer) {\n\t\t$tw.utils.toggleClass(windowContainer,\"tc-modal-displayed\",this.modalCount > 0);\n\t}\n};\n\nexports.Modal = Modal;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/notifier.js": {
            "title": "$:/core/modules/utils/dom/notifier.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/notifier.js\ntype: application/javascript\nmodule-type: utils\n\nNotifier mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Notifier = function(wiki) {\n\tthis.wiki = wiki;\n};\n\n/*\nDisplay a notification\n\ttitle: Title of tiddler containing the notification text\n\toptions: see below\nOptions include:\n*/\nNotifier.prototype.display = function(title,options) {\n\toptions = options || {};\n\t// Create the wrapper divs\n\tvar self = this,\n\t\tnotification = document.createElement(\"div\"),\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\trefreshHandler;\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Add classes\n\t$tw.utils.addClass(notification,\"tc-notification\");\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Render the body of the notification\n\tvar widgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true});\n\twidgetNode.render(notification,null);\n\trefreshHandler = function(changes) {\n\t\twidgetNode.refresh(changes,notification,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Set the initial styles for the notification\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"0\"},\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-window.innerHeight) + \"px)\"},\n\t\t{transition: \"opacity \" + duration + \"ms ease-out, \" + $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Add the notification to the DOM\n\tdocument.body.appendChild(notification);\n\t// Force layout\n\t$tw.utils.forceLayout(notification);\n\t// Set final animated styles\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n\t// Set a timer to remove the notification\n\twindow.setTimeout(function() {\n\t\t// Remove our change event handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Force layout and animate the notification away\n\t\t$tw.utils.forceLayout(notification);\n\t\t$tw.utils.setStyle(notification,[\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transform: \"translateX(\" + (notification.offsetWidth) + \"px)\"}\n\t\t]);\n\t\t// Remove the modal message from the DOM once the transition ends\n\t\tsetTimeout(function() {\n\t\t\tif(notification.parentNode) {\n\t\t\t\tdocument.body.removeChild(notification);\n\t\t\t}\n\t\t},duration);\n\t},$tw.config.preferences.notificationDuration);\n};\n\nexports.Notifier = Notifier;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/popup.js": {
            "title": "$:/core/modules/utils/dom/popup.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/popup.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Popup object prototype that manages popups in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreates a Popup object with these options:\n\trootElement: the DOM element to which the popup zapper should be attached\n*/\nvar Popup = function(options) {\n\toptions = options || {};\n\tthis.rootElement = options.rootElement || document.documentElement;\n\tthis.popups = []; // Array of {title:,wiki:,domNode:} objects\n};\n\n/*\nTrigger a popup open or closed. Parameters are in a hashmap:\n\ttitle: title of the tiddler where the popup details are stored\n\tdomNode: dom node to which the popup will be positioned (one of domNode or domNodeRect is required)\n\tdomNodeRect: rectangle to which the popup will be positioned\n\twiki: wiki\n\tforce: if specified, forces the popup state to true or false (instead of toggling it)\n\tfloating: if true, skips registering the popup, meaning that it will need manually clearing\n*/\nPopup.prototype.triggerPopup = function(options) {\n\t// Check if this popup is already active\n\tvar index = this.findPopup(options.title);\n\t// Compute the new state\n\tvar state = index === -1;\n\tif(options.force !== undefined) {\n\t\tstate = options.force;\n\t}\n\t// Show or cancel the popup according to the new state\n\tif(state) {\n\t\tthis.show(options);\n\t} else {\n\t\tthis.cancel(index);\n\t}\n};\n\nPopup.prototype.findPopup = function(title) {\n\tvar index = -1;\n\tfor(var t=0; t<this.popups.length; t++) {\n\t\tif(this.popups[t].title === title) {\n\t\t\tindex = t;\n\t\t}\n\t}\n\treturn index;\n};\n\nPopup.prototype.handleEvent = function(event) {\n\tif(event.type === \"click\") {\n\t\t// Find out what was clicked on\n\t\tvar info = this.popupInfo(event.target),\n\t\t\tcancelLevel = info.popupLevel - 1;\n\t\t// Don't remove the level that was clicked on if we clicked on a handle\n\t\tif(info.isHandle) {\n\t\t\tcancelLevel++;\n\t\t}\n\t\t// Cancel\n\t\tthis.cancel(cancelLevel);\n\t}\n};\n\n/*\nFind the popup level containing a DOM node. Returns:\npopupLevel: count of the number of nested popups containing the specified element\nisHandle: true if the specified element is within a popup handle\n*/\nPopup.prototype.popupInfo = function(domNode) {\n\tvar isHandle = false,\n\t\tpopupCount = 0,\n\t\tnode = domNode;\n\t// First check ancestors to see if we're within a popup handle\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup-handle\")) {\n\t\t\tisHandle = true;\n\t\t\tpopupCount++;\n\t\t}\n\t\tif($tw.utils.hasClass(node,\"tc-popup-keep\")) {\n\t\t\tisHandle = true;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\t// Then count the number of ancestor popups\n\tnode = domNode;\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup\")) {\n\t\t\tpopupCount++;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\tvar info = {\n\t\tpopupLevel: popupCount,\n\t\tisHandle: isHandle\n\t};\n\treturn info;\n};\n\n/*\nDisplay a popup by adding it to the stack\n*/\nPopup.prototype.show = function(options) {\n\t// Find out what was clicked on\n\tvar info = this.popupInfo(options.domNode);\n\t// Cancel any higher level popups\n\tthis.cancel(info.popupLevel);\n\n\t// Store the popup details if not already there\n\tif(!options.floating && this.findPopup(options.title) === -1) {\n\t\tthis.popups.push({\n\t\t\ttitle: options.title,\n\t\t\twiki: options.wiki,\n\t\t\tdomNode: options.domNode,\n\t\t\tnoStateReference: options.noStateReference\n\t\t});\n\t}\n\t// Set the state tiddler\n\tvar rect;\n\tif(options.domNodeRect) {\n\t\trect = options.domNodeRect;\n\t} else {\n\t\trect = {\n\t\t\tleft: options.domNode.offsetLeft,\n\t\t\ttop: options.domNode.offsetTop,\n\t\t\twidth: options.domNode.offsetWidth,\n\t\t\theight: options.domNode.offsetHeight\n\t\t};\n\t}\n\tvar popupRect = \"(\" + rect.left + \",\" + rect.top + \",\" + \n\t\t\t\trect.width + \",\" + rect.height + \")\";\n\tif(options.noStateReference) {\n\t\toptions.wiki.setText(options.title,\"text\",undefined,popupRect);\n\t} else {\n\t\toptions.wiki.setTextReference(options.title,popupRect);\n\t}\n\t// Add the click handler if we have any popups\n\tif(this.popups.length > 0) {\n\t\tthis.rootElement.addEventListener(\"click\",this,true);\t\t\n\t}\n};\n\n/*\nCancel all popups at or above a specified level or DOM node\nlevel: popup level to cancel (0 cancels all popups)\n*/\nPopup.prototype.cancel = function(level) {\n\tvar numPopups = this.popups.length;\n\tlevel = Math.max(0,Math.min(level,numPopups));\n\tfor(var t=level; t<numPopups; t++) {\n\t\tvar popup = this.popups.pop();\n\t\tif(popup.title) {\n\t\t\tif(popup.noStateReference) {\n\t\t\t\tpopup.wiki.deleteTiddler(popup.title);\n\t\t\t} else {\n\t\t\t\tpopup.wiki.deleteTiddler($tw.utils.parseTextReference(popup.title).title);\n        \t\t}\n\t\t}\n\t}\n\tif(this.popups.length === 0) {\n\t\tthis.rootElement.removeEventListener(\"click\",this,false);\n\t}\n};\n\n/*\nReturns true if the specified title and text identifies an active popup\n*/\nPopup.prototype.readPopupState = function(text) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/;\n\treturn popupLocationRegExp.test(text);\n};\n\nexports.Popup = Popup;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/scroller.js": {
            "title": "$:/core/modules/utils/dom/scroller.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/scroller.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Scroller object prototype that manages scrolling in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nEvent handler for when the `tm-scroll` event hits the document body\n*/\nvar PageScroller = function() {\n\tthis.idRequestFrame = null;\n\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\twindow.webkitRequestAnimationFrame ||\n\t\twindow.mozRequestAnimationFrame ||\n\t\tfunction(callback) {\n\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t};\n\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\twindow.webkitCancelAnimationFrame ||\n\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\twindow.mozCancelAnimationFrame ||\n\t\twindow.mozCancelRequestAnimationFrame ||\n\t\tfunction(id) {\n\t\t\twindow.clearTimeout(id);\n\t\t};\n};\n\nPageScroller.prototype.isScrolling = function() {\n\treturn this.idRequestFrame !== null;\n}\n\nPageScroller.prototype.cancelScroll = function(srcWindow) {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(srcWindow,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle an event\n*/\nPageScroller.prototype.handleEvent = function(event) {\n\tif(event.type === \"tm-scroll\") {\n\t\tif(event.paramObject && event.paramObject.selector) {\n\t\t\tthis.scrollSelectorIntoView(null,event.paramObject.selector);\n\t\t} else {\n\t\t\tthis.scrollIntoView(event.target);\t\t\t\n\t\t}\n\t\treturn false; // Event was handled\n\t}\n\treturn true;\n};\n\n/*\nHandle a scroll event hitting the page document\n*/\nPageScroller.prototype.scrollIntoView = function(element,callback) {\n\tvar self = this,\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t    srcWindow = element ? element.ownerDocument.defaultView : window;\n\t// Now get ready to scroll the body\n\tthis.cancelScroll(srcWindow);\n\tthis.startTime = Date.now();\n\t// Get the height of any position:fixed toolbars\n\tvar toolbar = srcWindow.document.querySelector(\".tc-adjust-top-of-scroll\"),\n\t\toffset = 0;\n\tif(toolbar) {\n\t\toffset = toolbar.offsetHeight;\n\t}\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar getBounds = function() {\n\t\t\tvar clientBounds = typeof callback === 'function' ? callback() : element.getBoundingClientRect(),\n\t\t\t\tscrollPosition = $tw.utils.getScrollPosition(srcWindow);\n\t\t\treturn {\n\t\t\t\tleft: clientBounds.left + scrollPosition.x,\n\t\t\t\ttop: clientBounds.top + scrollPosition.y - offset,\n\t\t\t\twidth: clientBounds.width,\n\t\t\t\theight: clientBounds.height\n\t\t\t};\n\t\t},\n\t\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\t\t// targetPos/targetSize - position and size of the target element\n\t\t// currentPos/currentSize - position and size of the current scroll viewport\n\t\t// returns: new position of the scroll viewport\n\t\tgetEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\tvar newPos = targetPos;\n\t\t\t// If we are scrolling within 50 pixels of the top/left then snap to zero\n\t\t\tif(newPos < 50) {\n\t\t\t\tnewPos = 0;\n\t\t\t}\n\t\t\treturn newPos;\n\t\t},\n\t\tdrawFrame = function drawFrame() {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll(srcWindow);\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\tvar scrollPosition = $tw.utils.getScrollPosition(srcWindow),\n\t\t\t\tbounds = getBounds(),\n\t\t\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,srcWindow.innerWidth),\n\t\t\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,srcWindow.innerHeight);\n\t\t\tsrcWindow.scrollTo(scrollPosition.x + (endX - scrollPosition.x) * t,scrollPosition.y + (endY - scrollPosition.y) * t);\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(srcWindow,drawFrame);\n\t\t\t}\n\t\t};\n\tdrawFrame();\n};\n\nPageScroller.prototype.scrollSelectorIntoView = function(baseElement,selector,callback) {\n\tbaseElement = baseElement || document.body;\n\tvar element = baseElement.querySelector(selector);\n\tif(element) {\n\t\tthis.scrollIntoView(element,callback);\t\t\n\t}\n};\n\nexports.PageScroller = PageScroller;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/edition-info.js": {
            "title": "$:/core/modules/utils/edition-info.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/edition-info.js\ntype: application/javascript\nmodule-type: utils-node\n\nInformation about the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\nvar editionInfo;\n\nexports.getEditionInfo = function() {\n\tif(!editionInfo) {\n\t\t// Enumerate the edition paths\n\t\tvar editionPaths = $tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar);\n\t\teditionInfo = {};\n\t\tfor(var editionIndex=0; editionIndex<editionPaths.length; editionIndex++) {\n\t\t\tvar editionPath = editionPaths[editionIndex];\n\t\t\t// Enumerate the folders\n\t\t\tvar entries = fs.readdirSync(editionPath);\n\t\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\t\tvar entry = entries[entryIndex];\n\t\t\t\t// Check if directories have a valid tiddlywiki.info\n\t\t\t\tif(!editionInfo[entry] && $tw.utils.isDirectory(path.resolve(editionPath,entry))) {\n\t\t\t\t\tvar info;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tinfo = JSON.parse(fs.readFileSync(path.resolve(editionPath,entry,\"tiddlywiki.info\"),\"utf8\"));\n\t\t\t\t\t} catch(ex) {\n\t\t\t\t\t}\n\t\t\t\t\tif(info) {\n\t\t\t\t\t\teditionInfo[entry] = info;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn editionInfo;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils-node"
        },
        "$:/core/modules/utils/fakedom.js": {
            "title": "$:/core/modules/utils/fakedom.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/fakedom.js\ntype: application/javascript\nmodule-type: global\n\nA barebones implementation of DOM interfaces needed by the rendering mechanism.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Sequence number used to enable us to track objects for testing\nvar sequenceNumber = null;\n\nvar bumpSequenceNumber = function(object) {\n\tif(sequenceNumber !== null) {\n\t\tobject.sequenceNumber = sequenceNumber++;\n\t}\n};\n\nvar TW_Node = function (){\n\tthrow TypeError(\"Illegal constructor\");\n};\n\nObject.defineProperty(TW_Node.prototype, 'ELEMENT_NODE', {\n\tget: function() {\n\t\treturn 1;\n\t}\n});\n\nObject.defineProperty(TW_Node.prototype, 'TEXT_NODE', {\n\tget: function() {\n\t\treturn 3;\n\t}\n});\n\nvar TW_TextNode = function(text) {\n\tbumpSequenceNumber(this);\n\tthis.textContent = text + \"\";\n};\n\nTW_TextNode.prototype = Object.create(TW_Node.prototype);\n\nObject.defineProperty(TW_TextNode.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn this.TEXT_NODE;\n\t}\n});\n\nObject.defineProperty(TW_TextNode.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\treturn this.textContent.replace(/(\\r?\\n)/g,\"\");\n\t}\n});\n\nvar TW_Element = function(tag,namespace) {\n\tbumpSequenceNumber(this);\n\tthis.isTiddlyWikiFakeDom = true;\n\tthis.tag = tag;\n\tthis.attributes = {};\n\tthis.isRaw = false;\n\tthis.children = [];\n\tthis._style = {};\n\tthis.namespaceURI = namespace || \"http://www.w3.org/1999/xhtml\";\n};\n\nTW_Element.prototype = Object.create(TW_Node.prototype);\n\nObject.defineProperty(TW_Element.prototype, \"style\", {\n\tget: function() {\n\t\treturn this._style;\n\t},\n\tset: function(str) {\n\t\tvar self = this;\n\t\tstr = str || \"\";\n\t\t$tw.utils.each(str.split(\";\"),function(declaration) {\n\t\t\tvar parts = declaration.split(\":\"),\n\t\t\t\tname = $tw.utils.trim(parts[0]),\n\t\t\t\tvalue = $tw.utils.trim(parts[1]);\n\t\t\tif(name && value) {\n\t\t\t\tself._style[$tw.utils.convertStyleNameToPropertyName(name)] = value;\n\t\t\t}\n\t\t});\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn this.ELEMENT_NODE;\n\t}\n});\n\nTW_Element.prototype.getAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot getAttribute on a raw TW_Element\";\n\t}\n\treturn this.attributes[name];\n};\n\nTW_Element.prototype.setAttribute = function(name,value) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot setAttribute on a raw TW_Element\";\n\t}\n\tthis.attributes[name] = value + \"\";\n};\n\nTW_Element.prototype.setAttributeNS = function(namespace,name,value) {\n\tthis.setAttribute(name,value);\n};\n\nTW_Element.prototype.removeAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot removeAttribute on a raw TW_Element\";\n\t}\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\tdelete this.attributes[name];\n\t}\n};\n\nTW_Element.prototype.appendChild = function(node) {\n\tthis.children.push(node);\n\tnode.parentNode = this;\n};\n\nTW_Element.prototype.insertBefore = function(node,nextSibling) {\n\tif(nextSibling) {\n\t\tvar p = this.children.indexOf(nextSibling);\n\t\tif(p !== -1) {\n\t\t\tthis.children.splice(p,0,node);\n\t\t\tnode.parentNode = this;\n\t\t} else {\n\t\t\tthis.appendChild(node);\n\t\t}\n\t} else {\n\t\tthis.appendChild(node);\n\t}\n};\n\nTW_Element.prototype.removeChild = function(node) {\n\tvar p = this.children.indexOf(node);\n\tif(p !== -1) {\n\t\tthis.children.splice(p,1);\n\t}\n};\n\nTW_Element.prototype.hasChildNodes = function() {\n\treturn !!this.children.length;\n};\n\nObject.defineProperty(TW_Element.prototype, \"childNodes\", {\n\tget: function() {\n\t\treturn this.children;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"firstChild\", {\n\tget: function() {\n\t\treturn this.children[0];\n\t}\n});\n\nTW_Element.prototype.addEventListener = function(type,listener,useCapture) {\n\t// Do nothing\n};\n\nObject.defineProperty(TW_Element.prototype, \"tagName\", {\n\tget: function() {\n\t\treturn this.tag || \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"className\", {\n\tget: function() {\n\t\treturn this.attributes[\"class\"] || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes[\"class\"] = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"value\", {\n\tget: function() {\n\t\treturn this.attributes.value || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes.value = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"outerHTML\", {\n\tget: function() {\n\t\tvar output = [],attr,a,v;\n\t\toutput.push(\"<\",this.tag);\n\t\tif(this.attributes) {\n\t\t\tattr = [];\n\t\t\tfor(a in this.attributes) {\n\t\t\t\tattr.push(a);\n\t\t\t}\n\t\t\tattr.sort();\n\t\t\tfor(a=0; a<attr.length; a++) {\n\t\t\t\tv = this.attributes[attr[a]];\n\t\t\t\tif(v !== undefined) {\n\t\t\t\t\toutput.push(\" \",attr[a],\"=\\\"\",$tw.utils.htmlEncode(v),\"\\\"\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(this._style) {\n\t\t\tvar style = [];\n\t\t\tfor(var s in this._style) {\n\t\t\t\tstyle.push($tw.utils.convertPropertyNameToStyleName(s) + \":\" + this._style[s] + \";\");\n\t\t\t}\n\t\t\tif(style.length > 0) {\n\t\t\t\toutput.push(\" style=\\\"\",style.join(\"\"),\"\\\"\");\n\t\t\t}\n\t\t}\n\t\toutput.push(\">\");\n\t\tif($tw.config.htmlVoidElements.indexOf(this.tag) === -1) {\n\t\t\toutput.push(this.innerHTML);\n\t\t\toutput.push(\"</\",this.tag,\">\");\n\t\t}\n\t\treturn output.join(\"\");\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"innerHTML\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn this.rawHTML;\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tif(node instanceof TW_Element) {\n\t\t\t\t\tb.push(node.outerHTML);\n\t\t\t\t} else if(node instanceof TW_TextNode) {\n\t\t\t\t\tb.push($tw.utils.htmlEncode(node.textContent));\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.isRaw = true;\n\t\tthis.rawHTML = value;\n\t\tthis.rawTextContent = null;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textInnerHTML\", {\n\tset: function(value) {\n\t\tif(this.isRaw) {\n\t\t\tthis.rawTextContent = value;\n\t\t} else {\n\t\t\tthrow \"Cannot set textInnerHTML of a non-raw TW_Element\";\n\t\t}\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\tif(this.rawTextContent === null) {\n\t\t\t\treturn \"\";\n\t\t\t} else {\n\t\t\t\treturn this.rawTextContent;\n\t\t\t}\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.textContent);\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.children = [new TW_TextNode(value)];\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn \"\";\n\t\t} else {\n\t\t\tvar b = [],\n\t\t\t\tisBlock = $tw.config.htmlBlockElements.indexOf(this.tag) !== -1;\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\tif(this.tag === \"li\") {\n\t\t\t\tb.push(\"* \");\n\t\t\t}\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.formattedTextContent);\n\t\t\t});\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\treturn b.join(\"\");\n\t\t}\n\t}\n});\n\nvar document = {\n\tsetSequenceNumber: function(value) {\n\t\tsequenceNumber = value;\n\t},\n\tcreateElementNS: function(namespace,tag) {\n\t\treturn new TW_Element(tag,namespace);\n\t},\n\tcreateElement: function(tag) {\n\t\treturn new TW_Element(tag);\n\t},\n\tcreateTextNode: function(text) {\n\t\treturn new TW_TextNode(text);\n\t},\n\tcompatMode: \"CSS1Compat\", // For KaTeX to know that we're not a browser in quirks mode\n\tisTiddlyWikiFakeDom: true\n};\n\nexports.fakeDocument = document;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/utils/filesystem.js": {
            "title": "$:/core/modules/utils/filesystem.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/filesystem.js\ntype: application/javascript\nmodule-type: utils-node\n\nFile system utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\n/*\nReturn the subdirectories of a path\n*/\nexports.getSubdirectories = function(dirPath) {\n\tif(!$tw.utils.isDirectory(dirPath)) {\n\t\treturn null;\n\t}\n\tvar subdirs = [];\n\t$tw.utils.each(fs.readdirSync(dirPath),function(item) {\n\t\tif($tw.utils.isDirectory(path.resolve(dirPath,item))) {\n\t\t\tsubdirs.push(item);\n\t\t}\n\t});\n\treturn subdirs;\n}\n\n/*\nRecursively (and synchronously) copy a directory and all its content\n*/\nexports.copyDirectory = function(srcPath,dstPath) {\n\t// Remove any trailing path separators\n\tsrcPath = path.resolve($tw.utils.removeTrailingSeparator(srcPath));\n\tdstPath = path.resolve($tw.utils.removeTrailingSeparator(dstPath));\n\t// Check that neither director is within the other\n\tif(srcPath.substring(0,dstPath.length) === dstPath || dstPath.substring(0,srcPath.length) === srcPath) {\n\t\treturn \"Cannot copy nested directories\";\n\t}\n\t// Create the destination directory\n\tvar err = $tw.utils.createDirectory(dstPath);\n\tif(err) {\n\t\treturn err;\n\t}\n\t// Function to copy a folder full of files\n\tvar copy = function(srcPath,dstPath) {\n\t\tvar srcStats = fs.lstatSync(srcPath),\n\t\t\tdstExists = fs.existsSync(dstPath);\n\t\tif(srcStats.isFile()) {\n\t\t\t$tw.utils.copyFile(srcPath,dstPath);\n\t\t} else if(srcStats.isDirectory()) {\n\t\t\tvar items = fs.readdirSync(srcPath);\n\t\t\tfor(var t=0; t<items.length; t++) {\n\t\t\t\tvar item = items[t],\n\t\t\t\t\terr = copy(srcPath + path.sep + item,dstPath + path.sep + item);\n\t\t\t\tif(err) {\n\t\t\t\t\treturn err;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\tcopy(srcPath,dstPath);\n\treturn null;\n};\n\n/*\nCopy a file\n*/\nvar FILE_BUFFER_LENGTH = 64 * 1024,\n\tfileBuffer;\n\nexports.copyFile = function(srcPath,dstPath) {\n\t// Create buffer if required\n\tif(!fileBuffer) {\n\t\tfileBuffer = Buffer.alloc(FILE_BUFFER_LENGTH);\n\t}\n\t// Create any directories in the destination\n\t$tw.utils.createDirectory(path.dirname(dstPath));\n\t// Copy the file\n\tvar srcFile = fs.openSync(srcPath,\"r\"),\n\t\tdstFile = fs.openSync(dstPath,\"w\"),\n\t\tbytesRead = 1,\n\t\tpos = 0;\n\twhile (bytesRead > 0) {\n\t\tbytesRead = fs.readSync(srcFile,fileBuffer,0,FILE_BUFFER_LENGTH,pos);\n\t\tfs.writeSync(dstFile,fileBuffer,0,bytesRead);\n\t\tpos += bytesRead;\n\t}\n\tfs.closeSync(srcFile);\n\tfs.closeSync(dstFile);\n\treturn null;\n};\n\n/*\nRemove trailing path separator\n*/\nexports.removeTrailingSeparator = function(dirPath) {\n\tvar len = dirPath.length;\n\tif(dirPath.charAt(len-1) === path.sep) {\n\t\tdirPath = dirPath.substr(0,len-1);\n\t}\n\treturn dirPath;\n};\n\n/*\nRecursively create a directory\n*/\nexports.createDirectory = function(dirPath) {\n\tif(dirPath.substr(dirPath.length-1,1) !== path.sep) {\n\t\tdirPath = dirPath + path.sep;\n\t}\n\tvar pos = 1;\n\tpos = dirPath.indexOf(path.sep,pos);\n\twhile(pos !== -1) {\n\t\tvar subDirPath = dirPath.substr(0,pos);\n\t\tif(!$tw.utils.isDirectory(subDirPath)) {\n\t\t\ttry {\n\t\t\t\tfs.mkdirSync(subDirPath);\n\t\t\t} catch(e) {\n\t\t\t\treturn \"Error creating directory '\" + subDirPath + \"'\";\n\t\t\t}\n\t\t}\n\t\tpos = dirPath.indexOf(path.sep,pos + 1);\n\t}\n\treturn null;\n};\n\n/*\nRecursively create directories needed to contain a specified file\n*/\nexports.createFileDirectories = function(filePath) {\n\treturn $tw.utils.createDirectory(path.dirname(filePath));\n};\n\n/*\nRecursively delete a directory\n*/\nexports.deleteDirectory = function(dirPath) {\n\tif(fs.existsSync(dirPath)) {\n\t\tvar entries = fs.readdirSync(dirPath);\n\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\tvar currPath = dirPath + path.sep + entries[entryIndex];\n\t\t\tif(fs.lstatSync(currPath).isDirectory()) {\n\t\t\t\t$tw.utils.deleteDirectory(currPath);\n\t\t\t} else {\n\t\t\t\tfs.unlinkSync(currPath);\n\t\t\t}\n\t\t}\n\tfs.rmdirSync(dirPath);\n\t}\n\treturn null;\n};\n\n/*\nCheck if a path identifies a directory\n*/\nexports.isDirectory = function(dirPath) {\n\treturn fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory();\n};\n\n/*\nCheck if a path identifies a directory that is empty\n*/\nexports.isDirectoryEmpty = function(dirPath) {\n\tif(!$tw.utils.isDirectory(dirPath)) {\n\t\treturn false;\n\t}\n\tvar files = fs.readdirSync(dirPath),\n\t\tempty = true;\n\t$tw.utils.each(files,function(file,index) {\n\t\tif(file.charAt(0) !== \".\") {\n\t\t\tempty = false;\n\t\t}\n\t});\n\treturn empty;\n};\n\n/*\nRecursively delete a tree of empty directories\n*/\nexports.deleteEmptyDirs = function(dirpath,callback) {\n\tvar self = this;\n\tfs.readdir(dirpath,function(err,files) {\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\tif(files.length > 0) {\n\t\t\treturn callback(null);\n\t\t}\n\t\tfs.rmdir(dirpath,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.deleteEmptyDirs(path.dirname(dirpath),callback);\n\t\t});\n\t});\n};\n\n/*\nCreate a fileInfo object for saving a tiddler:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file on disk (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\n\tisEditableFile: true if the tiddler was loaded via non-standard options & marked editable\nOptions include:\n\tdirectory: absolute path of root directory to which we are saving\n\tpathFilters: optional array of filters to be used to generate the base path\n\textFilters: optional array of filters to be used to generate the base path\n\twiki: optional wiki for evaluating the pathFilters,\n\tfileInfo: an existing fileInfo to check against\n\toriginalpath: a preferred filepath if no pathFilters match\n*/\nexports.generateTiddlerFileInfo = function(tiddler,options) {\n\tvar fileInfo = {}, metaExt;\n\t// Propagate the isEditableFile flag\n\tif(options.fileInfo) {\n\t\tfileInfo.isEditableFile = options.fileInfo.isEditableFile || false;\n\t}\n\t// Check if the tiddler has any unsafe fields that can't be expressed in a .tid or .meta file: containing control characters, or leading/trailing whitespace\n\tvar hasUnsafeFields = false;\n\t$tw.utils.each(tiddler.getFieldStrings(),function(value,fieldName) {\n\t\tif(fieldName !== \"text\") {\n\t\t\thasUnsafeFields = hasUnsafeFields || /[\\x00-\\x1F]/mg.test(value);\n\t\t\thasUnsafeFields = hasUnsafeFields || ($tw.utils.trim(value) !== value);\n\t\t}\n\t});\n\t// Check for field values \n\tif(hasUnsafeFields) {\n\t\t// Save as a JSON file\n\t\tfileInfo.type = \"application/json\";\n\t\tfileInfo.hasMetaFile = false;\n\t} else {\n\t\t// Save as a .tid or a text/binary file plus a .meta file\n\t\tvar tiddlerType = tiddler.fields.type || \"text/vnd.tiddlywiki\";\n\t\tif(tiddlerType === \"text/vnd.tiddlywiki\") {\n\t\t\t// Save as a .tid file\n\t\t\tfileInfo.type = \"application/x-tiddler\";\n\t\t\tfileInfo.hasMetaFile = false;\n\t\t} else {\n\t\t\t// Save as a text/binary file and a .meta file\n\t\t\tfileInfo.type = tiddlerType;\n\t\t\tfileInfo.hasMetaFile = true;\n\t\t}\n\t\tif(options.extFilters) {\n\t\t\t// Check for extension override\n\t\t\tmetaExt = $tw.utils.generateTiddlerExtension(tiddler.fields.title,{\n\t\t\t\textFilters: options.extFilters,\n\t\t\t\twiki: options.wiki\n\t\t\t});\n\t\t\tif(metaExt){\n\t\t\t\tif(metaExt === \".tid\") {\n\t\t\t\t\t// Overriding to the .tid extension needs special handling\n\t\t\t\t\tfileInfo.type = \"application/x-tiddler\";\n\t\t\t\t\tfileInfo.hasMetaFile = false;\n\t\t\t\t} else if (metaExt === \".json\") {\n\t\t\t\t\t// Overriding to the .json extension needs special handling\n\t\t\t\t\tfileInfo.type = \"application/json\";\n\t\t\t\t\tfileInfo.hasMetaFile = false;\n\t\t\t\t} else {\n\t\t\t\t\t//If the new type matches a known extention, use that MIME type's encoding\n\t\t\t\t\tvar extInfo = $tw.utils.getFileExtensionInfo(metaExt);\n\t\t\t\t\tfileInfo.type = extInfo ? extInfo.type : null;\n\t\t\t\t\tfileInfo.encoding = $tw.utils.getTypeEncoding(metaExt);\n\t\t\t\t\tfileInfo.hasMetaFile = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Take the file extension from the tiddler content type or metaExt\n\tvar contentTypeInfo = $tw.config.contentTypeInfo[fileInfo.type] || {extension: \"\"};\n\t// Generate the filepath\n\tfileInfo.filepath = $tw.utils.generateTiddlerFilepath(tiddler.fields.title,{\n\t\textension: metaExt || contentTypeInfo.extension,\n\t\tdirectory: options.directory,\n\t\tpathFilters: options.pathFilters,\n\t\twiki: options.wiki,\n\t\tfileInfo: options.fileInfo,\n\t\toriginalpath: options.originalpath\n\t});\n\treturn fileInfo;\n};\n\n/*\nGenerate the file extension for saving a tiddler\nOptions include:\n\textFilters: optional array of filters to be used to generate the extention\n\twiki: optional wiki for evaluating the extFilters\n*/\nexports.generateTiddlerExtension = function(title,options) {\n\tvar self = this,\n\t\textension;\n\t// Check if any of the extFilters applies\n\tif(options.extFilters && options.wiki) { \n\t\t$tw.utils.each(options.extFilters,function(filter) {\n\t\t\tif(!extension) {\n\t\t\t\tvar source = options.wiki.makeTiddlerIterator([title]),\n\t\t\t\t\tresult = options.wiki.filterTiddlers(filter,null,source);\n\t\t\t\tif(result.length > 0) {\n\t\t\t\t\textension = result[0];\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn extension;\n};\n\n/*\nGenerate the filepath for saving a tiddler\nOptions include:\n\textension: file extension to be added the finished filepath\n\tdirectory: absolute path of root directory to which we are saving\n\tpathFilters: optional array of filters to be used to generate the base path\n\twiki: optional wiki for evaluating the pathFilters\n\tfileInfo: an existing fileInfo object to check against\n*/\nexports.generateTiddlerFilepath = function(title,options) {\n\tvar self = this,\n\t\tdirectory = options.directory || \"\",\n\t\textension = options.extension || \"\",\n\t\toriginalpath = options.originalpath || \"\",\n\t\tfilepath;\t\n\t// Check if any of the pathFilters applies\n\tif(options.pathFilters && options.wiki) {\n\t\t$tw.utils.each(options.pathFilters,function(filter) {\n\t\t\tif(!filepath) {\n\t\t\t\tvar source = options.wiki.makeTiddlerIterator([title]),\n\t\t\t\t\tresult = options.wiki.filterTiddlers(filter,null,source);\n\t\t\t\tif(result.length > 0) {\n\t\t\t\t\tfilepath = result[0];\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\tif(!filepath && originalpath !== \"\") {\n\t\t//Use the originalpath without the extension\n\t\tvar ext = path.extname(originalpath);\n\t\tfilepath = originalpath.substring(0,originalpath.length - ext.length);\n\t} else if(!filepath) {\n\t\tfilepath = title;\n\t\t// If the filepath already ends in the extension then remove it\n\t\tif(filepath.substring(filepath.length - extension.length) === extension) {\n\t\t\tfilepath = filepath.substring(0,filepath.length - extension.length);\n\t\t}\n\t\t// Remove any forward or backward slashes so we don't create directories\n\t\tfilepath = filepath.replace(/\\/|\\\\/g,\"_\");\n\t}\n\t//If the path does not start with \".\" or \"..\" and a path seperator, then\n\tif(!/^\\.{1,2}[/\\\\]/g.test(filepath)) {\n\t\t// Don't let the filename start with any dots because such files are invisible on *nix\n\t\tfilepath = filepath.replace(/^\\.+/g,\"_\");\n\t}\n\t// Remove any characters that can't be used in cross-platform filenames\n\tfilepath = $tw.utils.transliterate(filepath.replace(/<|>|~|\\:|\\\"|\\||\\?|\\*|\\^/g,\"_\"));\n\t// Truncate the filename if it is too long\n\tif(filepath.length > 200) {\n\t\tfilepath = filepath.substr(0,200);\n\t}\n\t// If the resulting filename is blank (eg because the title is just punctuation characters)\n\tif(!filepath) {\n\t\t// ...then just use the character codes of the title\n\t\tfilepath = \"\";\t\n\t\t$tw.utils.each(title.split(\"\"),function(char) {\n\t\t\tif(filepath) {\n\t\t\t\tfilepath += \"-\";\n\t\t\t}\n\t\t\tfilepath += char.charCodeAt(0).toString();\n\t\t});\n\t}\n\t// Add a uniquifier if the file already exists\n\tvar fullPath, oldPath = (options.fileInfo) ? options.fileInfo.filepath : undefined,\n\t\tcount = 0;\n\tdo {\n\t\tfullPath = path.resolve(directory,filepath + (count ? \"_\" + count : \"\") + extension);\n\t\tif(oldPath && oldPath == fullPath) {\n\t\t\tbreak;\n\t\t}\n\t\tcount++;\n\t} while(fs.existsSync(fullPath));\n\t// If the last write failed with an error, or if path does not start with:\n\t//\tthe resolved options.directory, the resolved wikiPath directory, or the wikiTiddlersPath directory, \n\t//\tthen encodeURIComponent() and resolve to tiddler directory\n\tvar newPath = fullPath,\n\t\tencode = (options.fileInfo || {writeError: false}).writeError == true;\n\tif(!encode){\n\t\tencode = !(fullPath.indexOf(path.resolve(directory)) == 0 ||\n\t\t\tfullPath.indexOf(path.resolve($tw.boot.wikiPath)) == 0 ||\n\t\t\tfullPath.indexOf($tw.boot.wikiTiddlersPath) == 0);\n\t\t}\n\tif(encode){\n\t\tfullPath = path.resolve(directory, encodeURIComponent(fullPath));\n\t}\n\t// Call hook to allow plugins to modify the final path\n\tfullPath = $tw.hooks.invokeHook(\"th-make-tiddler-path\", newPath, fullPath);\n\t// Return the full path to the file\n\treturn fullPath;\n};\n\n/*\nSave a tiddler to a file described by the fileInfo:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\n*/\nexports.saveTiddlerToFile = function(tiddler,fileInfo,callback) {\n\t$tw.utils.createDirectory(path.dirname(fileInfo.filepath));\n\tif(fileInfo.hasMetaFile) {\n\t\t// Save the tiddler as a separate body and meta file\n\t\tvar typeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/plain\"] || {encoding: \"utf8\"};\n\t\tfs.writeFile(fileInfo.filepath,tiddler.fields.text,typeInfo.encoding,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tfs.writeFile(fileInfo.filepath + \".meta\",tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}),\"utf8\",callback);\n\t\t});\n\t} else {\n\t\t// Save the tiddler as a self contained templated file\n\t\tif(fileInfo.type === \"application/x-tiddler\") {\n\t\t\tfs.writeFile(fileInfo.filepath,tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}) + (!!tiddler.fields.text ? \"\\n\\n\" + tiddler.fields.text : \"\"),\"utf8\",callback);\n\t\t} else {\n\t\t\tfs.writeFile(fileInfo.filepath,JSON.stringify([tiddler.getFieldStrings({exclude: [\"bag\"]})],null,$tw.config.preferences.jsonSpaces),\"utf8\",callback);\n\t\t}\n\t}\n};\n\n/*\nSave a tiddler to a file described by the fileInfo:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\n*/\nexports.saveTiddlerToFileSync = function(tiddler,fileInfo) {\n\t$tw.utils.createDirectory(path.dirname(fileInfo.filepath));\n\tif(fileInfo.hasMetaFile) {\n\t\t// Save the tiddler as a separate body and meta file\n\t\tvar typeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/plain\"] || {encoding: \"utf8\"};\n\t\tfs.writeFileSync(fileInfo.filepath,tiddler.fields.text,typeInfo.encoding);\n\t\tfs.writeFileSync(fileInfo.filepath + \".meta\",tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}),\"utf8\");\n\t} else {\n\t\t// Save the tiddler as a self contained templated file\n\t\tif(fileInfo.type === \"application/x-tiddler\") {\n\t\t\tfs.writeFileSync(fileInfo.filepath,tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}) + (!!tiddler.fields.text ? \"\\n\\n\" + tiddler.fields.text : \"\"),\"utf8\");\n\t\t} else {\n\t\t\tfs.writeFileSync(fileInfo.filepath,JSON.stringify([tiddler.getFieldStrings({exclude: [\"bag\"]})],null,$tw.config.preferences.jsonSpaces),\"utf8\");\n\t\t}\n\t}\n};\n\n/*\nDelete a file described by the fileInfo if it exits\n*/\nexports.deleteTiddlerFile = function(fileInfo, callback) {\n\t//Only attempt to delete files that exist on disk\n\tif(!fileInfo.filepath || !fs.existsSync(fileInfo.filepath)) {\n\t\treturn callback(null);\n\t}\n\t// Delete the file\n\tfs.unlink(fileInfo.filepath,function(err) {\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\t\n\t\t// Delete the metafile if present\n\t\tif(fileInfo.hasMetaFile && fs.existsSync(fileInfo.filepath + \".meta\")) {\n\t\t\tfs.unlink(fileInfo.filepath + \".meta\",function(err) {\n\t\t\t\tif(err) {\n\t\t\t\t\treturn callback(err);\n\t\t\t\t}\n\t\t\t\treturn $tw.utils.deleteEmptyDirs(path.dirname(fileInfo.filepath),callback);\n\t\t\t});\n\t\t} else {\n\t\t\treturn $tw.utils.deleteEmptyDirs(path.dirname(fileInfo.filepath),callback);\n\t\t}\n\t});\n};\n\n/*\nCleanup old files on disk, by comparing the options values:\n\tadaptorInfo from $tw.syncer.tiddlerInfo\n\tbootInfo from $tw.boot.files\n*/\nexports.cleanupTiddlerFiles = function(options, callback) {\n\tvar adaptorInfo = options.adaptorInfo || {},\n\tbootInfo = options.bootInfo || {},\n\ttitle = options.title || \"undefined\";\n\tif(adaptorInfo.filepath && bootInfo.filepath && adaptorInfo.filepath !== bootInfo.filepath) {\n\t\treturn $tw.utils.deleteTiddlerFile(adaptorInfo, function(err){\n\t\t\tif(err) {\n\t\t\t\tif ((err.code == \"EPERM\" || err.code == \"EACCES\") && err.syscall == \"unlink\") {\n\t\t\t\t\t// Error deleting the previous file on disk, should fail gracefully\n\t\t\t\t\t$tw.syncer.displayError(\"Server desynchronized. Error cleaning up previous file for tiddler: \"+title, err);\n\t\t\t\t\treturn callback(null);\n\t\t\t\t} else {\n\t\t\t\t\treturn callback(err);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn callback(null);\n\t\t});\n\t} else {\n\t\treturn callback(null);\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils-node"
        },
        "$:/core/modules/utils/linkedlist.js": {
            "title": "$:/core/modules/utils/linkedlist.js",
            "text": "/*\\\nmodule-type: utils\ntitle: $:/core/modules/utils/linkedlist.js\ntype: application/javascript\n\nThis is a doubly-linked indexed list intended for manipulation, particularly\npushTop, which it does with significantly better performance than an array.\n\n\\*/\n(function(){\n\nfunction LinkedList() {\n\tthis.clear();\n};\n\nLinkedList.prototype.clear = function() {\n\tthis.index = Object.create(null);\n\t// LinkedList performs the duty of both the head and tail node\n\tthis.next = this;\n\tthis.prev = this;\n\tthis.length = 0;\n};\n\nLinkedList.prototype.remove = function(value) {\n\tif($tw.utils.isArray(value)) {\n\t\tfor(var t=0; t<value.length; t++) {\n\t\t\t_removeOne(this,value[t]);\n\t\t}\n\t} else {\n\t\t_removeOne(this,value);\n\t}\n};\n\nLinkedList.prototype.push = function(/* values */) {\n\tfor(var i = 0; i < arguments.length; i++) {\n\t\tvar value = arguments[i];\n\t\tvar node = {value: value};\n\t\tvar preexistingNode = this.index[value];\n\t\t_linkToEnd(this,node);\n\t\tif(preexistingNode) {\n\t\t\t// We want to keep pointing to the first instance, but we want\n\t\t\t// to have that instance (or chain of instances) point to the\n\t\t\t// new one.\n\t\t\twhile (preexistingNode.copy) {\n\t\t\t\tpreexistingNode = preexistingNode.copy;\n\t\t\t}\n\t\t\tpreexistingNode.copy = node;\n\t\t} else {\n\t\t\tthis.index[value] = node;\n\t\t}\n\t}\n};\n\nLinkedList.prototype.pushTop = function(value) {\n\tif($tw.utils.isArray(value)) {\n\t\tfor(var t=0; t<value.length; t++) {\n\t\t\t_removeOne(this,value[t]);\n\t\t}\n\t\tthis.push.apply(this,value);\n\t} else {\n\t\tvar node = _removeOne(this,value);\n\t\tif(!node) {\n\t\t\tnode = {value: value};\n\t\t\tthis.index[value] = node;\n\t\t} else {\n\t\t\t// Put this node at the end of the copy chain.\n\t\t\tvar preexistingNode = node;\n\t\t\twhile(preexistingNode.copy) {\n\t\t\t\tpreexistingNode = preexistingNode.copy;\n\t\t\t}\n\t\t\t// The order of these three statements is important,\n\t\t\t// because sometimes preexistingNode == node.\n\t\t\tpreexistingNode.copy = node;\n\t\t\tthis.index[value] = node.copy;\n\t\t\tnode.copy = undefined;\n\t\t}\n\t\t_linkToEnd(this,node);\n\t}\n};\n\nLinkedList.prototype.each = function(callback) {\n\tfor(var ptr = this.next; ptr !== this; ptr = ptr.next) {\n\t\tcallback(ptr.value);\n\t}\n};\n\nLinkedList.prototype.toArray = function() {\n\tvar output = [];\n\tfor(var ptr = this.next; ptr !== this; ptr = ptr.next) {\n\t\toutput.push(ptr.value);\n\t}\n\treturn output;\n};\n\nfunction _removeOne(list,value) {\n\tvar node = list.index[value];\n\tif(node) {\n\t\tnode.prev.next = node.next;\n\t\tnode.next.prev = node.prev;\n\t\tlist.length -= 1;\n\t\t// Point index to the next instance of the same value, maybe nothing.\n\t\tlist.index[value] = node.copy;\n\t}\n\treturn node;\n};\n\nfunction _linkToEnd(list,node) {\n\t// Sticks the given node onto the end of the list.\n\tlist.prev.next = node;\n\tnode.prev = list.prev;\n\tlist.prev = node;\n\tnode.next = list;\n\tlist.length += 1;\n};\n\nexports.LinkedList = LinkedList;\n\n})();\n",
            "module-type": "utils",
            "type": "application/javascript"
        },
        "$:/core/modules/utils/logger.js": {
            "title": "$:/core/modules/utils/logger.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/logger.js\ntype: application/javascript\nmodule-type: utils\n\nA basic logging implementation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ALERT_TAG = \"$:/tags/Alert\";\n\n/*\nMake a new logger\n*/\nfunction Logger(componentName,options) {\n\toptions = options || {};\n\tthis.componentName = componentName || \"\";\n\tthis.colour = options.colour || \"white\";\n\tthis.enable = \"enable\" in options ? options.enable : true;\n\tthis.save = \"save\" in options ? options.save : true;\n\tthis.saveLimit = options.saveLimit || 100 * 1024;\n\tthis.saveBufferLogger = this;\n\tthis.buffer = \"\";\n\tthis.alertCount = 0;\n}\n\nLogger.prototype.setSaveBuffer = function(logger) {\n\tthis.saveBufferLogger = logger;\n};\n\n/*\nLog a message\n*/\nLogger.prototype.log = function(/* args */) {\n\tvar self = this;\n\tif(this.enable) {\n\t\tif(this.saveBufferLogger.save) {\n\t\t\tthis.saveBufferLogger.buffer += $tw.utils.formatDateString(new Date(),\"YYYY MM DD 0hh:0mm:0ss.0XXX\") + \":\";\n\t\t\t$tw.utils.each(Array.prototype.slice.call(arguments,0),function(arg,index) {\n\t\t\t\tself.saveBufferLogger.buffer += \" \" + arg;\n\t\t\t});\n\t\t\tthis.saveBufferLogger.buffer += \"\\n\";\n\t\t\tthis.saveBufferLogger.buffer = this.saveBufferLogger.buffer.slice(-this.saveBufferLogger.saveLimit);\t\t\t\n\t\t}\n\t\tif(console !== undefined && console.log !== undefined) {\n\t\t\treturn Function.apply.call(console.log, console, [$tw.utils.terminalColour(this.colour),this.componentName + \":\"].concat(Array.prototype.slice.call(arguments,0)).concat($tw.utils.terminalColour()));\n\t\t}\n\t} \n};\n\n/*\nRead the message buffer\n*/\nLogger.prototype.getBuffer = function() {\n\treturn this.saveBufferLogger.buffer;\n};\n\n/*\nLog a structure as a table\n*/\nLogger.prototype.table = function(value) {\n\t(console.table || console.log)(value);\n};\n\n/*\nAlert a message\n*/\nLogger.prototype.alert = function(/* args */) {\n\tif(this.enable) {\n\t\t// Prepare the text of the alert\n\t\tvar text = Array.prototype.join.call(arguments,\" \");\n\t\t// Create alert tiddlers in the browser\n\t\tif($tw.browser) {\n\t\t\t// Check if there is an existing alert with the same text and the same component\n\t\t\tvar existingAlerts = $tw.wiki.getTiddlersWithTag(ALERT_TAG),\n\t\t\t\talertFields,\n\t\t\t\texistingCount,\n\t\t\t\tself = this;\n\t\t\t$tw.utils.each(existingAlerts,function(title) {\n\t\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\t\tif(tiddler.fields.text === text && tiddler.fields.component === self.componentName && tiddler.fields.modified && (!alertFields || tiddler.fields.modified < alertFields.modified)) {\n\t\t\t\t\t\talertFields = $tw.utils.extend({},tiddler.fields);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(alertFields) {\n\t\t\t\texistingCount = alertFields.count || 1;\n\t\t\t} else {\n\t\t\t\talertFields = {\n\t\t\t\t\ttitle: $tw.wiki.generateNewTitle(\"$:/temp/alerts/alert\",{prefix: \"\"}),\n\t\t\t\t\ttext: text,\n\t\t\t\t\ttags: [ALERT_TAG],\n\t\t\t\t\tcomponent: this.componentName\n\t\t\t\t};\n\t\t\t\texistingCount = 0;\n\t\t\t\tthis.alertCount += 1;\n\t\t\t}\n\t\t\talertFields.modified = new Date();\n\t\t\tif(++existingCount > 1) {\n\t\t\t\talertFields.count = existingCount;\n\t\t\t} else {\n\t\t\t\talertFields.count = undefined;\n\t\t\t}\n\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(alertFields));\n\t\t\t// Log the alert as well\n\t\t\tthis.log.apply(this,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\t// Print an orange message to the console if not in the browser\n\t\t\tconsole.error(\"\\x1b[1;33m\" + text + \"\\x1b[0m\");\n\t\t}\t\t\n\t}\n};\n\n/*\nClear outstanding alerts\n*/\nLogger.prototype.clearAlerts = function() {\n\tvar self = this;\n\tif($tw.browser && this.alertCount > 0) {\n\t\t$tw.utils.each($tw.wiki.getTiddlersWithTag(ALERT_TAG),function(title) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(tiddler.fields.component === self.componentName) {\n\t\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t\t}\n\t\t});\n\t\tthis.alertCount = 0;\n\t}\n};\n\nexports.Logger = Logger;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/parsetree.js": {
            "title": "$:/core/modules/utils/parsetree.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/parsetree.js\ntype: application/javascript\nmodule-type: utils\n\nParse tree utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.addAttributeToParseTreeNode = function(node,name,value) {\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[name] = {type: \"string\", value: value};\n};\n\nexports.getAttributeValueFromParseTreeNode = function(node,name,defaultValue) {\n\tif(node.attributes && node.attributes[name] && node.attributes[name].value !== undefined) {\n\t\treturn node.attributes[name].value;\n\t}\n\treturn defaultValue;\n};\n\nexports.addClassToParseTreeNode = function(node,classString) {\n\tvar classes = [];\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[\"class\"] = node.attributes[\"class\"] || {type: \"string\", value: \"\"};\n\tif(node.attributes[\"class\"].type === \"string\") {\n\t\tif(node.attributes[\"class\"].value !== \"\") {\n\t\t\tclasses = node.attributes[\"class\"].value.split(\" \");\n\t\t}\n\t\tif(classString !== \"\") {\n\t\t\t$tw.utils.pushTop(classes,classString.split(\" \"));\n\t\t}\n\t\tnode.attributes[\"class\"].value = classes.join(\" \");\n\t}\n};\n\nexports.addStyleToParseTreeNode = function(node,name,value) {\n\t\tnode.attributes = node.attributes || {};\n\t\tnode.attributes.style = node.attributes.style || {type: \"string\", value: \"\"};\n\t\tif(node.attributes.style.type === \"string\") {\n\t\t\tnode.attributes.style.value += name + \":\" + value + \";\";\n\t\t}\n};\n\nexports.findParseTreeNode = function(nodeArray,search) {\n\tfor(var t=0; t<nodeArray.length; t++) {\n\t\tif(nodeArray[t].type === search.type && nodeArray[t].tag === search.tag) {\n\t\t\treturn nodeArray[t];\n\t\t}\n\t}\n\treturn undefined;\n};\n\n/*\nHelper to get the text of a parse tree node or array of nodes\n*/\nexports.getParseTreeText = function getParseTreeText(tree) {\n\tvar output = [];\n\tif($tw.utils.isArray(tree)) {\n\t\t$tw.utils.each(tree,function(node) {\n\t\t\toutput.push(getParseTreeText(node));\n\t\t});\n\t} else {\n\t\tif(tree.type === \"text\") {\n\t\t\toutput.push(tree.text);\n\t\t}\n\t\tif(tree.children) {\n\t\t\treturn getParseTreeText(tree.children);\n\t\t}\n\t}\n\treturn output.join(\"\");\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/performance.js": {
            "title": "$:/core/modules/utils/performance.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/performance.js\ntype: application/javascript\nmodule-type: global\n\nPerformance measurement.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Performance(enabled) {\n\tthis.enabled = !!enabled;\n\tthis.measures = {}; // Hashmap by measurement name of {time:, invocations:}\n\tthis.logger = new $tw.utils.Logger(\"performance\");\n\tthis.showGreeting();\n}\n\nPerformance.prototype.showGreeting = function() {\n\tif($tw.browser) {\n\t\tthis.logger.log(\"Execute $tw.perf.log(); to see filter execution timings\");\t\t\n\t}\n};\n\n/*\nWrap performance reporting around a top level function\n*/\nPerformance.prototype.report = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments);\n\t\t\tself.logger.log(name + \": \" + $tw.utils.timer(startTime).toFixed(2) + \"ms\");\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\nPerformance.prototype.log = function() {\n\tvar self = this,\n\t\ttotalTime = 0,\n\t\torderedMeasures = Object.keys(this.measures).sort(function(a,b) {\n\t\t\tif(self.measures[a].time > self.measures[b].time) {\n\t\t\t\treturn -1;\n\t\t\t} else if (self.measures[a].time < self.measures[b].time) {\n\t\t\t\treturn + 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t});\n\t$tw.utils.each(orderedMeasures,function(name) {\n\t\ttotalTime += self.measures[name].time;\n\t});\n\tvar results = []\n\t$tw.utils.each(orderedMeasures,function(name) {\n\t\tvar measure = self.measures[name];\n\t\tresults.push({name: name,invocations: measure.invocations, avgTime: measure.time / measure.invocations, totalTime: measure.time, percentTime: (measure.time / totalTime) * 100})\n\t});\n\tself.logger.table(results);\n};\n\n/*\nWrap performance measurements around a subfunction\n*/\nPerformance.prototype.measure = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments);\n\t\t\tif(!(name in self.measures)) {\n\t\t\t\tself.measures[name] = {time: 0, invocations: 0};\n\t\t\t}\n\t\t\tself.measures[name].time += $tw.utils.timer(startTime);\n\t\t\tself.measures[name].invocations++;\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\nexports.Performance = Performance;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/utils/pluginmaker.js": {
            "title": "$:/core/modules/utils/pluginmaker.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/pluginmaker.js\ntype: application/javascript\nmodule-type: utils\n\nA quick and dirty way to pack up plugins within the browser.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRepack a plugin, and then delete any non-shadow payload tiddlers\n*/\nexports.repackPlugin = function(title,additionalTiddlers,excludeTiddlers) {\n\tadditionalTiddlers = additionalTiddlers || [];\n\texcludeTiddlers = excludeTiddlers || [];\n\t// Get the plugin tiddler\n\tvar pluginTiddler = $tw.wiki.getTiddler(title);\n\tif(!pluginTiddler) {\n\t\tthrow \"No such tiddler as \" + title;\n\t}\n\t// Extract the JSON\n\tvar jsonPluginTiddler;\n\ttry {\n\t\tjsonPluginTiddler = JSON.parse(pluginTiddler.fields.text);\n\t} catch(e) {\n\t\tthrow \"Cannot parse plugin tiddler \" + title + \"\\n\" + $tw.language.getString(\"Error/Caption\") + \": \" + e;\n\t}\n\t// Get the list of tiddlers\n\tvar tiddlers = Object.keys(jsonPluginTiddler.tiddlers);\n\t// Add the additional tiddlers\n\t$tw.utils.pushTop(tiddlers,additionalTiddlers);\n\t// Remove any excluded tiddlers\n\tfor(var t=tiddlers.length-1; t>=0; t--) {\n\t\tif(excludeTiddlers.indexOf(tiddlers[t]) !== -1) {\n\t\t\ttiddlers.splice(t,1);\n\t\t}\n\t}\n\t// Pack up the tiddlers into a block of JSON\n\tvar plugins = {};\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = $tw.wiki.getTiddler(title),\n\t\t\tfields = {};\n\t\t$tw.utils.each(tiddler.fields,function (value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\tplugins[title] = fields;\n\t});\n\t// Retrieve and bump the version number\n\tvar pluginVersion = $tw.utils.parseVersion(pluginTiddler.getFieldString(\"version\") || \"0.0.0\") || {\n\t\t\tmajor: \"0\",\n\t\t\tminor: \"0\",\n\t\t\tpatch: \"0\"\n\t\t};\n\tpluginVersion.patch++;\n\tvar version = pluginVersion.major + \".\" + pluginVersion.minor + \".\" + pluginVersion.patch;\n\tif(pluginVersion.prerelease) {\n\t\tversion += \"-\" + pluginVersion.prerelease;\n\t}\n\tif(pluginVersion.build) {\n\t\tversion += \"+\" + pluginVersion.build;\n\t}\n\t// Save the tiddler\n\t$tw.wiki.addTiddler(new $tw.Tiddler(pluginTiddler,{text: JSON.stringify({tiddlers: plugins},null,4), version: version}));\n\t// Delete any non-shadow constituent tiddlers\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tif($tw.wiki.tiddlerExists(title)) {\n\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t}\n\t});\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t// Return a heartwarming confirmation\n\treturn \"Plugin \" + title + \" successfully saved\";\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/transliterate.js": {
            "title": "$:/core/modules/utils/transliterate.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/transliterate.js\ntype: application/javascript\nmodule-type: utils\n\nTransliteration static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nTransliterate string to ASCII\n\n(Some pairs taken from http://semplicewebsites.com/removing-accents-javascript)\n*/\nexports.transliterationPairs = {\n\t\"Á\":\"A\",\n\t\"Ă\":\"A\",\n\t\"Ắ\":\"A\",\n\t\"Ặ\":\"A\",\n\t\"Ằ\":\"A\",\n\t\"Ẳ\":\"A\",\n\t\"Ẵ\":\"A\",\n\t\"Ǎ\":\"A\",\n\t\"Â\":\"A\",\n\t\"Ấ\":\"A\",\n\t\"Ậ\":\"A\",\n\t\"Ầ\":\"A\",\n\t\"Ẩ\":\"A\",\n\t\"Ẫ\":\"A\",\n\t\"Ä\":\"A\",\n\t\"Ǟ\":\"A\",\n\t\"Ȧ\":\"A\",\n\t\"Ǡ\":\"A\",\n\t\"Ạ\":\"A\",\n\t\"Ȁ\":\"A\",\n\t\"À\":\"A\",\n\t\"Ả\":\"A\",\n\t\"Ȃ\":\"A\",\n\t\"Ā\":\"A\",\n\t\"Ą\":\"A\",\n\t\"Å\":\"A\",\n\t\"Ǻ\":\"A\",\n\t\"Ḁ\":\"A\",\n\t\"Ⱥ\":\"A\",\n\t\"Ã\":\"A\",\n\t\"Ꜳ\":\"AA\",\n\t\"Æ\":\"AE\",\n\t\"Ǽ\":\"AE\",\n\t\"Ǣ\":\"AE\",\n\t\"Ꜵ\":\"AO\",\n\t\"Ꜷ\":\"AU\",\n\t\"Ꜹ\":\"AV\",\n\t\"Ꜻ\":\"AV\",\n\t\"Ꜽ\":\"AY\",\n\t\"Ḃ\":\"B\",\n\t\"Ḅ\":\"B\",\n\t\"Ɓ\":\"B\",\n\t\"Ḇ\":\"B\",\n\t\"Ƀ\":\"B\",\n\t\"Ƃ\":\"B\",\n\t\"Ć\":\"C\",\n\t\"Č\":\"C\",\n\t\"Ç\":\"C\",\n\t\"Ḉ\":\"C\",\n\t\"Ĉ\":\"C\",\n\t\"Ċ\":\"C\",\n\t\"Ƈ\":\"C\",\n\t\"Ȼ\":\"C\",\n\t\"Ď\":\"D\",\n\t\"Ḑ\":\"D\",\n\t\"Ḓ\":\"D\",\n\t\"Ḋ\":\"D\",\n\t\"Ḍ\":\"D\",\n\t\"Ɗ\":\"D\",\n\t\"Ḏ\":\"D\",\n\t\"Dz\":\"D\",\n\t\"Dž\":\"D\",\n\t\"Đ\":\"D\",\n\t\"Ƌ\":\"D\",\n\t\"DZ\":\"DZ\",\n\t\"DŽ\":\"DZ\",\n\t\"É\":\"E\",\n\t\"Ĕ\":\"E\",\n\t\"Ě\":\"E\",\n\t\"Ȩ\":\"E\",\n\t\"Ḝ\":\"E\",\n\t\"Ê\":\"E\",\n\t\"Ế\":\"E\",\n\t\"Ệ\":\"E\",\n\t\"Ề\":\"E\",\n\t\"Ể\":\"E\",\n\t\"Ễ\":\"E\",\n\t\"Ḙ\":\"E\",\n\t\"Ë\":\"E\",\n\t\"Ė\":\"E\",\n\t\"Ẹ\":\"E\",\n\t\"Ȅ\":\"E\",\n\t\"È\":\"E\",\n\t\"Ẻ\":\"E\",\n\t\"Ȇ\":\"E\",\n\t\"Ē\":\"E\",\n\t\"Ḗ\":\"E\",\n\t\"Ḕ\":\"E\",\n\t\"Ę\":\"E\",\n\t\"Ɇ\":\"E\",\n\t\"Ẽ\":\"E\",\n\t\"Ḛ\":\"E\",\n\t\"Ꝫ\":\"ET\",\n\t\"Ḟ\":\"F\",\n\t\"Ƒ\":\"F\",\n\t\"Ǵ\":\"G\",\n\t\"Ğ\":\"G\",\n\t\"Ǧ\":\"G\",\n\t\"Ģ\":\"G\",\n\t\"Ĝ\":\"G\",\n\t\"Ġ\":\"G\",\n\t\"Ɠ\":\"G\",\n\t\"Ḡ\":\"G\",\n\t\"Ǥ\":\"G\",\n\t\"Ḫ\":\"H\",\n\t\"Ȟ\":\"H\",\n\t\"Ḩ\":\"H\",\n\t\"Ĥ\":\"H\",\n\t\"Ⱨ\":\"H\",\n\t\"Ḧ\":\"H\",\n\t\"Ḣ\":\"H\",\n\t\"Ḥ\":\"H\",\n\t\"Ħ\":\"H\",\n\t\"Í\":\"I\",\n\t\"Ĭ\":\"I\",\n\t\"Ǐ\":\"I\",\n\t\"Î\":\"I\",\n\t\"Ï\":\"I\",\n\t\"Ḯ\":\"I\",\n\t\"İ\":\"I\",\n\t\"Ị\":\"I\",\n\t\"Ȉ\":\"I\",\n\t\"Ì\":\"I\",\n\t\"Ỉ\":\"I\",\n\t\"Ȋ\":\"I\",\n\t\"Ī\":\"I\",\n\t\"Į\":\"I\",\n\t\"Ɨ\":\"I\",\n\t\"Ĩ\":\"I\",\n\t\"Ḭ\":\"I\",\n\t\"Ꝺ\":\"D\",\n\t\"Ꝼ\":\"F\",\n\t\"Ᵹ\":\"G\",\n\t\"Ꞃ\":\"R\",\n\t\"Ꞅ\":\"S\",\n\t\"Ꞇ\":\"T\",\n\t\"Ꝭ\":\"IS\",\n\t\"Ĵ\":\"J\",\n\t\"Ɉ\":\"J\",\n\t\"Ḱ\":\"K\",\n\t\"Ǩ\":\"K\",\n\t\"Ķ\":\"K\",\n\t\"Ⱪ\":\"K\",\n\t\"Ꝃ\":\"K\",\n\t\"Ḳ\":\"K\",\n\t\"Ƙ\":\"K\",\n\t\"Ḵ\":\"K\",\n\t\"Ꝁ\":\"K\",\n\t\"Ꝅ\":\"K\",\n\t\"Ĺ\":\"L\",\n\t\"Ƚ\":\"L\",\n\t\"Ľ\":\"L\",\n\t\"Ļ\":\"L\",\n\t\"Ḽ\":\"L\",\n\t\"Ḷ\":\"L\",\n\t\"Ḹ\":\"L\",\n\t\"Ⱡ\":\"L\",\n\t\"Ꝉ\":\"L\",\n\t\"Ḻ\":\"L\",\n\t\"Ŀ\":\"L\",\n\t\"Ɫ\":\"L\",\n\t\"Lj\":\"L\",\n\t\"Ł\":\"L\",\n\t\"LJ\":\"LJ\",\n\t\"Ḿ\":\"M\",\n\t\"Ṁ\":\"M\",\n\t\"Ṃ\":\"M\",\n\t\"Ɱ\":\"M\",\n\t\"Ń\":\"N\",\n\t\"Ň\":\"N\",\n\t\"Ņ\":\"N\",\n\t\"Ṋ\":\"N\",\n\t\"Ṅ\":\"N\",\n\t\"Ṇ\":\"N\",\n\t\"Ǹ\":\"N\",\n\t\"Ɲ\":\"N\",\n\t\"Ṉ\":\"N\",\n\t\"Ƞ\":\"N\",\n\t\"Nj\":\"N\",\n\t\"Ñ\":\"N\",\n\t\"NJ\":\"NJ\",\n\t\"Ó\":\"O\",\n\t\"Ŏ\":\"O\",\n\t\"Ǒ\":\"O\",\n\t\"Ô\":\"O\",\n\t\"Ố\":\"O\",\n\t\"Ộ\":\"O\",\n\t\"Ồ\":\"O\",\n\t\"Ổ\":\"O\",\n\t\"Ỗ\":\"O\",\n\t\"Ö\":\"O\",\n\t\"Ȫ\":\"O\",\n\t\"Ȯ\":\"O\",\n\t\"Ȱ\":\"O\",\n\t\"Ọ\":\"O\",\n\t\"Ő\":\"O\",\n\t\"Ȍ\":\"O\",\n\t\"Ò\":\"O\",\n\t\"Ỏ\":\"O\",\n\t\"Ơ\":\"O\",\n\t\"Ớ\":\"O\",\n\t\"Ợ\":\"O\",\n\t\"Ờ\":\"O\",\n\t\"Ở\":\"O\",\n\t\"Ỡ\":\"O\",\n\t\"Ȏ\":\"O\",\n\t\"Ꝋ\":\"O\",\n\t\"Ꝍ\":\"O\",\n\t\"Ō\":\"O\",\n\t\"Ṓ\":\"O\",\n\t\"Ṑ\":\"O\",\n\t\"Ɵ\":\"O\",\n\t\"Ǫ\":\"O\",\n\t\"Ǭ\":\"O\",\n\t\"Ø\":\"O\",\n\t\"Ǿ\":\"O\",\n\t\"Õ\":\"O\",\n\t\"Ṍ\":\"O\",\n\t\"Ṏ\":\"O\",\n\t\"Ȭ\":\"O\",\n\t\"Ƣ\":\"OI\",\n\t\"Ꝏ\":\"OO\",\n\t\"Ɛ\":\"E\",\n\t\"Ɔ\":\"O\",\n\t\"Ȣ\":\"OU\",\n\t\"Ṕ\":\"P\",\n\t\"Ṗ\":\"P\",\n\t\"Ꝓ\":\"P\",\n\t\"Ƥ\":\"P\",\n\t\"Ꝕ\":\"P\",\n\t\"Ᵽ\":\"P\",\n\t\"Ꝑ\":\"P\",\n\t\"Ꝙ\":\"Q\",\n\t\"Ꝗ\":\"Q\",\n\t\"Ŕ\":\"R\",\n\t\"Ř\":\"R\",\n\t\"Ŗ\":\"R\",\n\t\"Ṙ\":\"R\",\n\t\"Ṛ\":\"R\",\n\t\"Ṝ\":\"R\",\n\t\"Ȑ\":\"R\",\n\t\"Ȓ\":\"R\",\n\t\"Ṟ\":\"R\",\n\t\"Ɍ\":\"R\",\n\t\"Ɽ\":\"R\",\n\t\"Ꜿ\":\"C\",\n\t\"Ǝ\":\"E\",\n\t\"Ś\":\"S\",\n\t\"Ṥ\":\"S\",\n\t\"Š\":\"S\",\n\t\"Ṧ\":\"S\",\n\t\"Ş\":\"S\",\n\t\"Ŝ\":\"S\",\n\t\"Ș\":\"S\",\n\t\"Ṡ\":\"S\",\n\t\"Ṣ\":\"S\",\n\t\"Ṩ\":\"S\",\n\t\"Ť\":\"T\",\n\t\"Ţ\":\"T\",\n\t\"Ṱ\":\"T\",\n\t\"Ț\":\"T\",\n\t\"Ⱦ\":\"T\",\n\t\"Ṫ\":\"T\",\n\t\"Ṭ\":\"T\",\n\t\"Ƭ\":\"T\",\n\t\"Ṯ\":\"T\",\n\t\"Ʈ\":\"T\",\n\t\"Ŧ\":\"T\",\n\t\"Ɐ\":\"A\",\n\t\"Ꞁ\":\"L\",\n\t\"Ɯ\":\"M\",\n\t\"Ʌ\":\"V\",\n\t\"Ꜩ\":\"TZ\",\n\t\"Ú\":\"U\",\n\t\"Ŭ\":\"U\",\n\t\"Ǔ\":\"U\",\n\t\"Û\":\"U\",\n\t\"Ṷ\":\"U\",\n\t\"Ü\":\"U\",\n\t\"Ǘ\":\"U\",\n\t\"Ǚ\":\"U\",\n\t\"Ǜ\":\"U\",\n\t\"Ǖ\":\"U\",\n\t\"Ṳ\":\"U\",\n\t\"Ụ\":\"U\",\n\t\"Ű\":\"U\",\n\t\"Ȕ\":\"U\",\n\t\"Ù\":\"U\",\n\t\"Ủ\":\"U\",\n\t\"Ư\":\"U\",\n\t\"Ứ\":\"U\",\n\t\"Ự\":\"U\",\n\t\"Ừ\":\"U\",\n\t\"Ử\":\"U\",\n\t\"Ữ\":\"U\",\n\t\"Ȗ\":\"U\",\n\t\"Ū\":\"U\",\n\t\"Ṻ\":\"U\",\n\t\"Ų\":\"U\",\n\t\"Ů\":\"U\",\n\t\"Ũ\":\"U\",\n\t\"Ṹ\":\"U\",\n\t\"Ṵ\":\"U\",\n\t\"Ꝟ\":\"V\",\n\t\"Ṿ\":\"V\",\n\t\"Ʋ\":\"V\",\n\t\"Ṽ\":\"V\",\n\t\"Ꝡ\":\"VY\",\n\t\"Ẃ\":\"W\",\n\t\"Ŵ\":\"W\",\n\t\"Ẅ\":\"W\",\n\t\"Ẇ\":\"W\",\n\t\"Ẉ\":\"W\",\n\t\"Ẁ\":\"W\",\n\t\"Ⱳ\":\"W\",\n\t\"Ẍ\":\"X\",\n\t\"Ẋ\":\"X\",\n\t\"Ý\":\"Y\",\n\t\"Ŷ\":\"Y\",\n\t\"Ÿ\":\"Y\",\n\t\"Ẏ\":\"Y\",\n\t\"Ỵ\":\"Y\",\n\t\"Ỳ\":\"Y\",\n\t\"Ƴ\":\"Y\",\n\t\"Ỷ\":\"Y\",\n\t\"Ỿ\":\"Y\",\n\t\"Ȳ\":\"Y\",\n\t\"Ɏ\":\"Y\",\n\t\"Ỹ\":\"Y\",\n\t\"Ź\":\"Z\",\n\t\"Ž\":\"Z\",\n\t\"Ẑ\":\"Z\",\n\t\"Ⱬ\":\"Z\",\n\t\"Ż\":\"Z\",\n\t\"Ẓ\":\"Z\",\n\t\"Ȥ\":\"Z\",\n\t\"Ẕ\":\"Z\",\n\t\"Ƶ\":\"Z\",\n\t\"IJ\":\"IJ\",\n\t\"Œ\":\"OE\",\n\t\"ᴀ\":\"A\",\n\t\"ᴁ\":\"AE\",\n\t\"ʙ\":\"B\",\n\t\"ᴃ\":\"B\",\n\t\"ᴄ\":\"C\",\n\t\"ᴅ\":\"D\",\n\t\"ᴇ\":\"E\",\n\t\"ꜰ\":\"F\",\n\t\"ɢ\":\"G\",\n\t\"ʛ\":\"G\",\n\t\"ʜ\":\"H\",\n\t\"ɪ\":\"I\",\n\t\"ʁ\":\"R\",\n\t\"ᴊ\":\"J\",\n\t\"ᴋ\":\"K\",\n\t\"ʟ\":\"L\",\n\t\"ᴌ\":\"L\",\n\t\"ᴍ\":\"M\",\n\t\"ɴ\":\"N\",\n\t\"ᴏ\":\"O\",\n\t\"ɶ\":\"OE\",\n\t\"ᴐ\":\"O\",\n\t\"ᴕ\":\"OU\",\n\t\"ᴘ\":\"P\",\n\t\"ʀ\":\"R\",\n\t\"ᴎ\":\"N\",\n\t\"ᴙ\":\"R\",\n\t\"ꜱ\":\"S\",\n\t\"ᴛ\":\"T\",\n\t\"ⱻ\":\"E\",\n\t\"ᴚ\":\"R\",\n\t\"ᴜ\":\"U\",\n\t\"ᴠ\":\"V\",\n\t\"ᴡ\":\"W\",\n\t\"ʏ\":\"Y\",\n\t\"ᴢ\":\"Z\",\n\t\"á\":\"a\",\n\t\"ă\":\"a\",\n\t\"ắ\":\"a\",\n\t\"ặ\":\"a\",\n\t\"ằ\":\"a\",\n\t\"ẳ\":\"a\",\n\t\"ẵ\":\"a\",\n\t\"ǎ\":\"a\",\n\t\"â\":\"a\",\n\t\"ấ\":\"a\",\n\t\"ậ\":\"a\",\n\t\"ầ\":\"a\",\n\t\"ẩ\":\"a\",\n\t\"ẫ\":\"a\",\n\t\"ä\":\"a\",\n\t\"ǟ\":\"a\",\n\t\"ȧ\":\"a\",\n\t\"ǡ\":\"a\",\n\t\"ạ\":\"a\",\n\t\"ȁ\":\"a\",\n\t\"à\":\"a\",\n\t\"ả\":\"a\",\n\t\"ȃ\":\"a\",\n\t\"ā\":\"a\",\n\t\"ą\":\"a\",\n\t\"ᶏ\":\"a\",\n\t\"ẚ\":\"a\",\n\t\"å\":\"a\",\n\t\"ǻ\":\"a\",\n\t\"ḁ\":\"a\",\n\t\"ⱥ\":\"a\",\n\t\"ã\":\"a\",\n\t\"ꜳ\":\"aa\",\n\t\"æ\":\"ae\",\n\t\"ǽ\":\"ae\",\n\t\"ǣ\":\"ae\",\n\t\"ꜵ\":\"ao\",\n\t\"ꜷ\":\"au\",\n\t\"ꜹ\":\"av\",\n\t\"ꜻ\":\"av\",\n\t\"ꜽ\":\"ay\",\n\t\"ḃ\":\"b\",\n\t\"ḅ\":\"b\",\n\t\"ɓ\":\"b\",\n\t\"ḇ\":\"b\",\n\t\"ᵬ\":\"b\",\n\t\"ᶀ\":\"b\",\n\t\"ƀ\":\"b\",\n\t\"ƃ\":\"b\",\n\t\"ɵ\":\"o\",\n\t\"ć\":\"c\",\n\t\"č\":\"c\",\n\t\"ç\":\"c\",\n\t\"ḉ\":\"c\",\n\t\"ĉ\":\"c\",\n\t\"ɕ\":\"c\",\n\t\"ċ\":\"c\",\n\t\"ƈ\":\"c\",\n\t\"ȼ\":\"c\",\n\t\"ď\":\"d\",\n\t\"ḑ\":\"d\",\n\t\"ḓ\":\"d\",\n\t\"ȡ\":\"d\",\n\t\"ḋ\":\"d\",\n\t\"ḍ\":\"d\",\n\t\"ɗ\":\"d\",\n\t\"ᶑ\":\"d\",\n\t\"ḏ\":\"d\",\n\t\"ᵭ\":\"d\",\n\t\"ᶁ\":\"d\",\n\t\"đ\":\"d\",\n\t\"ɖ\":\"d\",\n\t\"ƌ\":\"d\",\n\t\"ı\":\"i\",\n\t\"ȷ\":\"j\",\n\t\"ɟ\":\"j\",\n\t\"ʄ\":\"j\",\n\t\"dz\":\"dz\",\n\t\"dž\":\"dz\",\n\t\"é\":\"e\",\n\t\"ĕ\":\"e\",\n\t\"ě\":\"e\",\n\t\"ȩ\":\"e\",\n\t\"ḝ\":\"e\",\n\t\"ê\":\"e\",\n\t\"ế\":\"e\",\n\t\"ệ\":\"e\",\n\t\"ề\":\"e\",\n\t\"ể\":\"e\",\n\t\"ễ\":\"e\",\n\t\"ḙ\":\"e\",\n\t\"ë\":\"e\",\n\t\"ė\":\"e\",\n\t\"ẹ\":\"e\",\n\t\"ȅ\":\"e\",\n\t\"è\":\"e\",\n\t\"ẻ\":\"e\",\n\t\"ȇ\":\"e\",\n\t\"ē\":\"e\",\n\t\"ḗ\":\"e\",\n\t\"ḕ\":\"e\",\n\t\"ⱸ\":\"e\",\n\t\"ę\":\"e\",\n\t\"ᶒ\":\"e\",\n\t\"ɇ\":\"e\",\n\t\"ẽ\":\"e\",\n\t\"ḛ\":\"e\",\n\t\"ꝫ\":\"et\",\n\t\"ḟ\":\"f\",\n\t\"ƒ\":\"f\",\n\t\"ᵮ\":\"f\",\n\t\"ᶂ\":\"f\",\n\t\"ǵ\":\"g\",\n\t\"ğ\":\"g\",\n\t\"ǧ\":\"g\",\n\t\"ģ\":\"g\",\n\t\"ĝ\":\"g\",\n\t\"ġ\":\"g\",\n\t\"ɠ\":\"g\",\n\t\"ḡ\":\"g\",\n\t\"ᶃ\":\"g\",\n\t\"ǥ\":\"g\",\n\t\"ḫ\":\"h\",\n\t\"ȟ\":\"h\",\n\t\"ḩ\":\"h\",\n\t\"ĥ\":\"h\",\n\t\"ⱨ\":\"h\",\n\t\"ḧ\":\"h\",\n\t\"ḣ\":\"h\",\n\t\"ḥ\":\"h\",\n\t\"ɦ\":\"h\",\n\t\"ẖ\":\"h\",\n\t\"ħ\":\"h\",\n\t\"ƕ\":\"hv\",\n\t\"í\":\"i\",\n\t\"ĭ\":\"i\",\n\t\"ǐ\":\"i\",\n\t\"î\":\"i\",\n\t\"ï\":\"i\",\n\t\"ḯ\":\"i\",\n\t\"ị\":\"i\",\n\t\"ȉ\":\"i\",\n\t\"ì\":\"i\",\n\t\"ỉ\":\"i\",\n\t\"ȋ\":\"i\",\n\t\"ī\":\"i\",\n\t\"į\":\"i\",\n\t\"ᶖ\":\"i\",\n\t\"ɨ\":\"i\",\n\t\"ĩ\":\"i\",\n\t\"ḭ\":\"i\",\n\t\"ꝺ\":\"d\",\n\t\"ꝼ\":\"f\",\n\t\"ᵹ\":\"g\",\n\t\"ꞃ\":\"r\",\n\t\"ꞅ\":\"s\",\n\t\"ꞇ\":\"t\",\n\t\"ꝭ\":\"is\",\n\t\"ǰ\":\"j\",\n\t\"ĵ\":\"j\",\n\t\"ʝ\":\"j\",\n\t\"ɉ\":\"j\",\n\t\"ḱ\":\"k\",\n\t\"ǩ\":\"k\",\n\t\"ķ\":\"k\",\n\t\"ⱪ\":\"k\",\n\t\"ꝃ\":\"k\",\n\t\"ḳ\":\"k\",\n\t\"ƙ\":\"k\",\n\t\"ḵ\":\"k\",\n\t\"ᶄ\":\"k\",\n\t\"ꝁ\":\"k\",\n\t\"ꝅ\":\"k\",\n\t\"ĺ\":\"l\",\n\t\"ƚ\":\"l\",\n\t\"ɬ\":\"l\",\n\t\"ľ\":\"l\",\n\t\"ļ\":\"l\",\n\t\"ḽ\":\"l\",\n\t\"ȴ\":\"l\",\n\t\"ḷ\":\"l\",\n\t\"ḹ\":\"l\",\n\t\"ⱡ\":\"l\",\n\t\"ꝉ\":\"l\",\n\t\"ḻ\":\"l\",\n\t\"ŀ\":\"l\",\n\t\"ɫ\":\"l\",\n\t\"ᶅ\":\"l\",\n\t\"ɭ\":\"l\",\n\t\"ł\":\"l\",\n\t\"lj\":\"lj\",\n\t\"ſ\":\"s\",\n\t\"ẜ\":\"s\",\n\t\"ẛ\":\"s\",\n\t\"ẝ\":\"s\",\n\t\"ḿ\":\"m\",\n\t\"ṁ\":\"m\",\n\t\"ṃ\":\"m\",\n\t\"ɱ\":\"m\",\n\t\"ᵯ\":\"m\",\n\t\"ᶆ\":\"m\",\n\t\"ń\":\"n\",\n\t\"ň\":\"n\",\n\t\"ņ\":\"n\",\n\t\"ṋ\":\"n\",\n\t\"ȵ\":\"n\",\n\t\"ṅ\":\"n\",\n\t\"ṇ\":\"n\",\n\t\"ǹ\":\"n\",\n\t\"ɲ\":\"n\",\n\t\"ṉ\":\"n\",\n\t\"ƞ\":\"n\",\n\t\"ᵰ\":\"n\",\n\t\"ᶇ\":\"n\",\n\t\"ɳ\":\"n\",\n\t\"ñ\":\"n\",\n\t\"nj\":\"nj\",\n\t\"ó\":\"o\",\n\t\"ŏ\":\"o\",\n\t\"ǒ\":\"o\",\n\t\"ô\":\"o\",\n\t\"ố\":\"o\",\n\t\"ộ\":\"o\",\n\t\"ồ\":\"o\",\n\t\"ổ\":\"o\",\n\t\"ỗ\":\"o\",\n\t\"ö\":\"o\",\n\t\"ȫ\":\"o\",\n\t\"ȯ\":\"o\",\n\t\"ȱ\":\"o\",\n\t\"ọ\":\"o\",\n\t\"ő\":\"o\",\n\t\"ȍ\":\"o\",\n\t\"ò\":\"o\",\n\t\"ỏ\":\"o\",\n\t\"ơ\":\"o\",\n\t\"ớ\":\"o\",\n\t\"ợ\":\"o\",\n\t\"ờ\":\"o\",\n\t\"ở\":\"o\",\n\t\"ỡ\":\"o\",\n\t\"ȏ\":\"o\",\n\t\"ꝋ\":\"o\",\n\t\"ꝍ\":\"o\",\n\t\"ⱺ\":\"o\",\n\t\"ō\":\"o\",\n\t\"ṓ\":\"o\",\n\t\"ṑ\":\"o\",\n\t\"ǫ\":\"o\",\n\t\"ǭ\":\"o\",\n\t\"ø\":\"o\",\n\t\"ǿ\":\"o\",\n\t\"õ\":\"o\",\n\t\"ṍ\":\"o\",\n\t\"ṏ\":\"o\",\n\t\"ȭ\":\"o\",\n\t\"ƣ\":\"oi\",\n\t\"ꝏ\":\"oo\",\n\t\"ɛ\":\"e\",\n\t\"ᶓ\":\"e\",\n\t\"ɔ\":\"o\",\n\t\"ᶗ\":\"o\",\n\t\"ȣ\":\"ou\",\n\t\"ṕ\":\"p\",\n\t\"ṗ\":\"p\",\n\t\"ꝓ\":\"p\",\n\t\"ƥ\":\"p\",\n\t\"ᵱ\":\"p\",\n\t\"ᶈ\":\"p\",\n\t\"ꝕ\":\"p\",\n\t\"ᵽ\":\"p\",\n\t\"ꝑ\":\"p\",\n\t\"ꝙ\":\"q\",\n\t\"ʠ\":\"q\",\n\t\"ɋ\":\"q\",\n\t\"ꝗ\":\"q\",\n\t\"ŕ\":\"r\",\n\t\"ř\":\"r\",\n\t\"ŗ\":\"r\",\n\t\"ṙ\":\"r\",\n\t\"ṛ\":\"r\",\n\t\"ṝ\":\"r\",\n\t\"ȑ\":\"r\",\n\t\"ɾ\":\"r\",\n\t\"ᵳ\":\"r\",\n\t\"ȓ\":\"r\",\n\t\"ṟ\":\"r\",\n\t\"ɼ\":\"r\",\n\t\"ᵲ\":\"r\",\n\t\"ᶉ\":\"r\",\n\t\"ɍ\":\"r\",\n\t\"ɽ\":\"r\",\n\t\"ↄ\":\"c\",\n\t\"ꜿ\":\"c\",\n\t\"ɘ\":\"e\",\n\t\"ɿ\":\"r\",\n\t\"ś\":\"s\",\n\t\"ṥ\":\"s\",\n\t\"š\":\"s\",\n\t\"ṧ\":\"s\",\n\t\"ş\":\"s\",\n\t\"ŝ\":\"s\",\n\t\"ș\":\"s\",\n\t\"ṡ\":\"s\",\n\t\"ṣ\":\"s\",\n\t\"ṩ\":\"s\",\n\t\"ʂ\":\"s\",\n\t\"ᵴ\":\"s\",\n\t\"ᶊ\":\"s\",\n\t\"ȿ\":\"s\",\n\t\"ɡ\":\"g\",\n\t\"ᴑ\":\"o\",\n\t\"ᴓ\":\"o\",\n\t\"ᴝ\":\"u\",\n\t\"ť\":\"t\",\n\t\"ţ\":\"t\",\n\t\"ṱ\":\"t\",\n\t\"ț\":\"t\",\n\t\"ȶ\":\"t\",\n\t\"ẗ\":\"t\",\n\t\"ⱦ\":\"t\",\n\t\"ṫ\":\"t\",\n\t\"ṭ\":\"t\",\n\t\"ƭ\":\"t\",\n\t\"ṯ\":\"t\",\n\t\"ᵵ\":\"t\",\n\t\"ƫ\":\"t\",\n\t\"ʈ\":\"t\",\n\t\"ŧ\":\"t\",\n\t\"ᵺ\":\"th\",\n\t\"ɐ\":\"a\",\n\t\"ᴂ\":\"ae\",\n\t\"ǝ\":\"e\",\n\t\"ᵷ\":\"g\",\n\t\"ɥ\":\"h\",\n\t\"ʮ\":\"h\",\n\t\"ʯ\":\"h\",\n\t\"ᴉ\":\"i\",\n\t\"ʞ\":\"k\",\n\t\"ꞁ\":\"l\",\n\t\"ɯ\":\"m\",\n\t\"ɰ\":\"m\",\n\t\"ᴔ\":\"oe\",\n\t\"ɹ\":\"r\",\n\t\"ɻ\":\"r\",\n\t\"ɺ\":\"r\",\n\t\"ⱹ\":\"r\",\n\t\"ʇ\":\"t\",\n\t\"ʌ\":\"v\",\n\t\"ʍ\":\"w\",\n\t\"ʎ\":\"y\",\n\t\"ꜩ\":\"tz\",\n\t\"ú\":\"u\",\n\t\"ŭ\":\"u\",\n\t\"ǔ\":\"u\",\n\t\"û\":\"u\",\n\t\"ṷ\":\"u\",\n\t\"ü\":\"u\",\n\t\"ǘ\":\"u\",\n\t\"ǚ\":\"u\",\n\t\"ǜ\":\"u\",\n\t\"ǖ\":\"u\",\n\t\"ṳ\":\"u\",\n\t\"ụ\":\"u\",\n\t\"ű\":\"u\",\n\t\"ȕ\":\"u\",\n\t\"ù\":\"u\",\n\t\"ủ\":\"u\",\n\t\"ư\":\"u\",\n\t\"ứ\":\"u\",\n\t\"ự\":\"u\",\n\t\"ừ\":\"u\",\n\t\"ử\":\"u\",\n\t\"ữ\":\"u\",\n\t\"ȗ\":\"u\",\n\t\"ū\":\"u\",\n\t\"ṻ\":\"u\",\n\t\"ų\":\"u\",\n\t\"ᶙ\":\"u\",\n\t\"ů\":\"u\",\n\t\"ũ\":\"u\",\n\t\"ṹ\":\"u\",\n\t\"ṵ\":\"u\",\n\t\"ᵫ\":\"ue\",\n\t\"ꝸ\":\"um\",\n\t\"ⱴ\":\"v\",\n\t\"ꝟ\":\"v\",\n\t\"ṿ\":\"v\",\n\t\"ʋ\":\"v\",\n\t\"ᶌ\":\"v\",\n\t\"ⱱ\":\"v\",\n\t\"ṽ\":\"v\",\n\t\"ꝡ\":\"vy\",\n\t\"ẃ\":\"w\",\n\t\"ŵ\":\"w\",\n\t\"ẅ\":\"w\",\n\t\"ẇ\":\"w\",\n\t\"ẉ\":\"w\",\n\t\"ẁ\":\"w\",\n\t\"ⱳ\":\"w\",\n\t\"ẘ\":\"w\",\n\t\"ẍ\":\"x\",\n\t\"ẋ\":\"x\",\n\t\"ᶍ\":\"x\",\n\t\"ý\":\"y\",\n\t\"ŷ\":\"y\",\n\t\"ÿ\":\"y\",\n\t\"ẏ\":\"y\",\n\t\"ỵ\":\"y\",\n\t\"ỳ\":\"y\",\n\t\"ƴ\":\"y\",\n\t\"ỷ\":\"y\",\n\t\"ỿ\":\"y\",\n\t\"ȳ\":\"y\",\n\t\"ẙ\":\"y\",\n\t\"ɏ\":\"y\",\n\t\"ỹ\":\"y\",\n\t\"ź\":\"z\",\n\t\"ž\":\"z\",\n\t\"ẑ\":\"z\",\n\t\"ʑ\":\"z\",\n\t\"ⱬ\":\"z\",\n\t\"ż\":\"z\",\n\t\"ẓ\":\"z\",\n\t\"ȥ\":\"z\",\n\t\"ẕ\":\"z\",\n\t\"ᵶ\":\"z\",\n\t\"ᶎ\":\"z\",\n\t\"ʐ\":\"z\",\n\t\"ƶ\":\"z\",\n\t\"ɀ\":\"z\",\n\t\"ff\":\"ff\",\n\t\"ffi\":\"ffi\",\n\t\"ffl\":\"ffl\",\n\t\"fi\":\"fi\",\n\t\"fl\":\"fl\",\n\t\"ij\":\"ij\",\n\t\"œ\":\"oe\",\n\t\"st\":\"st\",\n\t\"ₐ\":\"a\",\n\t\"ₑ\":\"e\",\n\t\"ᵢ\":\"i\",\n\t\"ⱼ\":\"j\",\n\t\"ₒ\":\"o\",\n\t\"ᵣ\":\"r\",\n\t\"ᵤ\":\"u\",\n\t\"ᵥ\":\"v\",\n\t\"ₓ\":\"x\",\n\t\"Ё\":\"YO\",\n\t\"Й\":\"I\",\n\t\"Ц\":\"TS\",\n\t\"У\":\"U\",\n\t\"К\":\"K\",\n\t\"Е\":\"E\",\n\t\"Н\":\"N\",\n\t\"Г\":\"G\",\n\t\"Ш\":\"SH\",\n\t\"Щ\":\"SCH\",\n\t\"З\":\"Z\",\n\t\"Х\":\"H\",\n\t\"Ъ\":\"'\",\n\t\"ё\":\"yo\",\n\t\"й\":\"i\",\n\t\"ц\":\"ts\",\n\t\"у\":\"u\",\n\t\"к\":\"k\",\n\t\"е\":\"e\",\n\t\"н\":\"n\",\n\t\"г\":\"g\",\n\t\"ш\":\"sh\",\n\t\"щ\":\"sch\",\n\t\"з\":\"z\",\n\t\"х\":\"h\",\n\t\"ъ\":\"'\",\n\t\"Ф\":\"F\",\n\t\"Ы\":\"I\",\n\t\"В\":\"V\",\n\t\"А\":\"a\",\n\t\"П\":\"P\",\n\t\"Р\":\"R\",\n\t\"О\":\"O\",\n\t\"Л\":\"L\",\n\t\"Д\":\"D\",\n\t\"Ж\":\"ZH\",\n\t\"Э\":\"E\",\n\t\"ф\":\"f\",\n\t\"ы\":\"i\",\n\t\"в\":\"v\",\n\t\"а\":\"a\",\n\t\"п\":\"p\",\n\t\"р\":\"r\",\n\t\"о\":\"o\",\n\t\"л\":\"l\",\n\t\"д\":\"d\",\n\t\"ж\":\"zh\",\n\t\"э\":\"e\",\n\t\"Я\":\"Ya\",\n\t\"Ч\":\"CH\",\n\t\"С\":\"S\",\n\t\"М\":\"M\",\n\t\"И\":\"I\",\n\t\"Т\":\"T\",\n\t\"Ь\":\"'\",\n\t\"Б\":\"B\",\n\t\"Ю\":\"YU\",\n\t\"я\":\"ya\",\n\t\"ч\":\"ch\",\n\t\"с\":\"s\",\n\t\"м\":\"m\",\n\t\"и\":\"i\",\n\t\"т\":\"t\",\n\t\"ь\":\"'\",\n\t\"б\":\"b\",\n\t\"ю\":\"yu\"\n};\n\nexports.transliterate = function(str) {\n\treturn str.replace(/[^A-Za-z0-9\\[\\] ]/g,function(ch) {\n\t\treturn exports.transliterationPairs[ch] || ch\n\t});\n};\n\nexports.transliterateToSafeASCII = function(str) {\n\treturn str.replace(/[^\\x00-\\x7F]/g,function(ch) {\n\t\treturn exports.transliterationPairs[ch] || \"\"\n\t});\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/utils.js": {
            "title": "$:/core/modules/utils/utils.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/utils.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar base64utf8 = require(\"$:/core/modules/utils/base64-utf8/base64-utf8.module.js\");\n\n/*\nDisplay a message, in colour if we're on a terminal\n*/\nexports.log = function(text,colour) {\n\tconsole.log($tw.node ? exports.terminalColour(colour) + text + exports.terminalColour() : text);\n};\n\nexports.terminalColour = function(colour) {\n\tif(!$tw.browser && $tw.node && process.stdout.isTTY) {\n\t\tif(colour) {\n\t\t\tvar code = exports.terminalColourLookup[colour];\n\t\t\tif(code) {\n\t\t\t\treturn \"\\x1b[\" + code + \"m\";\n\t\t\t}\n\t\t} else {\n\t\t\treturn \"\\x1b[0m\"; // Cancel colour\n\t\t}\n\t}\n\treturn \"\";\n};\n\nexports.terminalColourLookup = {\n\t\"black\": \"0;30\",\n\t\"red\": \"0;31\",\n\t\"green\": \"0;32\",\n\t\"brown/orange\": \"0;33\",\n\t\"blue\": \"0;34\",\n\t\"purple\": \"0;35\",\n\t\"cyan\": \"0;36\",\n\t\"light gray\": \"0;37\"\n};\n\n/*\nDisplay a warning, in colour if we're on a terminal\n*/\nexports.warning = function(text) {\n\texports.log(text,\"brown/orange\");\n};\n\n/*\nLog a table of name: value pairs\n*/\nexports.logTable = function(data) {\n\tif(console.table) {\n\t\tconsole.table(data);\n\t} else {\n\t\t$tw.utils.each(data,function(value,name) {\n\t\t\tconsole.log(name + \": \" + value);\n\t\t});\n\t}\n}\n\n/*\nReturn the integer represented by the str (string).\nReturn the dflt (default) parameter if str is not a base-10 number.\n*/\nexports.getInt = function(str,deflt) {\n\tvar i = parseInt(str,10);\n\treturn isNaN(i) ? deflt : i;\n}\n\n/*\nRepeatedly replaces a substring within a string. Like String.prototype.replace, but without any of the default special handling of $ sequences in the replace string\n*/\nexports.replaceString = function(text,search,replace) {\n\treturn text.replace(search,function() {\n\t\treturn replace;\n\t});\n};\n\n/*\nRepeats a string\n*/\nexports.repeat = function(str,count) {\n\tvar result = \"\";\n\tfor(var t=0;t<count;t++) {\n\t\tresult += str;\n\t}\n\treturn result;\n};\n\n/*\nTrim whitespace from the start and end of a string\nThanks to Steven Levithan, http://blog.stevenlevithan.com/archives/faster-trim-javascript\n*/\nexports.trim = function(str) {\n\tif(typeof str === \"string\") {\n\t\treturn str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n\t} else {\n\t\treturn str;\n\t}\n};\n\nexports.trimPrefix = function(str,unwanted) {\n\tif(typeof str === \"string\" && typeof unwanted === \"string\") {\n\t\tif(unwanted === \"\") {\n\t\t\treturn str.replace(/^\\s\\s*/, '');\n\t\t} else {\n\t\t\t// Safely regexp-escape the unwanted text\n\t\t\tunwanted = unwanted.replace(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\t\t\tvar regex = new RegExp('^(' + unwanted + ')+');\n\t\t\treturn str.replace(regex, '');\n\t\t}\n\t} else {\n\t\treturn str;\n\t}\n};\n\nexports.trimSuffix = function(str,unwanted) {\n\tif(typeof str === \"string\" && typeof unwanted === \"string\") {\n\t\tif(unwanted === \"\") {\n\t\t\treturn str.replace(/\\s\\s*$/, '');\n\t\t} else {\n\t\t\t// Safely regexp-escape the unwanted text\n\t\t\tunwanted = unwanted.replace(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\t\t\tvar regex = new RegExp('(' + unwanted + ')+$');\n\t\t\treturn str.replace(regex, '');\n\t\t}\n\t} else {\n\t\treturn str;\n\t}\n};\n\n/*\nConvert a string to sentence case (ie capitalise first letter)\n*/\nexports.toSentenceCase = function(str) {\n\treturn (str || \"\").replace(/^\\S/, function(c) {return c.toUpperCase();});\n}\n\n/*\nConvert a string to title case (ie capitalise each initial letter)\n*/\nexports.toTitleCase = function(str) {\n\treturn (str || \"\").replace(/(^|\\s)\\S/g, function(c) {return c.toUpperCase();});\n}\n\t\n/*\nFind the line break preceding a given position in a string\nReturns position immediately after that line break, or the start of the string\n*/\nexports.findPrecedingLineBreak = function(text,pos) {\n\tvar result = text.lastIndexOf(\"\\n\",pos - 1);\n\tif(result === -1) {\n\t\tresult = 0;\n\t} else {\n\t\tresult++;\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nFind the line break following a given position in a string\n*/\nexports.findFollowingLineBreak = function(text,pos) {\n\t// Cut to just past the following line break, or to the end of the text\n\tvar result = text.indexOf(\"\\n\",pos);\n\tif(result === -1) {\n\t\tresult = text.length;\n\t} else {\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nReturn the number of keys in an object\n*/\nexports.count = function(object) {\n\treturn Object.keys(object || {}).length;\n};\n\n/*\nDetermine whether an array-item is an object-property\n*/\nexports.hopArray = function(object,array) {\n\tfor(var i=0; i<array.length; i++) {\n\t\tif($tw.utils.hop(object,array[i])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nRemove entries from an array\n\tarray: array to modify\n\tvalue: a single value to remove, or an array of values to remove\n*/\nexports.removeArrayEntries = function(array,value) {\n\tvar t,p;\n\tif($tw.utils.isArray(value)) {\n\t\tfor(t=0; t<value.length; t++) {\n\t\t\tp = array.indexOf(value[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tarray.splice(p,1);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tp = array.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tarray.splice(p,1);\n\t\t}\n\t}\n};\n\n/*\nCheck whether any members of a hashmap are present in another hashmap\n*/\nexports.checkDependencies = function(dependencies,changes) {\n\tvar hit = false;\n\t$tw.utils.each(changes,function(change,title) {\n\t\tif($tw.utils.hop(dependencies,title)) {\n\t\t\thit = true;\n\t\t}\n\t});\n\treturn hit;\n};\n\nexports.extend = function(object /* [, src] */) {\n\t$tw.utils.each(Array.prototype.slice.call(arguments, 1), function(source) {\n\t\tif(source) {\n\t\t\tfor(var property in source) {\n\t\t\t\tobject[property] = source[property];\n\t\t\t}\n\t\t}\n\t});\n\treturn object;\n};\n\nexports.deepCopy = function(object) {\n\tvar result,t;\n\tif($tw.utils.isArray(object)) {\n\t\t// Copy arrays\n\t\tresult = object.slice(0);\n\t} else if(typeof object === \"object\") {\n\t\tresult = {};\n\t\tfor(t in object) {\n\t\t\tif(object[t] !== undefined) {\n\t\t\t\tresult[t] = $tw.utils.deepCopy(object[t]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tresult = object;\n\t}\n\treturn result;\n};\n\nexports.extendDeepCopy = function(object,extendedProperties) {\n\tvar result = $tw.utils.deepCopy(object),t;\n\tfor(t in extendedProperties) {\n\t\tif(extendedProperties[t] !== undefined) {\n\t\t\tresult[t] = $tw.utils.deepCopy(extendedProperties[t]);\n\t\t}\n\t}\n\treturn result;\n};\n\nexports.deepFreeze = function deepFreeze(object) {\n\tvar property, key;\n\tif(object) {\n\t\tObject.freeze(object);\n\t\tfor(key in object) {\n\t\t\tproperty = object[key];\n\t\t\tif($tw.utils.hop(object,key) && (typeof property === \"object\") && !Object.isFrozen(property)) {\n\t\t\t\tdeepFreeze(property);\n\t\t\t}\n\t\t}\n\t}\n};\n\nexports.slowInSlowOut = function(t) {\n\treturn (1 - ((Math.cos(t * Math.PI) + 1) / 2));\n};\n\nexports.formatDateString = function(date,template) {\n\tvar result = \"\",\n\t\tt = template,\n\t\tmatches = [\n\t\t\t[/^0hh12/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getHours12(date));\n\t\t\t}],\n\t\t\t[/^wYYYY/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getYearForWeekNo(date),4);\n\t\t\t}],\n\t\t\t[/^hh12/, function() {\n\t\t\t\treturn $tw.utils.getHours12(date);\n\t\t\t}],\n\t\t\t[/^DDth/, function() {\n\t\t\t\treturn date.getDate() + $tw.utils.getDaySuffix(date);\n\t\t\t}],\n\t\t\t[/^YYYY/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getFullYear(),4);\n\t\t\t}],\n\t\t\t[/^aYYYY/, function() {\n\t\t\t\treturn $tw.utils.pad(Math.abs(date.getFullYear()),4);\n\t\t\t}],\n\t\t\t[/^\\{era:([^,\\|}]*)\\|([^}\\|]*)\\|([^}]*)\\}/, function(match) {\n\t\t\t\tvar year = date.getFullYear();\n\t\t\t\treturn year === 0 ? match[2] : (year < 0 ? match[1] : match[3]);\n\t\t\t}],\n\t\t\t[/^0hh/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getHours());\n\t\t\t}],\n\t\t\t[/^0mm/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMinutes());\n\t\t\t}],\n\t\t\t[/^0ss/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getSeconds());\n\t\t\t}],\n\t\t\t[/^0XXX/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMilliseconds(),3);\n\t\t\t}],\n\t\t\t[/^0DD/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getDate());\n\t\t\t}],\n\t\t\t[/^0MM/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMonth()+1);\n\t\t\t}],\n\t\t\t[/^0WW/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getWeek(date));\n\t\t\t}],\n\t\t\t[/^ddd/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^mmm/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^DDD/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^MMM/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^TZD/, function() {\n\t\t\t\tvar tz = date.getTimezoneOffset(),\n\t\t\t\tatz = Math.abs(tz);\n\t\t\t\treturn (tz < 0 ? '+' : '-') + $tw.utils.pad(Math.floor(atz / 60)) + ':' + $tw.utils.pad(atz % 60);\n\t\t\t}],\n\t\t\t[/^wYY/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getYearForWeekNo(date) - 2000);\n\t\t\t}],\n\t\t\t[/^[ap]m/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toLowerCase();\n\t\t\t}],\n\t\t\t[/^hh/, function() {\n\t\t\t\treturn date.getHours();\n\t\t\t}],\n\t\t\t[/^mm/, function() {\n\t\t\t\treturn date.getMinutes();\n\t\t\t}],\n\t\t\t[/^ss/, function() {\n\t\t\t\treturn date.getSeconds();\n\t\t\t}],\n\t\t\t[/^XXX/, function() {\n\t\t\t\treturn date.getMilliseconds();\n\t\t\t}],\n\t\t\t[/^[AP]M/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toUpperCase();\n\t\t\t}],\n\t\t\t[/^DD/, function() {\n\t\t\t\treturn date.getDate();\n\t\t\t}],\n\t\t\t[/^MM/, function() {\n\t\t\t\treturn date.getMonth() + 1;\n\t\t\t}],\n\t\t\t[/^WW/, function() {\n\t\t\t\treturn $tw.utils.getWeek(date);\n\t\t\t}],\n\t\t\t[/^YY/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getFullYear() - 2000);\n\t\t\t}]\n\t\t];\n\t// If the user wants everything in UTC, shift the datestamp\n\t// Optimize for format string that essentially means\n\t// 'return raw UTC (tiddlywiki style) date string.'\n\tif(t.indexOf(\"[UTC]\") == 0 ) {\n\t\tif(t == \"[UTC]YYYY0MM0DD0hh0mm0ssXXX\")\n\t\t\treturn $tw.utils.stringifyDate(new Date());\n\t\tvar offset = date.getTimezoneOffset() ; // in minutes\n\t\tdate = new Date(date.getTime()+offset*60*1000) ;\n\t\tt = t.substr(5) ;\n\t}\n\twhile(t.length){\n\t\tvar matchString = \"\";\n\t\t$tw.utils.each(matches, function(m) {\n\t\t\tvar match = m[0].exec(t);\n\t\t\tif(match) {\n\t\t\t\tmatchString = m[1].call(null,match);\n\t\t\t\tt = t.substr(match[0].length);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif(matchString) {\n\t\t\tresult += matchString;\n\t\t} else {\n\t\t\tresult += t.charAt(0);\n\t\t\tt = t.substr(1);\n\t\t}\n\t}\n\tresult = result.replace(/\\\\(.)/g,\"$1\");\n\treturn result;\n};\n\nexports.getAmPm = function(date) {\n\treturn $tw.language.getString(\"Date/Period/\" + (date.getHours() >= 12 ? \"pm\" : \"am\"));\n};\n\nexports.getDaySuffix = function(date) {\n\treturn $tw.language.getString(\"Date/DaySuffix/\" + date.getDate());\n};\n\nexports.getWeek = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week to calculate weekNo\n\tvar x = new Date(dt.getFullYear(),0,1);\n\tvar n = Math.floor((dt.getTime() - x.getTime()) / 86400000);\n\treturn Math.floor(n / 7) + 1;\n};\n\nexports.getYearForWeekNo = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week\n\treturn dt.getFullYear();\n};\n\nexports.getHours12 = function(date) {\n\tvar h = date.getHours();\n\treturn h > 12 ? h-12 : ( h > 0 ? h : 12 );\n};\n\n/*\nConvert a date delta in milliseconds into a string representation of \"23 seconds ago\", \"27 minutes ago\" etc.\n\tdelta: delta in milliseconds\nReturns an object with these members:\n\tdescription: string describing the delta period\n\tupdatePeriod: time in millisecond until the string will be inaccurate\n*/\nexports.getRelativeDate = function(delta) {\n\tvar futurep = false;\n\tif(delta < 0) {\n\t\tdelta = -1 * delta;\n\t\tfuturep = true;\n\t}\n\tvar units = [\n\t\t{name: \"Years\",   duration:      365 * 24 * 60 * 60 * 1000},\n\t\t{name: \"Months\",  duration: (365/12) * 24 * 60 * 60 * 1000},\n\t\t{name: \"Days\",    duration:            24 * 60 * 60 * 1000},\n\t\t{name: \"Hours\",   duration:                 60 * 60 * 1000},\n\t\t{name: \"Minutes\", duration:                      60 * 1000},\n\t\t{name: \"Seconds\", duration:                           1000}\n\t];\n\tfor(var t=0; t<units.length; t++) {\n\t\tvar result = Math.floor(delta / units[t].duration);\n\t\tif(result >= 2) {\n\t\t\treturn {\n\t\t\t\tdelta: delta,\n\t\t\t\tdescription: $tw.language.getString(\n\t\t\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/\" + units[t].name,\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{period: result.toString()}\n\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t\tupdatePeriod: units[t].duration\n\t\t\t};\n\t\t}\n\t}\n\treturn {\n\t\tdelta: delta,\n\t\tdescription: $tw.language.getString(\n\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/Second\",\n\t\t\t{variables:\n\t\t\t\t{period: \"1\"}\n\t\t\t}\n\t\t),\n\t\tupdatePeriod: 1000\n\t};\n};\n\n// Convert & to \"&amp;\", < to \"&lt;\", > to \"&gt;\", \" to \"&quot;\"\nexports.htmlEncode = function(s) {\n\tif(s) {\n\t\treturn s.toString().replace(/&/mg,\"&amp;\").replace(/</mg,\"&lt;\").replace(/>/mg,\"&gt;\").replace(/\\\"/mg,\"&quot;\");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n// Converts all HTML entities to their character equivalents\nexports.entityDecode = function(s) {\n\tvar converter = String.fromCodePoint || String.fromCharCode,\n\t\te = s.substr(1,s.length-2), // Strip the & and the ;\n\t\tc;\n\tif(e.charAt(0) === \"#\") {\n\t\tif(e.charAt(1) === \"x\" || e.charAt(1) === \"X\") {\n\t\t\tc = parseInt(e.substr(2),16);\n\t\t} else {\n\t\t\tc = parseInt(e.substr(1),10);\n\t\t}\n\t\tif(isNaN(c)) {\n\t\t\treturn s;\n\t\t} else {\n\t\t\treturn converter(c);\n\t\t}\n\t} else {\n\t\tc = $tw.config.htmlEntities[e];\n\t\tif(c) {\n\t\t\treturn converter(c);\n\t\t} else {\n\t\t\treturn s; // Couldn't convert it as an entity, just return it raw\n\t\t}\n\t}\n};\n\nexports.unescapeLineBreaks = function(s) {\n\treturn s.replace(/\\\\n/mg,\"\\n\").replace(/\\\\b/mg,\" \").replace(/\\\\s/mg,\"\\\\\").replace(/\\r/mg,\"\");\n};\n\n/*\n * Returns an escape sequence for given character. Uses \\x for characters <=\n * 0xFF to save space, \\u for the rest.\n *\n * The code needs to be in sync with th code template in the compilation\n * function for \"action\" nodes.\n */\n// Copied from peg.js, thanks to David Majda\nexports.escape = function(ch) {\n\tvar charCode = ch.charCodeAt(0);\n\tif(charCode <= 0xFF) {\n\t\treturn '\\\\x' + $tw.utils.pad(charCode.toString(16).toUpperCase());\n\t} else {\n\t\treturn '\\\\u' + $tw.utils.pad(charCode.toString(16).toUpperCase(),4);\n\t}\n};\n\n// Turns a string into a legal JavaScript string\n// Copied from peg.js, thanks to David Majda\nexports.stringify = function(s, rawUnicode) {\n\t/*\n\t* ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a string\n\t* literal except for the closing quote character, backslash, carriage return,\n\t* line separator, paragraph separator, and line feed. Any character may\n\t* appear in the form of an escape sequence.\n\t*\n\t* For portability, we also escape all non-ASCII characters.\n\t*/\n\tvar regex = rawUnicode ? /[\\x00-\\x1f]/g : /[\\x00-\\x1f\\x80-\\uFFFF]/g;\n\treturn (s || \"\")\n\t\t.replace(/\\\\/g, '\\\\\\\\')            // backslash\n\t\t.replace(/\"/g, '\\\\\"')              // double quote character\n\t\t.replace(/'/g, \"\\\\'\")              // single quote character\n\t\t.replace(/\\r/g, '\\\\r')             // carriage return\n\t\t.replace(/\\n/g, '\\\\n')             // line feed\n\t\t.replace(regex, exports.escape);   // non-ASCII characters\n};\n\n// Turns a string into a legal JSON string\n// Derived from peg.js, thanks to David Majda\nexports.jsonStringify = function(s, rawUnicode) {\n\t// See http://www.json.org/\n\tvar regex = rawUnicode ? /[\\x00-\\x1f]/g : /[\\x00-\\x1f\\x80-\\uFFFF]/g;\n\treturn (s || \"\")\n\t\t.replace(/\\\\/g, '\\\\\\\\')            // backslash\n\t\t.replace(/\"/g, '\\\\\"')              // double quote character\n\t\t.replace(/\\r/g, '\\\\r')             // carriage return\n\t\t.replace(/\\n/g, '\\\\n')             // line feed\n\t\t.replace(/\\x08/g, '\\\\b')           // backspace\n\t\t.replace(/\\x0c/g, '\\\\f')           // formfeed\n\t\t.replace(/\\t/g, '\\\\t')             // tab\n\t\t.replace(regex,function(s) {\n\t\t\treturn '\\\\u' + $tw.utils.pad(s.charCodeAt(0).toString(16).toUpperCase(),4);\n\t\t}); // non-ASCII characters\n};\n\n/*\nEscape the RegExp special characters with a preceding backslash\n*/\nexports.escapeRegExp = function(s) {\n    return s.replace(/[\\-\\/\\\\\\^\\$\\*\\+\\?\\.\\(\\)\\|\\[\\]\\{\\}]/g, '\\\\$&');\n};\n\n// Checks whether a link target is external, i.e. not a tiddler title\nexports.isLinkExternal = function(to) {\n\tvar externalRegExp = /^(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/i;\n\treturn externalRegExp.test(to);\n};\n\nexports.nextTick = function(fn) {\n/*global window: false */\n\tif(typeof process === \"undefined\") {\n\t\t// Apparently it would be faster to use postMessage - http://dbaron.org/log/20100309-faster-timeouts\n\t\twindow.setTimeout(fn,4);\n\t} else {\n\t\tprocess.nextTick(fn);\n\t}\n};\n\n/*\nConvert a hyphenated CSS property name into a camel case one\n*/\nexports.unHyphenateCss = function(propName) {\n\treturn propName.replace(/-([a-z])/gi, function(match0,match1) {\n\t\treturn match1.toUpperCase();\n\t});\n};\n\n/*\nConvert a camelcase CSS property name into a dashed one (\"backgroundColor\" --> \"background-color\")\n*/\nexports.hyphenateCss = function(propName) {\n\treturn propName.replace(/([A-Z])/g, function(match0,match1) {\n\t\treturn \"-\" + match1.toLowerCase();\n\t});\n};\n\n/*\nParse a text reference of one of these forms:\n* title\n* !!field\n* title!!field\n* title##index\n* etc\nReturns an object with the following fields, all optional:\n* title: tiddler title\n* field: tiddler field name\n* index: JSON property index\n*/\nexports.parseTextReference = function(textRef) {\n\t// Separate out the title, field name and/or JSON indices\n\tvar reTextRef = /(?:(.*?)!!(.+))|(?:(.*?)##(.+))|(.*)/mg,\n\t\tmatch = reTextRef.exec(textRef),\n\t\tresult = {};\n\tif(match && reTextRef.lastIndex === textRef.length) {\n\t\t// Return the parts\n\t\tif(match[1]) {\n\t\t\tresult.title = match[1];\n\t\t}\n\t\tif(match[2]) {\n\t\t\tresult.field = match[2];\n\t\t}\n\t\tif(match[3]) {\n\t\t\tresult.title = match[3];\n\t\t}\n\t\tif(match[4]) {\n\t\t\tresult.index = match[4];\n\t\t}\n\t\tif(match[5]) {\n\t\t\tresult.title = match[5];\n\t\t}\n\t} else {\n\t\t// If we couldn't parse it\n\t\tresult.title = textRef\n\t}\n\treturn result;\n};\n\n/*\nChecks whether a string is a valid fieldname\n*/\nexports.isValidFieldName = function(name) {\n\tif(!name || typeof name !== \"string\") {\n\t\treturn false;\n\t}\n\tname = name.toLowerCase().trim();\n\tvar fieldValidatorRegEx = /^[a-z0-9\\-\\._]+$/mg;\n\treturn fieldValidatorRegEx.test(name);\n};\n\n/*\nExtract the version number from the meta tag or from the boot file\n*/\n\n// Browser version\nexports.extractVersionInfo = function() {\n\tif($tw.packageInfo) {\n\t\treturn $tw.packageInfo.version;\n\t} else {\n\t\tvar metatags = document.getElementsByTagName(\"meta\");\n\t\tfor(var t=0; t<metatags.length; t++) {\n\t\t\tvar m = metatags[t];\n\t\t\tif(m.name === \"tiddlywiki-version\") {\n\t\t\t\treturn m.content;\n\t\t\t}\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the animation duration in ms\n*/\nexports.getAnimationDuration = function() {\n\treturn parseInt($tw.wiki.getTiddlerText(\"$:/config/AnimationDuration\",\"400\"),10) || 0;\n};\n\n/*\nHash a string to a number\nDerived from http://stackoverflow.com/a/15710692\n*/\nexports.hashString = function(str) {\n\treturn str.split(\"\").reduce(function(a,b) {\n\t\ta = ((a << 5) - a) + b.charCodeAt(0);\n\t\treturn a & a;\n\t},0);\n};\n\n/*\nDecode a base64 string\n*/\nexports.base64Decode = function(string64) {\n\treturn base64utf8.base64.decode.call(base64utf8,string64);\n};\n\n/*\nEncode a string to base64\n*/\nexports.base64Encode = function(string64) {\n\treturn base64utf8.base64.encode.call(base64utf8,string64);\n};\n\n/*\nConvert a hashmap into a tiddler dictionary format sequence of name:value pairs\n*/\nexports.makeTiddlerDictionary = function(data) {\n\tvar output = [];\n\tfor(var name in data) {\n\t\toutput.push(name + \": \" + data[name]);\n\t}\n\treturn output.join(\"\\n\");\n};\n\n/*\nHigh resolution microsecond timer for profiling\n*/\nexports.timer = function(base) {\n\tvar m;\n\tif($tw.node) {\n\t\tvar r = process.hrtime();\n\t\tm =  r[0] * 1e3 + (r[1] / 1e6);\n\t} else if(window.performance) {\n\t\tm = performance.now();\n\t} else {\n\t\tm = Date.now();\n\t}\n\tif(typeof base !== \"undefined\") {\n\t\tm = m - base;\n\t}\n\treturn m;\n};\n\n/*\nConvert text and content type to a data URI\n*/\nexports.makeDataUri = function(text,type,_canonical_uri) {\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar typeInfo = $tw.config.contentTypeInfo[type] || $tw.config.contentTypeInfo[\"text/plain\"],\n\t\tisBase64 = typeInfo.encoding === \"base64\",\n\t\tparts = [];\n\tif(_canonical_uri) {\n\t\tparts.push(_canonical_uri);\n\t} else {\n\t\tparts.push(\"data:\");\n\t\tparts.push(type);\n\t\tparts.push(isBase64 ? \";base64\" : \"\");\n\t\tparts.push(\",\");\n\t\tparts.push(isBase64 ? text : encodeURIComponent(text));\t\t\n\t}\n\treturn parts.join(\"\");\n};\n\n/*\nUseful for finding out the fully escaped CSS selector equivalent to a given tag. For example:\n\n$tw.utils.tagToCssSelector(\"$:/tags/Stylesheet\") --> tc-tagged-\\%24\\%3A\\%2Ftags\\%2FStylesheet\n*/\nexports.tagToCssSelector = function(tagName) {\n\treturn \"tc-tagged-\" + encodeURIComponent(tagName).replace(/[!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^`{\\|}~,]/mg,function(c) {\n\t\treturn \"\\\\\" + c;\n\t});\n};\n\n/*\nIE does not have sign function\n*/\nexports.sign = Math.sign || function(x) {\n\tx = +x; // convert to a number\n\tif (x === 0 || isNaN(x)) {\n\t\treturn x;\n\t}\n\treturn x > 0 ? 1 : -1;\n};\n\n/*\nIE does not have an endsWith function\n*/\nexports.strEndsWith = function(str,ending,position) {\n\tif(str.endsWith) {\n\t\treturn str.endsWith(ending,position);\n\t} else {\n\t\tif (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > str.length) {\n\t\t\tposition = str.length;\n\t\t}\n\t\tposition -= ending.length;\n\t\tvar lastIndex = str.indexOf(ending, position);\n\t\treturn lastIndex !== -1 && lastIndex === position;\n\t}\n};\n\n/*\nReturn system information useful for debugging\n*/\nexports.getSystemInfo = function(str,ending,position) {\n\tvar results = [],\n\t\tsave = function(desc,value) {\n\t\t\tresults.push(desc + \": \" + value);\n\t\t};\n\tif($tw.browser) {\n\t\tsave(\"User Agent\",navigator.userAgent);\n\t\tsave(\"Online Status\",window.navigator.onLine);\n\t}\n\tif($tw.node) {\n\t\tsave(\"Node Version\",process.version);\n\t}\n\treturn results.join(\"\\n\");\n};\n\nexports.parseNumber = function(str) {\n\treturn parseFloat(str) || 0;\n};\n\nexports.parseInt = function(str) {\n\treturn parseInt(str,10) || 0;\n};\n\nexports.stringifyNumber = function(num) {\n\treturn num + \"\";\n};\n\nexports.makeCompareFunction = function(type,options) {\n\toptions = options || {};\n\tvar gt = options.invert ? -1 : +1,\n\t\tlt = options.invert ? +1 : -1,\n\t\tcompare = function(a,b) {\n\t\t\tif(a > b) {\n\t\t\t\treturn gt ;\n\t\t\t} else if(a < b) {\n\t\t\t\treturn lt;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t},\n\t\ttypes = {\n\t\t\t\"number\": function(a,b) {\n\t\t\t\treturn compare($tw.utils.parseNumber(a),$tw.utils.parseNumber(b));\n\t\t\t},\n\t\t\t\"integer\": function(a,b) {\n\t\t\t\treturn compare($tw.utils.parseInt(a),$tw.utils.parseInt(b));\n\t\t\t},\n\t\t\t\"string\": function(a,b) {\n\t\t\t\treturn compare(\"\" + a,\"\" +b);\n\t\t\t},\n\t\t\t\"date\": function(a,b) {\n\t\t\t\tvar dateA = $tw.utils.parseDate(a),\n\t\t\t\t\tdateB = $tw.utils.parseDate(b);\n\t\t\t\tif(!isFinite(dateA)) {\n\t\t\t\t\tdateA = new Date(0);\n\t\t\t\t}\n\t\t\t\tif(!isFinite(dateB)) {\n\t\t\t\t\tdateB = new Date(0);\n\t\t\t\t}\n\t\t\t\treturn compare(dateA,dateB);\n\t\t\t},\n\t\t\t\"version\": function(a,b) {\n\t\t\t\treturn $tw.utils.compareVersions(a,b);\n\t\t\t}\n\t\t};\n\treturn (types[type] || types[options.defaultType] || types.number);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/widgets/action-confirm.js": {
            "title": "$:/core/modules/widgets/action-confirm.js",
            "text": "/*\\\n\ntitle: $:/core/modules/widgets/action-confirm.js\ntype: application/javascript\nmodule-type: widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ConfirmWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nConfirmWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nConfirmWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.parentDomNode = parent;\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nConfirmWidget.prototype.execute = function() {\n\tthis.message = this.getAttribute(\"$message\",$tw.language.getString(\"ConfirmAction\"));\n\tthis.prompt = (this.getAttribute(\"$prompt\",\"yes\") == \"no\" ? false : true);\n\tthis.makeChildWidgets();\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nConfirmWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$message\"] || changedAttributes[\"$prompt\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nConfirmWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar invokeActions = true,\n\t\thandled = true;\n\tif(this.prompt) {\n\t\tinvokeActions = confirm(this.message);\n\t}\n\tif(invokeActions) {\n\t\thandled = this.invokeActions(triggeringWidget,event);\n\t}\n\treturn handled;\n};\n\nConfirmWidget.prototype.allowActionPropagation = function() {\n\treturn false;\n};\n\nexports[\"action-confirm\"] = ConfirmWidget;\n\n})();",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-createtiddler.js": {
            "title": "$:/core/modules/widgets/action-createtiddler.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-createtiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to create a new tiddler with a unique name and specified fields.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw:false, require:false, exports:false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CreateTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCreateTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCreateTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nCreateTiddlerWidget.prototype.execute = function() {\n\tthis.actionBaseTitle = this.getAttribute(\"$basetitle\");\n\tthis.hasBase = !!this.actionBaseTitle;\n\tthis.actionSaveTitle = this.getAttribute(\"$savetitle\");\n\tthis.actionSaveDraftTitle = this.getAttribute(\"$savedrafttitle\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n\t//Following params are new since 5.1.22\n\tthis.actionTemplate = this.getAttribute(\"$template\");\n\tthis.useTemplate = !!this.actionTemplate;\n\tthis.actionOverwrite = this.getAttribute(\"$overwrite\",\"no\");\n\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nCreateTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nCreateTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar title = this.wiki.getTiddlerText(\"$:/language/DefaultNewTiddlerTitle\"), // Get the initial new-tiddler title\n\t\tfields = {},\n\t\tcreationFields,\n\t\tmodificationFields;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tfields[name] = attribute;\n\t\t}\n\t});\n\tif(this.actionTimestamp) {\n\t\tcreationFields = this.wiki.getCreationFields();\n\t\tmodificationFields = this.wiki.getModificationFields();\n\t}\n\tif(this.hasBase && this.actionOverwrite === \"no\") {\n\t\ttitle = this.wiki.generateNewTitle(this.actionBaseTitle);\n\t} else if (this.hasBase && this.actionOverwrite === \"yes\") {\n\t\ttitle = this.actionBaseTitle\n\t}\n\t// NO $basetitle BUT $template parameter is available\n\t// the title MUST be unique, otherwise the template would be overwritten\n\tif (!this.hasBase && this.useTemplate) {\n\t\ttitle = this.wiki.generateNewTitle(this.actionTemplate);\n\t} else if (!this.hasBase && !this.useTemplate) {\n\t\t// If NO $basetitle AND NO $template use initial title\n\t\t// DON'T overwrite any stuff\n\t\ttitle = this.wiki.generateNewTitle(title);\n\t}\n\tvar templateTiddler = this.wiki.getTiddler(this.actionTemplate) || {};\n\tvar tiddler = this.wiki.addTiddler(new $tw.Tiddler(templateTiddler.fields,creationFields,fields,modificationFields,{title: title}));\n\tif(this.actionSaveTitle) {\n\t\tthis.wiki.setTextReference(this.actionSaveTitle,title,this.getVariable(\"currentTiddler\"));\n\t}\n\tif(this.actionSaveDraftTitle) {\n\t\tthis.wiki.setTextReference(this.actionSaveDraftTitle,this.wiki.generateDraftTitle(title),this.getVariable(\"currentTiddler\"));\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-createtiddler\"] = CreateTiddlerWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-deletefield.js": {
            "title": "$:/core/modules/widgets/action-deletefield.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-deletefield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete fields of a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\ttiddler = this.wiki.getTiddler(self.actionTiddler),\n\t\tremoveFields = {},\n\t\thasChanged = false;\n\tif(this.actionField && tiddler) {\n\t\tremoveFields[this.actionField] = undefined;\n\t\tif(this.actionField in tiddler.fields) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(tiddler) {\n\t\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\t\tif(name.charAt(0) !== \"$\" && name !== \"title\") {\n\t\t\t\tremoveFields[name] = undefined;\n\t\t\t\thasChanged = true;\n\t\t\t}\n\t\t});\n\t\tif(hasChanged) {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,removeFields,this.wiki.getModificationFields()));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletefield\"] = DeleteFieldWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-deletetiddler.js": {
            "title": "$:/core/modules/widgets/action-deletetiddler.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-deletetiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteTiddlerWidget.prototype.execute = function() {\n\tthis.actionFilter = this.getAttribute(\"$filter\");\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$filter\"] || changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar tiddlers = [];\n\tif(this.actionFilter) {\n\t\ttiddlers = this.wiki.filterTiddlers(this.actionFilter,this);\n\t}\n\tif(this.actionTiddler) {\n\t\ttiddlers.push(this.actionTiddler);\n\t}\n\tfor(var t=0; t<tiddlers.length; t++) {\n\t\tthis.wiki.deleteTiddler(tiddlers[t]);\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletetiddler\"] = DeleteTiddlerWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-listops.js": {
            "title": "$:/core/modules/widgets/action-listops.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-listops.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to apply list operations to any tiddler field (defaults to the 'list' field of the current tiddler)\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar ActionListopsWidget = function(parseTreeNode, options) {\n\tthis.initialise(parseTreeNode, options);\n};\n/**\n * Inherit from the base widget class\n */\nActionListopsWidget.prototype = new Widget();\n/**\n * Render this widget into the DOM\n */\nActionListopsWidget.prototype.render = function(parent, nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n/**\n * Compute the internal state of the widget\n */\nActionListopsWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.target = this.getAttribute(\"$tiddler\", this.getVariable(\n\t\t\"currentTiddler\"));\n\tthis.filter = this.getAttribute(\"$filter\");\n\tthis.subfilter = this.getAttribute(\"$subfilter\");\n\tthis.listField = this.getAttribute(\"$field\", \"list\");\n\tthis.listIndex = this.getAttribute(\"$index\");\n\tthis.filtertags = this.getAttribute(\"$tags\");\n};\n/**\n * \tRefresh the widget by ensuring our attributes are up to date\n */\nActionListopsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.$tiddler || changedAttributes.$filter ||\n\t\tchangedAttributes.$subfilter || changedAttributes.$field ||\n\t\tchangedAttributes.$index || changedAttributes.$tags) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n/**\n * \tInvoke the action associated with this widget\n */\nActionListopsWidget.prototype.invokeAction = function(triggeringWidget,\n\tevent) {\n\t//Apply the specified filters to the lists\n\tvar field = this.listField,\n\t\tindex,\n\t\ttype = \"!!\",\n\t\tlist = this.listField;\n\tif(this.listIndex) {\n\t\tfield = undefined;\n\t\tindex = this.listIndex;\n\t\ttype = \"##\";\n\t\tlist = this.listIndex;\n\t}\n\tif(this.filter) {\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(this.filter, this)));\n\t}\n\tif(this.subfilter) {\n\t\tvar subfilter = \"[list[\" + this.target + type + list + \"]] \" + this.subfilter;\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(subfilter, this)));\n\t}\n\tif(this.filtertags) {\n\t\tvar tiddler = this.wiki.getTiddler(this.target),\n\t\t\toldtags = tiddler ? (tiddler.fields.tags || []).slice(0) : [],\n\t\t\ttagfilter = \"[list[\" + this.target + \"!!tags]] \" + this.filtertags,\n\t\t\tnewtags = this.wiki.filterTiddlers(tagfilter,this);\n\t\tif($tw.utils.stringifyList(oldtags.sort()) !== $tw.utils.stringifyList(newtags.sort())) {\n\t\t\tthis.wiki.setText(this.target,\"tags\",undefined,$tw.utils.stringifyList(newtags));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-listops\"] = ActionListopsWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-log.js": {
            "title": "$:/core/modules/widgets/action-log.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-log.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to log debug messages\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LogWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nLogWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLogWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\nLogWidget.prototype.execute = function(){\n\tthis.message = this.getAttribute(\"$$message\",\"debug\");\n\tthis.logAll = this.getAttribute(\"$$all\",\"no\") === \"yes\" ? true : false;\n\tthis.filter = this.getAttribute(\"$$filter\");\n}\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nLogWidget.prototype.refresh = function(changedTiddlers) {\n\tthis.refreshSelf();\n\treturn true;\n};\n\n/*\nInvoke the action associated with this widget\n*/\nLogWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tthis.log();\n\treturn true; // Action was invoked\n};\n\nLogWidget.prototype.log = function() {\n\tvar data = {},\n\t\tdataCount,\n\t\tallVars = {},\n\t\tfilteredVars;\n\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.substring(0,2) !== \"$$\") {\n\t\t\tdata[name] = attribute;\n\t\t}\t\t\n\t});\n\n\tfor(var v in this.variables) {\n\t\tallVars[v] = this.getVariable(v,{defaultValue:\"\"});\n\t}\t\n\tif(this.filter) {\n\t\tfilteredVars = this.wiki.compileFilter(this.filter).call(this.wiki,this.wiki.makeTiddlerIterator(allVars));\n\t\t$tw.utils.each(filteredVars,function(name) {\n\t\t\tdata[name] = allVars[name];\n\t\t});\t\t\n\t}\n\tdataCount = $tw.utils.count(data);\n\n\tconsole.group(this.message);\n\tif(dataCount > 0) {\n\t\t$tw.utils.logTable(data);\n\t}\n\tif(this.logAll || !dataCount) {\n\t\tconsole.groupCollapsed(\"All variables\");\n\t\t$tw.utils.logTable(allVars);\n\t\tconsole.groupEnd();\n\t}\n\tconsole.groupEnd();\n}\n\nexports[\"action-log\"] = LogWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-navigate.js": {
            "title": "$:/core/modules/widgets/action-navigate.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-navigate.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to navigate to a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigateWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigateWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigateWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigateWidget.prototype.execute = function() {\n\tthis.actionTo = this.getAttribute(\"$to\");\n\tthis.actionScroll = this.getAttribute(\"$scroll\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nNavigateWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$to\"] || changedAttributes[\"$scroll\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nNavigateWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tevent = event || {};\n\tvar bounds = triggeringWidget && triggeringWidget.getBoundingClientRect && triggeringWidget.getBoundingClientRect(),\n\t\tsuppressNavigation = event.metaKey || event.ctrlKey || (event.button === 1);\n\tif(this.actionScroll === \"yes\") {\n\t\tsuppressNavigation = false;\n\t} else if(this.actionScroll === \"no\") {\n\t\tsuppressNavigation = true;\n\t}\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.actionTo === undefined ? this.getVariable(\"currentTiddler\") : this.actionTo,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: triggeringWidget,\n\t\tnavigateFromClientRect: bounds && { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: suppressNavigation\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-navigate\"] = NavigateWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-popup.js": {
            "title": "$:/core/modules/widgets/action-popup.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-popup.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to trigger a popup.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ActionPopupWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nActionPopupWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nActionPopupWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nActionPopupWidget.prototype.execute = function() {\n\tthis.actionState = this.getAttribute(\"$state\");\n\tthis.actionCoords = this.getAttribute(\"$coords\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nActionPopupWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$state\"] || changedAttributes[\"$coords\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nActionPopupWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\t// Trigger the popup\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/,\n\t\tmatch = popupLocationRegExp.exec(this.actionCoords || \"\");\n\tif(match) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: null,\n\t\t\tdomNodeRect: {\n\t\t\t\tleft: parseFloat(match[1]),\n\t\t\t\ttop: parseFloat(match[2]),\n\t\t\t\twidth: parseFloat(match[3]),\n\t\t\t\theight: parseFloat(match[4])\n\t\t\t},\n\t\t\ttitle: this.actionState,\n\t\t\twiki: this.wiki\n\t\t});\n\t} else {\n\t\t$tw.popup.cancel(0);\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-popup\"] = ActionPopupWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-sendmessage.js": {
            "title": "$:/core/modules/widgets/action-sendmessage.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-sendmessage.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to send a message\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SendMessageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSendMessageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSendMessageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSendMessageWidget.prototype.execute = function() {\n\tthis.actionMessage = this.getAttribute(\"$message\");\n\tthis.actionParam = this.getAttribute(\"$param\");\n\tthis.actionName = this.getAttribute(\"$name\");\n\tthis.actionValue = this.getAttribute(\"$value\",\"\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSendMessageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSendMessageWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\t// Get the string parameter\n\tvar param = this.actionParam;\n\t// Assemble the attributes as a hashmap\n\tvar paramObject = Object.create(null);\n\tvar count = 0;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparamObject[name] = attribute;\n\t\t\tcount++;\n\t\t}\n\t});\n\t// Add name/value pair if present\n\tif(this.actionName) {\n\t\tparamObject[this.actionName] = this.actionValue;\n\t}\n\t// Dispatch the message\n\tthis.dispatchEvent({\n\t\ttype: this.actionMessage,\n\t\tparam: param,\n\t\tparamObject: paramObject,\n\t\ttiddlerTitle: this.getVariable(\"currentTiddler\"),\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tevent: event\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-sendmessage\"] = SendMessageWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-setfield.js": {
            "title": "$:/core/modules/widgets/action-setfield.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-setfield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to set a single field or index on a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n\tthis.actionIndex = this.getAttribute(\"$index\");\n\tthis.actionValue = this.getAttribute(\"$value\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSetFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"] || changedAttributes[\"$field\"] || changedAttributes[\"$index\"] || changedAttributes[\"$value\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSetFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\toptions = {};\n\toptions.suppressTimestamp = !this.actionTimestamp;\n\tif((typeof this.actionField == \"string\") || (typeof this.actionIndex == \"string\")  || (typeof this.actionValue == \"string\")) {\n\t\tthis.wiki.setText(this.actionTiddler,this.actionField,this.actionIndex,this.actionValue,options);\n\t}\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tself.wiki.setText(self.actionTiddler,name,undefined,attribute,options);\n\t\t}\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-setfield\"] = SetFieldWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/browse.js": {
            "title": "$:/core/modules/widgets/browse.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/browse.js\ntype: application/javascript\nmodule-type: widget\n\nBrowse widget for browsing for files to import\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar BrowseWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nBrowseWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nBrowseWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"file\");\n\tif(this.browseMultiple) {\n\t\tdomNode.setAttribute(\"multiple\",\"multiple\");\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\t// Nw.js supports \"nwsaveas\" to force a \"save as\" dialogue that allows a new or existing file to be selected\n\tif(this.nwsaveas) {\n\t\tdomNode.setAttribute(\"nwsaveas\",this.nwsaveas);\n\t}\n\tif(this.accept) {\n\t\tdomNode.setAttribute(\"accept\",this.accept);\n\t}\n\t// Nw.js supports \"webkitdirectory\" and \"nwdirectory\" to allow a directory to be selected\n\tif(this.webkitdirectory) {\n\t\tdomNode.setAttribute(\"webkitdirectory\",this.webkitdirectory);\n\t}\n\tif(this.nwdirectory) {\n\t\tdomNode.setAttribute(\"nwdirectory\",this.nwdirectory);\n\t}\n\t// Add a click event handler\n\tdomNode.addEventListener(\"change\",function (event) {\n\t\tif(self.message) {\n\t\t\tself.dispatchEvent({type: self.message, param: self.param, files: event.target.files});\n\t\t} else {\n\t\t\tself.wiki.readFiles(event.target.files,{\n\t\t\t\tcallback: function(tiddlerFieldsArray) {\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t\t\t},\n\t\t\t\tdeserializer: self.deserializer\n\t\t\t});\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nBrowseWidget.prototype.execute = function() {\n\tthis.browseMultiple = this.getAttribute(\"multiple\");\n\tthis.deserializer = this.getAttribute(\"deserializer\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.nwsaveas = this.getAttribute(\"nwsaveas\");\n\tthis.accept = this.getAttribute(\"accept\");\n\tthis.webkitdirectory = this.getAttribute(\"webkitdirectory\");\n\tthis.nwdirectory = this.getAttribute(\"nwdirectory\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nBrowseWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.browse = BrowseWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/button.js": {
            "title": "$:/core/modules/widgets/button.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/button.js\ntype: application/javascript\nmodule-type: widget\n\nButton widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ButtonWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nButtonWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nButtonWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this,\n\t\ttag = \"button\",\n\t\tdomNode;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tif(this.buttonTag && $tw.config.htmlUnsafeElements.indexOf(this.buttonTag) === -1) {\n\t\ttag = this.buttonTag;\n\t}\n\tdomNode = this.document.createElement(tag);\n\tthis.domNode = domNode;\n\t// Assign classes\n\tvar classes = this[\"class\"].split(\" \") || [],\n\t\tisPoppedUp = (this.popup || this.popupTitle) && this.isPoppedUp();\n\tif(this.selectedClass) {\n\t\tif((this.set || this.setTitle) && this.setTo && this.isSelected()) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t\tif(isPoppedUp) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t}\n\tif(isPoppedUp) {\n\t\t$tw.utils.pushTop(classes,\"tc-popup-handle\");\n\t}\n\tdomNode.className = classes.join(\" \");\n\t// Assign other attributes\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Set the tabindex\n\tif(this.tabIndex) {\n\t\tdomNode.setAttribute(\"tabindex\",this.tabIndex);\n\t}\n\tif(this.isDisabled === \"yes\") {\n\t\tdomNode.setAttribute(\"disabled\",true);\n\t}\n\t// Add a click event handler\n\tdomNode.addEventListener(\"click\",function (event) {\n\t\tvar handled = false;\n\t\tif(self.invokeActions(self,event)) {\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.to) {\n\t\t\tself.navigateTo(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.message) {\n\t\t\tself.dispatchMessage(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.popup || self.popupTitle) {\n\t\t\tself.triggerPopup(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.set || self.setTitle) {\n\t\t\tself.setTiddler();\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.actions) {\n\t\t\tvar modifierKey = $tw.keyboardManager.getEventModifierKeyDescriptor(event);\n\t\t\tself.invokeActionString(self.actions,self,event,{modifier: modifierKey});\n\t\t}\n\t\tif(handled) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\treturn handled;\n\t},false);\n\t// Make it draggable if required\n\tif(this.dragTiddler || this.dragFilter) {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.dragTiddler;},\n\t\t\tdragFilterFn: function() {return self.dragFilter;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nWe don't allow actions to propagate because we trigger actions ourselves\n*/\nButtonWidget.prototype.allowActionPropagation = function() {\n\treturn false;\n};\n\nButtonWidget.prototype.getBoundingClientRect = function() {\n\treturn this.domNodes[0].getBoundingClientRect();\n};\n\nButtonWidget.prototype.isSelected = function() {\n    return this.setTitle ? (this.setField ? this.wiki.getTiddler(this.setTitle).getFieldString(this.setField) === this.setTo :\n\t\t(this.setIndex ? this.wiki.extractTiddlerDataItem(this.setTitle,this.setIndex) === this.setTo :\n\t\t\tthis.wiki.getTiddlerText(this.setTitle))) || this.defaultSetValue || this.getVariable(\"currentTiddler\") :\n\t\tthis.wiki.getTextReference(this.set,this.defaultSetValue,this.getVariable(\"currentTiddler\")) === this.setTo;\n};\n\nButtonWidget.prototype.isPoppedUp = function() {\n\tvar tiddler = this.popupTitle ? this.wiki.getTiddler(this.popupTitle) : this.wiki.getTiddler(this.popup);\n\tvar result = tiddler && tiddler.fields.text ? $tw.popup.readPopupState(tiddler.fields.text) : false;\n\treturn result;\n};\n\nButtonWidget.prototype.navigateTo = function(event) {\n\tvar bounds = this.getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1),\n\t\tevent: event\n\t});\n};\n\nButtonWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\"), event: event});\n};\n\nButtonWidget.prototype.triggerPopup = function(event) {\n\tif(this.popupTitle) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNodes[0],\n\t\t\ttitle: this.popupTitle,\n\t\t\twiki: this.wiki,\n\t\t\tnoStateReference: true\n\t\t});\n\t} else {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNodes[0],\n\t\t\ttitle: this.popup,\n\t\t\twiki: this.wiki\n\t\t});\n\t}\n};\n\nButtonWidget.prototype.setTiddler = function() {\n\tif(this.setTitle) {\n\t\tthis.setField ? this.wiki.setText(this.setTitle,this.setField,undefined,this.setTo) :\n\t\t\t\t(this.setIndex ? this.wiki.setText(this.setTitle,undefined,this.setIndex,this.setTo) :\n\t\t\t\tthis.wiki.setText(this.setTitle,\"text\",undefined,this.setTo));\n\t} else {\n\t\tthis.wiki.setTextReference(this.set,this.setTo,this.getVariable(\"currentTiddler\"));\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nButtonWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\");\n\tthis.to = this.getAttribute(\"to\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.set = this.getAttribute(\"set\");\n\tthis.setTo = this.getAttribute(\"setTo\");\n\tthis.popup = this.getAttribute(\"popup\");\n\tthis.hover = this.getAttribute(\"hover\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.style = this.getAttribute(\"style\");\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tthis.selectedClass = this.getAttribute(\"selectedClass\");\n\tthis.defaultSetValue = this.getAttribute(\"default\",\"\");\n\tthis.buttonTag = this.getAttribute(\"tag\");\n\tthis.dragTiddler = this.getAttribute(\"dragTiddler\");\n\tthis.dragFilter = this.getAttribute(\"dragFilter\");\n\tthis.setTitle = this.getAttribute(\"setTitle\");\n\tthis.setField = this.getAttribute(\"setField\");\n\tthis.setIndex = this.getAttribute(\"setIndex\");\n\tthis.popupTitle = this.getAttribute(\"popupTitle\");\n\tthis.tabIndex = this.getAttribute(\"tabindex\");\n\tthis.isDisabled = this.getAttribute(\"disabled\",\"no\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\nButtonWidget.prototype.updateDomNodeClasses = function() {\n\tvar domNodeClasses = this.domNode.className.split(\" \"),\n\t\toldClasses = this.class.split(\" \"),\n\t\tnewClasses;\t\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tnewClasses = this.class.split(\" \");\n\t//Remove classes assigned from the old value of class attribute\n\t$tw.utils.each(oldClasses,function(oldClass){\n\t\tvar i = domNodeClasses.indexOf(oldClass);\n\t\tif(i !== -1) {\n\t\t\tdomNodeClasses.splice(i,1);\n\t\t}\n\t});\n\t//Add new classes from updated class attribute.\n\t$tw.utils.pushTop(domNodeClasses,newClasses);\n\tthis.domNode.className = domNodeClasses.join(\" \");\n}\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nButtonWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.actions || changedAttributes.to || changedAttributes.message || changedAttributes.param || changedAttributes.set || changedAttributes.setTo || changedAttributes.popup || changedAttributes.hover || changedAttributes.selectedClass || changedAttributes.style || changedAttributes.dragFilter || changedAttributes.dragTiddler || (this.set && changedTiddlers[this.set]) || (this.popup && changedTiddlers[this.popup]) || (this.popupTitle && changedTiddlers[this.popupTitle]) || changedAttributes.setTitle || changedAttributes.setField || changedAttributes.setIndex || changedAttributes.popupTitle || changedAttributes.disabled) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedAttributes[\"class\"]) {\n\t\tthis.updateDomNodeClasses();\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.button = ButtonWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/checkbox.js": {
            "title": "$:/core/modules/widgets/checkbox.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/checkbox.js\ntype: application/javascript\nmodule-type: widget\n\nCheckbox widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CheckboxWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCheckboxWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCheckboxWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",this.checkboxClass);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"checkbox\");\n\tif(this.getValue()) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tif(this.isDisabled === \"yes\") {\n\t\tthis.inputDomNode.setAttribute(\"disabled\",true);\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nCheckboxWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.checkboxTitle);\n\tif(tiddler) {\n\t\tif(this.checkboxTag) {\n\t\t\tif(this.checkboxInvertTag) {\n\t\t\t\treturn !tiddler.hasTag(this.checkboxTag);\n\t\t\t} else {\n\t\t\t\treturn tiddler.hasTag(this.checkboxTag);\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tvar value;\n\t\t\tif($tw.utils.hop(tiddler.fields,this.checkboxField)) {\n\t\t\t\tvalue = tiddler.fields[this.checkboxField] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = this.checkboxDefault || \"\";\n\t\t\t}\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxIndex) {\n\t\t\tvar value = this.wiki.extractTiddlerDataItem(tiddler,this.checkboxIndex,this.checkboxDefault || \"\");\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif(this.checkboxTag) {\n\t\t\treturn false;\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tif(this.checkboxDefault === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(this.checkboxDefault === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\nCheckboxWidget.prototype.handleChangeEvent = function(event) {\n\tvar checked = this.inputDomNode.checked,\n\t\ttiddler = this.wiki.getTiddler(this.checkboxTitle),\n\t\tfallbackFields = {text: \"\"},\n\t\tnewFields = {title: this.checkboxTitle},\n\t\thasChanged = false,\n\t\ttagCheck = false,\n\t\thasTag = tiddler && tiddler.hasTag(this.checkboxTag),\n\t\tvalue = checked ? this.checkboxChecked : this.checkboxUnchecked;\n\tif(this.checkboxTag && this.checkboxInvertTag === \"yes\") {\n\t\ttagCheck = hasTag === checked;\n\t} else {\n\t\ttagCheck = hasTag !== checked;\n\t}\n\t// Set the tag if specified\n\tif(this.checkboxTag && (!tiddler || tagCheck)) {\n\t\tnewFields.tags = tiddler ? (tiddler.fields.tags || []).slice(0) : [];\n\t\tvar pos = newFields.tags.indexOf(this.checkboxTag);\n\t\tif(pos !== -1) {\n\t\t\tnewFields.tags.splice(pos,1);\n\t\t}\n\t\tif(this.checkboxInvertTag === \"yes\" && !checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t} else if(this.checkboxInvertTag !== \"yes\" && checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t}\n\t\thasChanged = true;\n\t}\n\t// Set the field if specified\n\tif(this.checkboxField) {\n\t\tif(!tiddler || tiddler.fields[this.checkboxField] !== value) {\n\t\t\tnewFields[this.checkboxField] = value;\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\t// Set the index if specified\n\tif(this.checkboxIndex) {\n\t\tvar indexValue = this.wiki.extractTiddlerDataItem(this.checkboxTitle,this.checkboxIndex);\n\t\tif(!tiddler || indexValue !== value) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(hasChanged) {\n\t\tif(this.checkboxIndex) {\n\t\t\tthis.wiki.setText(this.checkboxTitle,\"\",this.checkboxIndex,value);\n\t\t} else {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),fallbackFields,tiddler,newFields,this.wiki.getModificationFields()));\n\t\t}\n\t}\n\t// Trigger actions\n\tif(this.checkboxActions) {\n\t\tthis.invokeActionString(this.checkboxActions,this,event);\n\t}\n\tif(this.checkboxCheckActions && checked) {\n\t\tthis.invokeActionString(this.checkboxCheckActions,this,event);\n\t}\n\tif(this.checkboxUncheckActions && !checked) {\n\t\tthis.invokeActionString(this.checkboxUncheckActions,this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCheckboxWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.checkboxActions = this.getAttribute(\"actions\");\n\tthis.checkboxCheckActions = this.getAttribute(\"checkactions\");\n\tthis.checkboxUncheckActions = this.getAttribute(\"uncheckactions\");\n\tthis.checkboxTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.checkboxTag = this.getAttribute(\"tag\");\n\tthis.checkboxField = this.getAttribute(\"field\");\n\tthis.checkboxIndex = this.getAttribute(\"index\");\n\tthis.checkboxChecked = this.getAttribute(\"checked\");\n\tthis.checkboxUnchecked = this.getAttribute(\"unchecked\");\n\tthis.checkboxDefault = this.getAttribute(\"default\");\n\tthis.checkboxClass = this.getAttribute(\"class\",\"\");\n\tthis.checkboxInvertTag = this.getAttribute(\"invertTag\",\"\");\n\tthis.isDisabled = this.getAttribute(\"disabled\",\"no\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCheckboxWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.tag || changedAttributes.invertTag || changedAttributes.field || changedAttributes.index || changedAttributes.checked || changedAttributes.unchecked || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.disabled) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.checkboxTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue();\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.checkbox = CheckboxWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/codeblock.js": {
            "title": "$:/core/modules/widgets/codeblock.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/codeblock.js\ntype: application/javascript\nmodule-type: widget\n\nCode block node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CodeBlockWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCodeBlockWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCodeBlockWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar codeNode = this.document.createElement(\"code\"),\n\t\tdomNode = this.document.createElement(\"pre\");\n\tcodeNode.appendChild(this.document.createTextNode(this.getAttribute(\"code\")));\n\tdomNode.appendChild(codeNode);\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n\tif(this.postRender) {\n\t\tthis.postRender();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCodeBlockWidget.prototype.execute = function() {\n\tthis.language = this.getAttribute(\"language\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCodeBlockWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.codeblock = CodeBlockWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/count.js": {
            "title": "$:/core/modules/widgets/count.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/count.js\ntype: application/javascript\nmodule-type: widget\n\nCount widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CountWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCountWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCountWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.currentCount);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nCountWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Execute the filter\n\tif(this.filter) {\n\t\tthis.currentCount = this.wiki.filterTiddlers(this.filter,this).length;\n\t} else {\n\t\tthis.currentCount = \"0\";\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCountWidget.prototype.refresh = function(changedTiddlers) {\n\t// Re-execute the filter to get the count\n\tthis.computeAttributes();\n\tvar oldCount = this.currentCount;\n\tthis.execute();\n\tif(this.currentCount !== oldCount) {\n\t\t// Regenerate and rerender the widget and replace the existing DOM node\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n\n};\n\nexports.count = CountWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/diff-text.js": {
            "title": "$:/core/modules/widgets/diff-text.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/diff-text.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display a diff between two texts\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget,\n\tdmp = require(\"$:/core/modules/utils/diff-match-patch/diff_match_patch.js\");\n\nvar DiffTextWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDiffTextWidget.prototype = new Widget();\n\nDiffTextWidget.prototype.invisibleCharacters = {\n\t\"\\n\": \"↩︎\\n\",\n\t\"\\r\": \"⇠\",\n\t\"\\t\": \"⇥\\t\"\n};\n\n/*\nRender this widget into the DOM\n*/\nDiffTextWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create the diff\n\tvar dmpObject = new dmp.diff_match_patch(),\n\t\tdiffs = dmpObject.diff_main(this.getAttribute(\"source\"),this.getAttribute(\"dest\"));\n\t// Apply required cleanup\n\tswitch(this.getAttribute(\"cleanup\",\"semantic\")) {\n\t\tcase \"none\":\n\t\t\t// No cleanup\n\t\t\tbreak;\n\t\tcase \"efficiency\":\n\t\t\tdmpObject.diff_cleanupEfficiency(diffs);\n\t\t\tbreak;\n\t\tdefault: // case \"semantic\"\n\t\t\tdmpObject.diff_cleanupSemantic(diffs);\n\t\t\tbreak;\n\t}\n\t// Create the elements\n\tvar domContainer = this.document.createElement(\"div\"), \n\t\tdomDiff = this.createDiffDom(diffs);\n\tparent.insertBefore(domContainer,nextSibling);\n\t// Set variables\n\tthis.setVariable(\"diff-count\",diffs.reduce(function(acc,diff) {\n\t\tif(diff[0] !== dmp.DIFF_EQUAL) {\n\t\t\tacc++;\n\t\t}\n\t\treturn acc;\n\t},0).toString());\n\t// Render child widgets\n\tthis.renderChildren(domContainer,null);\n\t// Render the diff\n\tdomContainer.appendChild(domDiff);\n\t// Save our container\n\tthis.domNodes.push(domContainer);\n};\n\n/*\nCreate DOM elements representing a list of diffs\n*/\nDiffTextWidget.prototype.createDiffDom = function(diffs) {\n\tvar self = this;\n\t// Create the element and assign the attributes\n\tvar domPre = this.document.createElement(\"pre\"),\n\t\tdomCode = this.document.createElement(\"code\");\n\t$tw.utils.each(diffs,function(diff) {\n\t\tvar tag = diff[0] === dmp.DIFF_INSERT ? \"ins\" : (diff[0] === dmp.DIFF_DELETE ? \"del\" : \"span\"),\n\t\t\tclassName = diff[0] === dmp.DIFF_INSERT ? \"tc-diff-insert\" : (diff[0] === dmp.DIFF_DELETE ? \"tc-diff-delete\" : \"tc-diff-equal\"),\n\t\t\tdom = self.document.createElement(tag),\n\t\t\ttext = diff[1],\n\t\t\tcurrPos = 0,\n\t\t\tre = /([\\x00-\\x1F])/mg,\n\t\t\tmatch = re.exec(text),\n\t\t\tspan,\n\t\t\tprintable;\n\t\tdom.className = className;\n\t\twhile(match) {\n\t\t\tif(currPos < match.index) {\n\t\t\t\tdom.appendChild(self.document.createTextNode(text.slice(currPos,match.index)));\n\t\t\t}\n\t\t\tspan = self.document.createElement(\"span\");\n\t\t\tspan.className = \"tc-diff-invisible\";\n\t\t\tprintable = self.invisibleCharacters[match[0]] || (\"[0x\" + match[0].charCodeAt(0).toString(16) + \"]\");\n\t\t\tspan.appendChild(self.document.createTextNode(printable));\n\t\t\tdom.appendChild(span);\n\t\t\tcurrPos = match.index + match[0].length;\n\t\t\tmatch = re.exec(text);\n\t\t}\n\t\tif(currPos < text.length) {\n\t\t\tdom.appendChild(self.document.createTextNode(text.slice(currPos)));\n\t\t}\n\t\tdomCode.appendChild(dom);\n\t});\n\tdomPre.appendChild(domCode);\n\treturn domPre;\n};\n\n/*\nCompute the internal state of the widget\n*/\nDiffTextWidget.prototype.execute = function() {\n\t// Make child widgets\n\tvar parseTreeNodes;\n\tif(this.parseTreeNode && this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\tparseTreeNodes = this.parseTreeNode.children;\n\t} else {\n\t\tparseTreeNodes = [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: \"$:/language/Diffs/CountMessage\"}\n\t\t\t}\n\t\t}];\n\t}\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDiffTextWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.dest || changedAttributes.cleanup) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports[\"diff-text\"] = DiffTextWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/draggable.js": {
            "title": "$:/core/modules/widgets/draggable.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/draggable.js\ntype: application/javascript\nmodule-type: widget\n\nDraggable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DraggableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDraggableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDraggableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Sanitise the specified tag\n\tvar tag = this.draggableTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"div\";\n\t}\n\t// Create our element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [\"tc-draggable\"];\n\tif(this.draggableClasses) {\n\t\tclasses.push(this.draggableClasses);\n\t}\n\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t// Add event handlers\n\t$tw.utils.makeDraggable({\n\t\tdomNode: domNode,\n\t\tdragTiddlerFn: function() {return self.getAttribute(\"tiddler\");},\n\t\tdragFilterFn: function() {return self.getAttribute(\"filter\");},\n\t\tstartActions: self.startActions,\n\t\tendActions: self.endActions,\n\t\twidget: this\n\t});\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nDraggableWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.draggableTag = this.getAttribute(\"tag\",\"div\");\n\tthis.draggableClasses = this.getAttribute(\"class\");\n\tthis.startActions = this.getAttribute(\"startactions\");\n\tthis.endActions = this.getAttribute(\"endactions\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDraggableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tag || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.draggable = DraggableWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/droppable.js": {
            "title": "$:/core/modules/widgets/droppable.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/droppable.js\ntype: application/javascript\nmodule-type: widget\n\nDroppable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DroppableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDroppableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDroppableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this,\n\t\ttag = this.parseTreeNode.isBlock ? \"div\" : \"span\",\n\t\tdomNode;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tif(this.droppableTag && $tw.config.htmlUnsafeElements.indexOf(this.droppableTag) === -1) {\n\t\ttag = this.droppableTag;\n\t}\n\t// Create element and assign classes\n\tdomNode = this.document.createElement(tag);\n\tthis.domNode = domNode;\n\tthis.assignDomNodeClasses();\n\t// Add event handlers\n\tif(this.droppableEnable) {\n\t\t$tw.utils.addEventListeners(domNode,[\n\t\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"}\n\t\t]);\t\t\n\t} else {\n\t\t$tw.utils.addClass(this.domNode,this.disabledClass);\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDroppableWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDroppableWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally. The hacky second condition is to resolve a problem with Firefox whereby there is an erroneous dragenter event if the node being dragged is within the dropzone\n\tif(this.currentlyEntered.length === 0 || (this.currentlyEntered.length === 1 && this.currentlyEntered[0] === $tw.dragInProgress)) {\n\t\tthis.currentlyEntered = [];\n\t\tif(this.domNodes[0]) {\n\t\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t\t}\n\t}\n};\n\nDroppableWidget.prototype.handleDragEnterEvent  = function(event) {\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragOverEvent  = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\t// Set the drop effect\n\tevent.dataTransfer.dropEffect = this.droppableEffect;\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragLeaveEvent  = function(event) {\n\tthis.leaveDrag(event);\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDropEvent  = function(event) {\n\tvar self = this;\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\tvar dataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Try to import the various data types we understand\n\t$tw.utils.importDataTransfer(dataTransfer,null,function(fieldsArray) {\n\t\tfieldsArray.forEach(function(fields) {\n\t\t\tself.performActions(fields.title || fields.text,event);\n\t\t});\n\t});\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.performActions = function(title,event) {\n\tif(this.droppableActions) {\n\t\tvar modifierKey = $tw.keyboardManager.getEventModifierKeyDescriptor(event);\n\t\tthis.invokeActionString(this.droppableActions,this,event,{actionTiddler: title, modifier: modifierKey});\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDroppableWidget.prototype.execute = function() {\n\tthis.droppableActions = this.getAttribute(\"actions\");\n\tthis.droppableEffect = this.getAttribute(\"effect\",\"copy\");\n\tthis.droppableTag = this.getAttribute(\"tag\");\n\tthis.droppableEnable = (this.getAttribute(\"enable\") || \"yes\") === \"yes\";\n\tthis.disabledClass = this.getAttribute(\"disabledClass\",\"\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\nDroppableWidget.prototype.assignDomNodeClasses = function() {\n\tvar classes = this.getAttribute(\"class\",\"\").split(\" \");\n\tclasses.push(\"tc-droppable\");\n\tthis.domNode.className = classes.join(\" \");\t\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDroppableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tag || changedAttributes.enable || changedAttributes.disabledClass || changedAttributes.actions || changedAttributes.effect) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedAttributes[\"class\"]) {\n\t\tthis.assignDomNodeClasses();\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.droppable = DroppableWidget;\n\n})();",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/dropzone.js": {
            "title": "$:/core/modules/widgets/dropzone.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/dropzone.js\ntype: application/javascript\nmodule-type: widget\n\nDropzone widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DropZoneWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDropZoneWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDropZoneWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"div\");\n\tdomNode.className = this.dropzoneClass || \"tc-dropzone\";\n\t// Add event handlers\n\tif(this.dropzoneEnable) {\n\t\t$tw.utils.addEventListeners(domNode,[\n\t\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"},\n\t\t\t{name: \"paste\", handlerObject: this, handlerMethod: \"handlePasteEvent\"},\n\t\t\t{name: \"dragend\", handlerObject: this, handlerMethod: \"handleDragEndEvent\"}\n\t\t]);\t\t\n\t}\n\tdomNode.addEventListener(\"click\",function (event) {\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDropZoneWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDropZoneWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally\n\tif(this.currentlyEntered.length === 0) {\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDropZoneWidget.prototype.handleDragEnterEvent  = function(event) {\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handleDragOverEvent  = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\tevent.dataTransfer.dropEffect = \"copy\"; // Explicitly show this is a copy\n};\n\nDropZoneWidget.prototype.handleDragLeaveEvent  = function(event) {\n\tthis.leaveDrag(event);\n};\n\nDropZoneWidget.prototype.handleDragEndEvent = function(event) {\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDropZoneWidget.prototype.handleDropEvent  = function(event) {\n\tvar self = this,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray), autoOpenOnImport: self.autoOpenOnImport, importTitle: self.importTitle});\n\t\t};\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tvar self = this,\n\t\tdataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Import any files in the drop\n\tvar numFiles = 0;\n\tif(dataTransfer.files) {\n\t\tnumFiles = this.wiki.readFiles(dataTransfer.files,{\n\t\t\tcallback: readFileCallback,\n\t\t\tdeserializer: this.dropzoneDeserializer\n\t\t});\n\t}\n\t// Try to import the various data types we understand\n\tif(numFiles === 0) {\n\t\t$tw.utils.importDataTransfer(dataTransfer,this.wiki.generateNewTitle(\"Untitled\"),readFileCallback);\n\t}\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handlePasteEvent  = function(event) {\n\tvar self = this,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray), autoOpenOnImport: self.autoOpenOnImport, importTitle: self.importTitle});\n\t\t};\n\t// Let the browser handle it if we're in a textarea or input box\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) == -1 && !event.target.isContentEditable) {\n\t\tvar self = this,\n\t\t\titems = event.clipboardData.items;\n\t\t// Enumerate the clipboard items\n\t\tfor(var t = 0; t<items.length; t++) {\n\t\t\tvar item = items[t];\n\t\t\tif(item.kind === \"file\") {\n\t\t\t\t// Import any files\n\t\t\t\tthis.wiki.readFile(item.getAsFile(),{\n\t\t\t\t\tcallback: readFileCallback,\n\t\t\t\t\tdeserializer: this.dropzoneDeserializer\n\t\t\t\t});\n\t\t\t} else if(item.kind === \"string\") {\n\t\t\t\t// Create tiddlers from string items\n\t\t\t\tvar type = item.type;\n\t\t\t\titem.getAsString(function(str) {\n\t\t\t\t\tvar tiddlerFields = {\n\t\t\t\t\t\ttitle: self.wiki.generateNewTitle(\"Untitled\"),\n\t\t\t\t\t\ttext: str,\n\t\t\t\t\t\ttype: type\n\t\t\t\t\t};\n\t\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\t\tconsole.log(\"Importing string '\" + str + \"', type: '\" + type + \"'\");\n\t\t\t\t\t}\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify([tiddlerFields]), autoOpenOnImport: self.autoOpenOnImport, importTitle: self.importTitle});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\t// Tell the browser that we've handled the paste\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDropZoneWidget.prototype.execute = function() {\n\tthis.dropzoneClass = this.getAttribute(\"class\");\n\tthis.dropzoneDeserializer = this.getAttribute(\"deserializer\");\n\tthis.dropzoneEnable = (this.getAttribute(\"enable\") || \"yes\") === \"yes\";\n\tthis.autoOpenOnImport = this.getAttribute(\"autoOpenOnImport\");\n\tthis.importTitle = this.getAttribute(\"importTitle\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDropZoneWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.enable || changedAttributes.autoOpenOnImport || changedAttributes.importTitle || changedAttributes.deserializer || changedAttributes.class) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.dropzone = DropZoneWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/edit-binary.js": {
            "title": "$:/core/modules/widgets/edit-binary.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/edit-binary.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-binary widget; placeholder for editing binary tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar BINARY_WARNING_MESSAGE = \"$:/core/ui/BinaryWarning\";\nvar EXPORT_BUTTON_IMAGE = \"$:/core/images/export-button\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBinaryWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBinaryWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBinaryWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBinaryWidget.prototype.execute = function() {\n\t// Get our parameters\n\tvar editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tvar tiddler = this.wiki.getTiddler(editTitle);\n\tvar type = tiddler.fields.type;\n\tvar text = tiddler.fields.text;\n\t// Transclude the binary data tiddler warning message\n\tvar warn = {\n\t\ttype: \"element\",\n\t\ttag: \"p\",\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Create download link based on draft tiddler title\n\tvar link = {\n\t\ttype: \"element\",\n\t\ttag: \"a\",\n\t\tattributes: {\n\t\t\ttitle: {type: \"indirect\", textReference: \"!!draft.title\"},\n\t\t\tdownload: {type: \"indirect\", textReference: \"!!draft.title\"}\n\t\t},\n\t\tchildren: [{\n\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: EXPORT_BUTTON_IMAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Set the link href to internal data URI (no external)\n\tif(text) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: \"data:\" + type + \";base64,\" + text\n\t\t};\n\t}\n\t// Combine warning message and download link in a div\n\tvar element = {\n\t\ttype: \"element\",\n\t\ttag: \"div\",\n\t\tattributes: {\n\t\t\tclass: {type: \"string\", value: \"tc-binary-warning\"}\n\t\t},\n\t\tchildren: [warn, link]\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets([element]);\n};\n\n/*\nRefresh by refreshing our child widget\n*/\nEditBinaryWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"edit-binary\"] = EditBinaryWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/edit-bitmap.js": {
            "title": "$:/core/modules/widgets/edit-bitmap.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/edit-bitmap.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-bitmap widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Default image sizes\nvar DEFAULT_IMAGE_WIDTH = 600,\n\tDEFAULT_IMAGE_HEIGHT = 370,\n\tDEFAULT_IMAGE_TYPE = \"image/png\";\n\n// Configuration tiddlers\nvar LINE_WIDTH_TITLE = \"$:/config/BitmapEditor/LineWidth\",\n\tLINE_COLOUR_TITLE = \"$:/config/BitmapEditor/Colour\",\n\tLINE_OPACITY_TITLE = \"$:/config/BitmapEditor/Opacity\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBitmapWidget = function(parseTreeNode,options) {\n\t// Initialise the editor operations if they've not been done already\n\tif(!this.editorOperations) {\n\t\tEditBitmapWidget.prototype.editorOperations = {};\n\t\t$tw.modules.applyMethods(\"bitmapeditoroperation\",this.editorOperations);\n\t}\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBitmapWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBitmapWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create the wrapper for the toolbar and render its content\n\tthis.toolbarNode = this.document.createElement(\"div\");\n\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\tparent.insertBefore(this.toolbarNode,nextSibling);\n\tthis.domNodes.push(this.toolbarNode);\n\t// Create the on-screen canvas\n\tthis.canvasDomNode = $tw.utils.domMaker(\"canvas\",{\n\t\tdocument: this.document,\n\t\t\"class\":\"tc-edit-bitmapeditor\",\n\t\teventListeners: [{\n\t\t\tname: \"touchstart\", handlerObject: this, handlerMethod: \"handleTouchStartEvent\"\n\t\t},{\n\t\t\tname: \"touchmove\", handlerObject: this, handlerMethod: \"handleTouchMoveEvent\"\n\t\t},{\n\t\t\tname: \"touchend\", handlerObject: this, handlerMethod: \"handleTouchEndEvent\"\n\t\t},{\n\t\t\tname: \"mousedown\", handlerObject: this, handlerMethod: \"handleMouseDownEvent\"\n\t\t},{\n\t\t\tname: \"mousemove\", handlerObject: this, handlerMethod: \"handleMouseMoveEvent\"\n\t\t},{\n\t\t\tname: \"mouseup\", handlerObject: this, handlerMethod: \"handleMouseUpEvent\"\n\t\t}]\n\t});\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Render toolbar child widgets\n\tthis.renderChildren(this.toolbarNode,null);\n\t// // Insert the elements into the DOM\n\tparent.insertBefore(this.canvasDomNode,nextSibling);\n\tthis.domNodes.push(this.canvasDomNode);\n\t// Load the image into the canvas\n\tif($tw.browser) {\n\t\tthis.loadCanvas();\n\t}\n\t// Add widget message listeners\n\tthis.addEventListeners([\n\t\t{type: \"tm-edit-bitmap-operation\", handler: \"handleEditBitmapOperationMessage\"}\n\t]);\n};\n\n/*\nHandle an edit bitmap operation message from the toolbar\n*/\nEditBitmapWidget.prototype.handleEditBitmapOperationMessage = function(event) {\n\t// Invoke the handler\n\tvar handler = this.editorOperations[event.param];\n\tif(handler) {\n\t\thandler.call(this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBitmapWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nJust refresh the toolbar\n*/\nEditBitmapWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nSet the bitmap size variables and refresh the toolbar\n*/\nEditBitmapWidget.prototype.refreshToolbar = function() {\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Refresh each of our child widgets\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\tchildWidget.refreshSelf();\n\t});\n};\n\nEditBitmapWidget.prototype.loadCanvas = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle),\n\t\tcurrImage = new Image();\n\t// Set up event handlers for loading the image\n\tvar self = this;\n\tcurrImage.onload = function() {\n\t\t// Copy the image to the on-screen canvas\n\t\tself.initCanvas(self.canvasDomNode,currImage.width,currImage.height,currImage);\n\t\t// And also copy the current bitmap to the off-screen canvas\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,currImage.width,currImage.height,currImage);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\tcurrImage.onerror = function() {\n\t\t// Set the on-screen canvas size and clear it\n\t\tself.initCanvas(self.canvasDomNode,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the off-screen canvas size and clear it\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\t// Get the current bitmap into an image object\n\tif(tiddler && tiddler.fields.type && tiddler.fields.text) {\n\t\tcurrImage.src = \"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text;\t\t\n\t} else {\n\t\tcurrImage.width = DEFAULT_IMAGE_WIDTH;\n\t\tcurrImage.height = DEFAULT_IMAGE_HEIGHT;\n\t\tcurrImage.onerror();\n\t}\n};\n\nEditBitmapWidget.prototype.initCanvas = function(canvas,width,height,image) {\n\tcanvas.width = width;\n\tcanvas.height = height;\n\tvar ctx = canvas.getContext(\"2d\");\n\tif(image) {\n\t\tctx.drawImage(image,0,0);\n\t} else {\n\t\tctx.fillStyle = \"#fff\";\n\t\tctx.fillRect(0,0,canvas.width,canvas.height);\n\t}\n};\n\n/*\n** Change the size of the canvas, preserving the current image\n*/\nEditBitmapWidget.prototype.changeCanvasSize = function(newWidth,newHeight) {\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\");\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\n/*\n** Rotate the canvas left by 90 degrees\n*/\nEditBitmapWidget.prototype.rotateCanvasLeft = function() {\n\t// Get the current size of the image\n\tvar origWidth = this.currCanvas.width,\n\t\torigHeight = this.currCanvas.height;\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\"),\n\t\tnewWidth = origHeight,\n\t\tnewHeight = origWidth;\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.save();\n\tctx.translate(newWidth / 2,newHeight / 2);\n\tctx.rotate(-Math.PI / 2);\n\tctx.drawImage(this.currCanvas,-origWidth / 2,-origHeight / 2);\n\tctx.restore();\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\nEditBitmapWidget.prototype.handleTouchStartEvent = function(event) {\n\tthis.brushDown = true;\n\tthis.strokeStart(event.touches[0].clientX,event.touches[0].clientY);\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.touches[0].clientX,event.touches[0].clientY);\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchEndEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseDownEvent = function(event) {\n\tthis.strokeStart(event.clientX,event.clientY);\n\tthis.brushDown = true;\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.clientX,event.clientY);\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.handleMouseUpEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.adjustCoordinates = function(x,y) {\n\tvar canvasRect = this.canvasDomNode.getBoundingClientRect(),\n\t\tscale = this.canvasDomNode.width/canvasRect.width;\n\treturn {x: (x - canvasRect.left) * scale, y: (y - canvasRect.top) * scale};\n};\n\nEditBitmapWidget.prototype.strokeStart = function(x,y) {\n\t// Start off a new stroke\n\tthis.stroke = [this.adjustCoordinates(x,y)];\n};\n\nEditBitmapWidget.prototype.strokeMove = function(x,y) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\"),\n\t\tt;\n\t// Add the new position to the end of the stroke\n\tthis.stroke.push(this.adjustCoordinates(x,y));\n\t// Redraw the previous image\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Render the stroke\n\tctx.globalAlpha = parseFloat(this.wiki.getTiddlerText(LINE_OPACITY_TITLE,\"1.0\"));\n\tctx.strokeStyle = this.wiki.getTiddlerText(LINE_COLOUR_TITLE,\"#ff0\");\n\tctx.lineWidth = parseFloat(this.wiki.getTiddlerText(LINE_WIDTH_TITLE,\"3\"));\n\tctx.lineCap = \"round\";\n\tctx.lineJoin = \"round\";\n\tctx.beginPath();\n\tctx.moveTo(this.stroke[0].x,this.stroke[0].y);\n\tfor(t=1; t<this.stroke.length-1; t++) {\n\t\tvar s1 = this.stroke[t],\n\t\t\ts2 = this.stroke[t-1],\n\t\t\ttx = (s1.x + s2.x)/2,\n\t\t\tty = (s1.y + s2.y)/2;\n\t\tctx.quadraticCurveTo(s2.x,s2.y,tx,ty);\n\t}\n\tctx.stroke();\n};\n\nEditBitmapWidget.prototype.strokeEnd = function() {\n\t// Copy the bitmap to the off-screen canvas\n\tvar ctx = this.currCanvas.getContext(\"2d\");\n\tctx.drawImage(this.canvasDomNode,0,0);\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\nEditBitmapWidget.prototype.saveChanges = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle) || new $tw.Tiddler({title: this.editTitle,type: DEFAULT_IMAGE_TYPE});\n\t// data URIs look like \"data:<type>;base64,<text>\"\n\tvar dataURL = this.canvasDomNode.toDataURL(tiddler.fields.type),\n\t\tposColon = dataURL.indexOf(\":\"),\n\t\tposSemiColon = dataURL.indexOf(\";\"),\n\t\tposComma = dataURL.indexOf(\",\"),\n\t\ttype = dataURL.substring(posColon+1,posSemiColon),\n\t\ttext = dataURL.substring(posComma+1);\n\tvar update = {type: type, text: text};\n\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getModificationFields(),tiddler,update,this.wiki.getCreationFields()));\n};\n\nexports[\"edit-bitmap\"] = EditBitmapWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/edit-shortcut.js": {
            "title": "$:/core/modules/widgets/edit-shortcut.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/edit-shortcut.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display an editable keyboard shortcut\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditShortcutWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditShortcutWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditShortcutWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.inputNode = this.document.createElement(\"input\");\n\t// Assign classes\n\tif(this.shortcutClass) {\n\t\tthis.inputNode.className = this.shortcutClass;\t\t\n\t}\n\t// Assign other attributes\n\tif(this.shortcutStyle) {\n\t\tthis.inputNode.setAttribute(\"style\",this.shortcutStyle);\n\t}\n\tif(this.shortcutTooltip) {\n\t\tthis.inputNode.setAttribute(\"title\",this.shortcutTooltip);\n\t}\n\tif(this.shortcutPlaceholder) {\n\t\tthis.inputNode.setAttribute(\"placeholder\",this.shortcutPlaceholder);\n\t}\n\tif(this.shortcutAriaLabel) {\n\t\tthis.inputNode.setAttribute(\"aria-label\",this.shortcutAriaLabel);\n\t}\n\t// Assign the current shortcut\n\tthis.updateInputNode();\n\t// Add event handlers\n\t$tw.utils.addEventListeners(this.inputNode,[\n\t\t{name: \"keydown\", handlerObject: this, handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Link into the DOM\n\tparent.insertBefore(this.inputNode,nextSibling);\n\tthis.domNodes.push(this.inputNode);\n\t// Focus the input Node if focus === \"yes\" or focus === \"true\"\n\tif(this.shortcutFocus === \"yes\" || this.shortcutFocus === \"true\") {\n\t\tthis.focus();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditShortcutWidget.prototype.execute = function() {\n\tthis.shortcutTiddler = this.getAttribute(\"tiddler\");\n\tthis.shortcutField = this.getAttribute(\"field\");\n\tthis.shortcutIndex = this.getAttribute(\"index\");\n\tthis.shortcutPlaceholder = this.getAttribute(\"placeholder\");\n\tthis.shortcutDefault = this.getAttribute(\"default\",\"\");\n\tthis.shortcutClass = this.getAttribute(\"class\");\n\tthis.shortcutStyle = this.getAttribute(\"style\");\n\tthis.shortcutTooltip = this.getAttribute(\"tooltip\");\n\tthis.shortcutAriaLabel = this.getAttribute(\"aria-label\");\n\tthis.shortcutFocus = this.getAttribute(\"focus\");\n};\n\n/*\nUpdate the value of the input node\n*/\nEditShortcutWidget.prototype.updateInputNode = function() {\n\tif(this.shortcutField) {\n\t\tvar tiddler = this.wiki.getTiddler(this.shortcutTiddler);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,this.shortcutField)) {\n\t\t\tthis.inputNode.value = tiddler.getFieldString(this.shortcutField);\n\t\t} else {\n\t\t\tthis.inputNode.value = this.shortcutDefault;\n\t\t}\n\t} else if(this.shortcutIndex) {\n\t\tthis.inputNode.value = this.wiki.extractTiddlerDataItem(this.shortcutTiddler,this.shortcutIndex,this.shortcutDefault);\n\t} else {\n\t\tthis.inputNode.value = this.wiki.getTiddlerText(this.shortcutTiddler,this.shortcutDefault);\n\t}\n};\n\n/*\nHandle a dom \"keydown\" event\n*/\nEditShortcutWidget.prototype.handleKeydownEvent = function(event) {\n\t// Ignore shift, ctrl, meta, alt\n\tif(event.keyCode && $tw.keyboardManager.getModifierKeys().indexOf(event.keyCode) === -1) {\n\t\t// Get the shortcut text representation\n\t\tvar value = $tw.keyboardManager.getPrintableShortcuts([{\n\t\t\tctrlKey: event.ctrlKey,\n\t\t\tshiftKey: event.shiftKey,\n\t\t\taltKey: event.altKey,\n\t\t\tmetaKey: event.metaKey,\n\t\t\tkeyCode: event.keyCode\n\t\t}]);\n\t\tif(value.length > 0) {\n\t\t\tthis.wiki.setText(this.shortcutTiddler,this.shortcutField,this.shortcutIndex,value[0]);\n\t\t}\n\t\t// Ignore the keydown if it was already handled\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn true;\t\t\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nfocus the input node\n*/\nEditShortcutWidget.prototype.focus = function() {\n\tif(this.inputNode.focus && this.inputNode.select) {\n\t\tthis.inputNode.focus();\n\t\tthis.inputNode.select();\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget needed re-rendering\n*/\nEditShortcutWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.placeholder || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.style || changedAttributes.tooltip || changedAttributes[\"aria-label\"] || changedAttributes.focus) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedTiddlers[this.shortcutTiddler]) {\n\t\tthis.updateInputNode();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports[\"edit-shortcut\"] = EditShortcutWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/edit-text.js": {
            "title": "$:/core/modules/widgets/edit-text.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/edit-text.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-text widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar editTextWidgetFactory = require(\"$:/core/modules/editor/factory.js\").editTextWidgetFactory,\n\tFramedEngine = require(\"$:/core/modules/editor/engines/framed.js\").FramedEngine,\n\tSimpleEngine = require(\"$:/core/modules/editor/engines/simple.js\").SimpleEngine;\n\nexports[\"edit-text\"] = editTextWidgetFactory(FramedEngine,SimpleEngine);\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/edit.js": {
            "title": "$:/core/modules/widgets/edit.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/edit.js\ntype: application/javascript\nmodule-type: widget\n\nEdit widget is a meta-widget chooses the appropriate actual editting widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n// Mappings from content type to editor type are stored in tiddlers with this prefix\nvar EDITOR_MAPPING_PREFIX = \"$:/config/EditorTypeMappings/\";\n\n/*\nCompute the internal state of the widget\n*/\nEditWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.editField = this.getAttribute(\"field\",\"text\");\n\tthis.editIndex = this.getAttribute(\"index\");\n\tthis.editClass = this.getAttribute(\"class\");\n\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\tthis.editTabIndex = this.getAttribute(\"tabindex\");\n\tthis.editFocus = this.getAttribute(\"focus\",\"\");\n\tthis.editCancelPopups = this.getAttribute(\"cancelPopups\",\"\");\n\tthis.editInputActions = this.getAttribute(\"inputActions\");\n\tthis.editRefreshTitle = this.getAttribute(\"refreshTitle\");\n\tthis.editAutoComplete = this.getAttribute(\"autocomplete\");\n\t// Choose the appropriate edit widget\n\tthis.editorType = this.getEditorType();\n\t// Make the child widgets\n\tthis.makeChildWidgets([{\n\t\ttype: \"edit-\" + this.editorType,\n\t\tattributes: this.parseTreeNode.attributes,\n\t\tchildren: this.parseTreeNode.children\n\t}]);\n};\n\nEditWidget.prototype.getEditorType = function() {\n\t// Get the content type of the thing we're editing\n\tvar type;\n\tif(this.editField === \"text\") {\n\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\tif(tiddler) {\n\t\t\ttype = tiddler.fields.type;\n\t\t}\n\t}\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar editorType = this.wiki.getTiddlerText(EDITOR_MAPPING_PREFIX + type);\n\tif(!editorType) {\n\t\tvar typeInfo = $tw.config.contentTypeInfo[type];\n\t\tif(typeInfo && typeInfo.encoding === \"base64\") {\n\t\t\teditorType = \"binary\";\n\t\t} else {\n\t\t\teditorType = \"text\";\n\t\t}\n\t}\n\treturn editorType;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEditWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh if an attribute has changed, or the type associated with the target tiddler has changed\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.tabindex || changedAttributes.cancelPopups || changedAttributes.inputActions || changedAttributes.refreshTitle || changedAttributes.autocomplete || (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.edit = EditWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/element.js": {
            "title": "$:/core/modules/widgets/element.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/element.js\ntype: application/javascript\nmodule-type: widget\n\nElement widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ElementWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nElementWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nElementWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\t// Neuter blacklisted elements\n\tthis.tag = this.parseTreeNode.tag;\n\tif($tw.config.htmlUnsafeElements.indexOf(this.tag) !== -1) {\n\t\tthis.tag = \"safe-\" + this.tag;\n\t}\n\t// Adjust headings by the current base level\n\tvar headingLevel = [\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"].indexOf(this.tag);\n\tif(headingLevel !== -1) {\n\t\tvar baseLevel = parseInt(this.getVariable(\"tv-adjust-heading-level\",\"0\"),10) || 0;\n\t\theadingLevel = Math.min(Math.max(headingLevel + 1 + baseLevel,1),6);\n\t\tthis.tag = \"h\" + headingLevel;\n\t}\n\t// Select the namespace for the tag\n\tvar tagNamespaces = {\n\t\t\tsvg: \"http://www.w3.org/2000/svg\",\n\t\t\tmath: \"http://www.w3.org/1998/Math/MathML\",\n\t\t\tbody: \"http://www.w3.org/1999/xhtml\"\n\t\t};\n\tthis.namespace = tagNamespaces[this.tag];\n\tif(this.namespace) {\n\t\tthis.setVariable(\"namespace\",this.namespace);\n\t} else {\n\t\tthis.namespace = this.getVariable(\"namespace\",{defaultValue: \"http://www.w3.org/1999/xhtml\"});\n\t}\n\t// Invoke the th-rendering-element hook\n\tvar parseTreeNodes = $tw.hooks.invokeHook(\"th-rendering-element\",null,this);\n\tthis.isReplaced = !!parseTreeNodes;\n\tif(parseTreeNodes) {\n\t\t// Use the parse tree nodes provided by the hook\n\t\tthis.makeChildWidgets(parseTreeNodes);\n\t\tthis.renderChildren(this.parentDomNode,null);\n\t\treturn;\n\t}\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n\t// Create the DOM node and render children\n\tvar domNode = this.document.createElementNS(this.namespace,this.tag);\n\tthis.assignAttributes(domNode,{excludeEventAttributes: true});\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nElementWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\thasChangedAttributes = $tw.utils.count(changedAttributes) > 0;\n\tif(hasChangedAttributes) {\n\t\tif(!this.isReplaced) {\n\t\t\t// Update our attributes\n\t\t\tthis.assignAttributes(this.domNodes[0],{excludeEventAttributes: true});\t\t\t\n\t\t} else {\n\t\t\t// If we were replaced then completely refresh ourselves\n\t\t\treturn this.refreshSelf();\n\t\t}\n\t}\n\treturn this.refreshChildren(changedTiddlers) || hasChangedAttributes;\n};\n\nexports.element = ElementWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/encrypt.js": {
            "title": "$:/core/modules/widgets/encrypt.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/encrypt.js\ntype: application/javascript\nmodule-type: widget\n\nEncrypt widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EncryptWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEncryptWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEncryptWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.encryptedText);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEncryptWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\",\"[!is[system]]\");\n\t// Encrypt the filtered tiddlers\n\tvar tiddlers = this.wiki.filterTiddlers(this.filter),\n\t\tjson = {},\n\t\tself = this;\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title),\n\t\t\tjsonTiddler = {};\n\t\tfor(var f in tiddler.fields) {\n\t\t\tjsonTiddler[f] = tiddler.getFieldString(f);\n\t\t}\n\t\tjson[title] = jsonTiddler;\n\t});\n\tthis.encryptedText = $tw.utils.htmlEncode($tw.crypto.encrypt(JSON.stringify(json)));\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEncryptWidget.prototype.refresh = function(changedTiddlers) {\n\t// We don't need to worry about refreshing because the encrypt widget isn't for interactive use\n\treturn false;\n};\n\nexports.encrypt = EncryptWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/entity.js": {
            "title": "$:/core/modules/widgets/entity.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/entity.js\ntype: application/javascript\nmodule-type: widget\n\nHTML entity widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EntityWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEntityWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEntityWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar entityString = this.getAttribute(\"entity\",this.parseTreeNode.entity || \"\"),\n\t\ttextNode = this.document.createTextNode($tw.utils.entityDecode(entityString));\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEntityWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEntityWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.entity) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.entity = EntityWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/eventcatcher.js": {
            "title": "$:/core/modules/widgets/eventcatcher.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/eventcatcher.js\ntype: application/javascript\nmodule-type: widget\n\nEvent handler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EventWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEventWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEventWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.elementTag && $tw.config.htmlUnsafeElements.indexOf(this.elementTag) === -1) {\n\t\ttag = this.elementTag;\n\t}\t\n\tvar domNode = this.document.createElement(tag);\n\tthis.domNode = domNode;\n\t// Assign classes\n\tthis.assignDomNodeClasses();\t\n\t// Add our event handler\n\t$tw.utils.each(this.types,function(type) {\n\t\tdomNode.addEventListener(type,function(event) {\n\t\t\tvar selector = self.getAttribute(\"selector\"),\n\t\t\t\tactions = self.getAttribute(\"actions-\"+type),\n\t\t\t\tselectedNode = event.target,\n\t\t\t\tselectedNodeRect,\n\t\t\t\tcatcherNodeRect,\n\t\t\t\tvariables = {};\n\t\t\tif(selector) {\n\t\t\t\t// Search ancestors for a node that matches the selector\n\t\t\t\twhile(!selectedNode.matches(selector) && selectedNode !== domNode) {\n\t\t\t\t\tselectedNode = selectedNode.parentNode;\n\t\t\t\t}\n\t\t\t\t// If we found one, copy the attributes as variables, otherwise exit\n\t\t\t\tif(selectedNode.matches(selector)) {\n\t\t\t\t\t$tw.utils.each(selectedNode.attributes,function(attribute) {\n\t\t\t\t\t\tvariables[\"dom-\" + attribute.name] = attribute.value.toString();\n\t\t\t\t\t});\n\t\t\t\t\t//Add a variable with a popup coordinate string for the selected node\n\t\t\t\t\tvariables[\"tv-popup-coords\"] = \"(\" + selectedNode.offsetLeft + \",\" + selectedNode.offsetTop +\",\" + selectedNode.offsetWidth + \",\" + selectedNode.offsetHeight + \")\";\n\t\t\t\t\t\n\t\t\t\t\t//Add variables for offset of selected node\n\t\t\t\t\tvariables[\"tv-selectednode-posx\"] = selectedNode.offsetLeft.toString();\n\t\t\t\t\tvariables[\"tv-selectednode-posy\"] = selectedNode.offsetTop.toString();\n\t\t\t\t\tvariables[\"tv-selectednode-width\"] = selectedNode.offsetWidth.toString();\n\t\t\t\t\tvariables[\"tv-selectednode-height\"] = selectedNode.offsetHeight.toString();\n\n\t\t\t\t\t//Add variables for event X and Y position relative to selected node\n\t\t\t\t\tselectedNodeRect = selectedNode.getBoundingClientRect();\t\t\t\t\n\t\t\t\t\tvariables[\"event-fromselected-posx\"] = (event.clientX - selectedNodeRect.left).toString();\n\t\t\t\t\tvariables[\"event-fromselected-posy\"] = (event.clientY - selectedNodeRect.top).toString();\n\n\t\t\t\t\t//Add variables for event X and Y position relative to event catcher node\n\t\t\t\t\tcatcherNodeRect = self.domNode.getBoundingClientRect();\n\t\t\t\t\tvariables[\"event-fromcatcher-posx\"] = (event.clientX - catcherNodeRect.left).toString();\n\t\t\t\t\tvariables[\"event-fromcatcher-posy\"] = (event.clientY - catcherNodeRect.top).toString();\n\t\t\t\t} else {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Execute our actions with the variables\n\t\t\tif(actions) {\n\t\t\t\t// Add a variable for the modifier key\n\t\t\t\tvariables.modifier = $tw.keyboardManager.getEventModifierKeyDescriptor(event);\n\t\t\t\t// Add a variable for the mouse button\n\t\t\t\tif(\"button\" in event) {\n\t\t\t\t\tif(event.button === 0) {\n\t\t\t\t\t\tvariables[\"event-mousebutton\"] = \"left\";\n\t\t\t\t\t} else if(event.button === 1) {\n\t\t\t\t\t\tvariables[\"event-mousebutton\"] = \"middle\";\n\t\t\t\t\t} else if(event.button === 2) {\n\t\t\t\t\t\tvariables[\"event-mousebutton\"] = \"right\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvariables[\"event-type\"] = event.type.toString();\n\t\t\t\tif(typeof event.detail === \"object\" && !!event.detail) {\n\t\t\t\t\t$tw.utils.each(event.detail,function(detailValue,detail) {\n\t\t\t\t\t\tvariables[\"event-detail-\" + detail] = detailValue.toString();\n\t\t\t\t\t});\n\t\t\t\t} else if(!!event.detail) {\n\t\t\t\t\tvariables[\"event-detail\"] = event.detail.toString();\n\t\t\t\t}\n\t\t\t\tself.invokeActionString(actions,self,event,variables);\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t},false);\n\t});\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEventWidget.prototype.execute = function() {\n\tvar self = this;\n\t// Get attributes that require a refresh on change\n\tthis.types = this.getAttribute(\"events\",\"\").split(\" \");\n\tthis.elementTag = this.getAttribute(\"tag\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\nEventWidget.prototype.assignDomNodeClasses = function() {\n\tvar classes = this.getAttribute(\"class\",\"\").split(\" \");\n\tclasses.push(\"tc-eventcatcher\");\n\tthis.domNode.className = classes.join(\" \");\t\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEventWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"events\"] || changedAttributes[\"tag\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedAttributes[\"class\"]) {\n\t\tthis.assignDomNodeClasses();\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.eventcatcher = EventWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/fieldmangler.js": {
            "title": "$:/core/modules/widgets/fieldmangler.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/fieldmangler.js\ntype: application/javascript\nmodule-type: widget\n\nField mangler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldManglerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-remove-field\", handler: \"handleRemoveFieldEvent\"},\n\t\t{type: \"tm-add-field\", handler: \"handleAddFieldEvent\"},\n\t\t{type: \"tm-remove-tag\", handler: \"handleRemoveTagEvent\"},\n\t\t{type: \"tm-add-tag\", handler: \"handleAddTagEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldManglerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldManglerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldManglerWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.mangleTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldManglerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nFieldManglerWidget.prototype.handleRemoveFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tdeletion = {};\n\tdeletion[event.param] = undefined;\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,deletion));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\taddition = this.wiki.getModificationFields(),\n\t\thadInvalidFieldName = false,\n\t\taddField = function(name,value) {\n\t\t\tvar trimmedName = name.toLowerCase().trim();\n\t\t\tif(!$tw.utils.isValidFieldName(trimmedName)) {\n\t\t\t\tif(!hadInvalidFieldName) {\n\t\t\t\t\talert($tw.language.getString(\n\t\t\t\t\t\t\"InvalidFieldName\",\n\t\t\t\t\t\t{variables:\n\t\t\t\t\t\t\t{fieldName: trimmedName}\n\t\t\t\t\t\t}\n\t\t\t\t\t));\n\t\t\t\t\thadInvalidFieldName = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif(!value && tiddler) {\n\t\t\t\t\tvalue = tiddler.fields[trimmedName];\n\t\t\t\t}\n\t\t\t\taddition[trimmedName] = value || \"\";\n\t\t\t}\n\t\t\treturn;\n\t\t};\n\taddition.title = this.mangleTitle;\n\tif(typeof event.param === \"string\") {\n\t\taddField(event.param,\"\");\n\t}\n\tif(typeof event.paramObject === \"object\") {\n\t\tfor(var name in event.paramObject) {\n\t\t\taddField(name,event.paramObject[name]);\n\t\t}\n\t}\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,addition));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleRemoveTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tmodification = this.wiki.getModificationFields();\n\tif(tiddler && tiddler.fields.tags) {\n\t\tvar p = tiddler.fields.tags.indexOf(event.param);\n\t\tif(p !== -1) {\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\tmodification.tags.splice(p,1);\n\t\t\tif(modification.tags.length === 0) {\n\t\t\t\tmodification.tags = undefined;\n\t\t\t}\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\n\t\t}\n\t}\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tmodification = this.wiki.getModificationFields();\n\tif(tiddler && typeof event.param === \"string\") {\n\t\tvar tag = event.param.trim();\n\t\tif(tag !== \"\") {\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\t$tw.utils.pushTop(modification.tags,tag);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\t\t\t\n\t\t}\n\t} else if(typeof event.param === \"string\" && event.param.trim() !== \"\" && this.mangleTitle.trim() !== \"\") {\n\t\tvar tag = [];\n\t\ttag.push(event.param.trim());\n\t\tthis.wiki.addTiddler(new $tw.Tiddler({title: this.mangleTitle, tags: tag},modification));\n\t}\n\treturn true;\n};\n\nexports.fieldmangler = FieldManglerWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/fields.js": {
            "title": "$:/core/modules/widgets/fields.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/fields.js\ntype: application/javascript\nmodule-type: widget\n\nFields widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldsWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldsWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldsWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.template = this.getAttribute(\"template\");\n\tthis.sort = this.getAttribute(\"sort\",\"yes\") === \"yes\";\n\tthis.sortReverse = this.getAttribute(\"sortReverse\",\"no\") === \"yes\";\n\tthis.exclude = this.getAttribute(\"exclude\");\n\tthis.include = this.getAttribute(\"include\",null);\n\tthis.stripTitlePrefix = this.getAttribute(\"stripTitlePrefix\",\"no\") === \"yes\";\n\t// Get the value to display\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\n\t// Get the inclusion and exclusion list\n\tvar excludeArr = (this.exclude) ? this.exclude.split(\" \") : [\"text\"];\n\t// Include takes precedence\n\tvar includeArr = (this.include) ? this.include.split(\" \") : null;\n\n\t// Compose the template\n\tvar text = [];\n\tif(this.template && tiddler) {\n\t\tvar fields = [];\n\t\tif (includeArr) { // Include takes precedence\n\t\t\tfor(var i=0; i<includeArr.length; i++) {\n\t\t\t\tif(tiddler.fields[includeArr[i]]) {\n\t\t\t\t\tfields.push(includeArr[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor(var fieldName in tiddler.fields) {\n\t\t\t\tif(excludeArr.indexOf(fieldName) === -1) {\n\t\t\t\t\tfields.push(fieldName);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.sort) fields.sort();\n\t\tif (this.sortReverse) fields.reverse();\n\t\tfor(var f=0, fmax=fields.length; f<fmax; f++) {\n\t\t\tfieldName = fields[f];\n\t\t\tvar row = this.template,\n\t\t\t\tvalue = tiddler.getFieldString(fieldName);\n\t\t\tif(this.stripTitlePrefix && fieldName === \"title\") {\n\t\t\t\tvar reStrip = /^\\{[^\\}]+\\}(.+)/mg,\n\t\t\t\t\treMatch = reStrip.exec(value);\n\t\t\t\tif(reMatch) {\n\t\t\t\t\tvalue = reMatch[1];\n\t\t\t\t}\n\t\t\t}\n\t\t\trow = $tw.utils.replaceString(row,\"$name$\",fieldName);\n\t\t\trow = $tw.utils.replaceString(row,\"$value$\",value);\n\t\t\trow = $tw.utils.replaceString(row,\"$encoded_value$\",$tw.utils.htmlEncode(value));\n\t\t\ttext.push(row);\n\t\t}\n\t}\n\tthis.text = text.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif( changedAttributes.tiddler || changedAttributes.template || changedAttributes.exclude ||\n\t\tchangedAttributes.include || changedAttributes.sort || changedAttributes.sortReverse ||\n\t\tchangedTiddlers[this.tiddlerTitle] || changedAttributes.stripTitlePrefix) {\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\nexports.fields = FieldsWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/image.js": {
            "title": "$:/core/modules/widgets/image.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/image.js\ntype: application/javascript\nmodule-type: widget\n\nThe image widget displays an image referenced with an external URI or with a local tiddler title.\n\n```\n<$image src=\"TiddlerTitle\" width=\"320\" height=\"400\" class=\"classnames\">\n```\n\nThe image source can be the title of an existing tiddler or the URL of an external image.\n\nExternal images always generate an HTML `<img>` tag.\n\nTiddlers that have a _canonical_uri field generate an HTML `<img>` tag with the src attribute containing the URI.\n\nTiddlers that contain image data generate an HTML `<img>` tag with the src attribute containing a base64 representation of the image.\n\nTiddlers that contain wikitext could be rendered to a DIV of the usual size of a tiddler, and then transformed to the size requested.\n\nThe width and height attributes are interpreted as a number of pixels, and do not need to include the \"px\" suffix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\t// Determine what type of image it is\n\tvar tag = \"img\", src = \"\",\n\t\ttiddler = this.wiki.getTiddler(this.imageSource);\n\tif(!tiddler) {\n\t\t// The source isn't the title of a tiddler, so we'll assume it's a URL\n\t\tsrc = this.getVariable(\"tv-get-export-image-link\",{params: [{name: \"src\",value: this.imageSource}],defaultValue: this.imageSource});\n\t} else {\n\t\t// Check if it is an image tiddler\n\t\tif(this.wiki.isImageTiddler(this.imageSource)) {\n\t\t\tvar type = tiddler.fields.type,\n\t\t\t\ttext = tiddler.fields.text,\n\t\t\t\t_canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t// If the tiddler has body text then it doesn't need to be lazily loaded\n\t\t\tif(text) {\n\t\t\t\t// Render the appropriate element for the image type\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = \"data:application/pdf;base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = \"data:image/svg+xml,\" + encodeURIComponent(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = \"data:\" + type + \";base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if(_canonical_uri) {\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\t\n\t\t\t} else {\n\t\t\t\t// Just trigger loading of the tiddler\n\t\t\t\tthis.wiki.getTiddlerText(this.imageSource);\n\t\t\t}\n\t\t}\n\t}\n\t// Create the element and assign the attributes\n\tvar domNode = this.document.createElement(tag);\n\tdomNode.setAttribute(\"src\",src);\n\tif(this.imageClass) {\n\t\tdomNode.setAttribute(\"class\",this.imageClass);\t\t\n\t}\n\tif(this.imageWidth) {\n\t\tdomNode.setAttribute(\"width\",this.imageWidth);\n\t}\n\tif(this.imageHeight) {\n\t\tdomNode.setAttribute(\"height\",this.imageHeight);\n\t}\n\tif(this.imageTooltip) {\n\t\tdomNode.setAttribute(\"title\",this.imageTooltip);\t\t\n\t}\n\tif(this.imageAlt) {\n\t\tdomNode.setAttribute(\"alt\",this.imageAlt);\t\t\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImageWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.imageSource = this.getAttribute(\"source\");\n\tthis.imageWidth = this.getAttribute(\"width\");\n\tthis.imageHeight = this.getAttribute(\"height\");\n\tthis.imageClass = this.getAttribute(\"class\");\n\tthis.imageTooltip = this.getAttribute(\"tooltip\");\n\tthis.imageAlt = this.getAttribute(\"alt\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.width || changedAttributes.height || changedAttributes[\"class\"] || changedAttributes.tooltip || changedTiddlers[this.imageSource]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\t\n\t}\n};\n\nexports.image = ImageWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/importvariables.js": {
            "title": "$:/core/modules/widgets/importvariables.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/importvariables.js\ntype: application/javascript\nmodule-type: widget\n\nImport variable definitions from other tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImportVariablesWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImportVariablesWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImportVariablesWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImportVariablesWidget.prototype.execute = function(tiddlerList) {\n\tvar widgetPointer = this;\n\t// Got to flush all the accumulated variables\n\tthis.variables = new this.variablesConstructor();\n\t// Get our parameters\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Compute the filter\n\tthis.tiddlerList = tiddlerList || this.wiki.filterTiddlers(this.filter,this);\n\t// Accumulate the <$set> widgets from each tiddler\n\t$tw.utils.each(this.tiddlerList,function(title) {\n\t\tvar parser = widgetPointer.wiki.parseTiddler(title);\n\t\tif(parser) {\n\t\t\tvar parseTreeNode = parser.tree[0];\n\t\t\twhile(parseTreeNode && parseTreeNode.type === \"set\") {\n\t\t\t\tvar node = {\n\t\t\t\t\ttype: \"set\",\n\t\t\t\t\tattributes: parseTreeNode.attributes,\n\t\t\t\t\tparams: parseTreeNode.params,\n\t\t\t\t\tisMacroDefinition: parseTreeNode.isMacroDefinition\n\t\t\t\t};\n\t\t\t\tif (parseTreeNode.isMacroDefinition) {\n\t\t\t\t\t// Macro definitions can be folded into\n\t\t\t\t\t// current widget instead of adding\n\t\t\t\t\t// another link to the chain.\n\t\t\t\t\tvar widget = widgetPointer.makeChildWidget(node);\n\t\t\t\t\twidget.computeAttributes();\n\t\t\t\t\twidget.execute();\n\t\t\t\t\t// We SHALLOW copy over all variables\n\t\t\t\t\t// in widget. We can't use\n\t\t\t\t\t// $tw.utils.assign, because that copies\n\t\t\t\t\t// up the prototype chain, which we\n\t\t\t\t\t// don't want.\n\t\t\t\t\t$tw.utils.each(Object.keys(widget.variables), function(key) {\n\t\t\t\t\t\twidgetPointer.variables[key] = widget.variables[key];\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\twidgetPointer.children = [widgetPointer.makeChildWidget(node)];\n\t\t\t\t\t// No more regenerating children for\n\t\t\t\t\t// this widget. If it needs to refresh,\n\t\t\t\t\t// it'll do so along with the the whole\n\t\t\t\t\t// importvariable tree.\n\t\t\t\t\tif (widgetPointer != this) {\n\t\t\t\t\t\twidgetPointer.makeChildWidgets = function(){};\n\t\t\t\t\t}\n\t\t\t\t\twidgetPointer = widgetPointer.children[0];\n\t\t\t\t}\n\t\t\t\tparseTreeNode = parseTreeNode.children && parseTreeNode.children[0];\n\t\t\t}\n\t\t} \n\t});\n\n\tif (widgetPointer != this) {\n\t\twidgetPointer.parseTreeNode.children = this.parseTreeNode.children;\n\t} else {\n\t\twidgetPointer.makeChildWidgets();\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImportVariablesWidget.prototype.refresh = function(changedTiddlers) {\n\t// Recompute our attributes and the filter list\n\tvar changedAttributes = this.computeAttributes(),\n\t\ttiddlerList = this.wiki.filterTiddlers(this.getAttribute(\"filter\"),this);\n\t// Refresh if the filter has changed, or the list of tiddlers has changed, or any of the tiddlers in the list has changed\n\tfunction haveListedTiddlersChanged() {\n\t\tvar changed = false;\n\t\ttiddlerList.forEach(function(title) {\n\t\t\tif(changedTiddlers[title]) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t});\n\t\treturn changed;\n\t}\n\tif(changedAttributes.filter || !$tw.utils.isArrayEqual(this.tiddlerList,tiddlerList) || haveListedTiddlersChanged()) {\n\t\t// Compute the filter\n\t\tthis.removeChildDomNodes();\n\t\tthis.execute(tiddlerList);\n\t\tthis.renderChildren(this.parentDomNode,this.findNextSiblingDomNode());\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.importvariables = ImportVariablesWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/keyboard.js": {
            "title": "$:/core/modules/widgets/keyboard.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/keyboard.js\ntype: application/javascript\nmodule-type: widget\n\nKeyboard shortcut widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar KeyboardWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nKeyboardWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nKeyboardWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.tag && $tw.config.htmlUnsafeElements.indexOf(this.tag) === -1) {\n\t\ttag = this.tag;\n\t}\n\t// Create element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = (this[\"class\"] || \"\").split(\" \");\n\tclasses.push(\"tc-keyboard\");\n\tdomNode.className = classes.join(\" \");\n\t// Add a keyboard event handler\n\tdomNode.addEventListener(\"keydown\",function (event) {\n\t\tif($tw.keyboardManager.checkKeyDescriptors(event,self.keyInfoArray)) {\n\t\t\tvar handled = self.invokeActions(self,event);\n\t\t\tif(self.actions) {\n\t\t\t\tself.invokeActionString(self.actions,self,event);\n\t\t\t}\n\t\t\tself.dispatchMessage(event);\n\t\t\tif(handled || self.actions || self.message) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nKeyboardWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\")});\n};\n\n/*\nCompute the internal state of the widget\n*/\nKeyboardWidget.prototype.execute = function() {\n\tvar self = this;\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\",\"\");\n\tthis.message = this.getAttribute(\"message\",\"\");\n\tthis.param = this.getAttribute(\"param\",\"\");\n\tthis.key = this.getAttribute(\"key\",\"\");\n\tthis.tag = this.getAttribute(\"tag\",\"\");\n\tthis.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tif(this.key.substr(0,2) === \"((\" && this.key.substr(-2,2) === \"))\") {\n\t\tthis.shortcutTiddlers = [];\n\t\tvar name = this.key.substring(2,this.key.length -2);\n\t\t$tw.utils.each($tw.keyboardManager.lookupNames,function(platformDescriptor) {\n\t\t\tself.shortcutTiddlers.push(\"$:/config/\" + platformDescriptor + \"/\" + name);\n\t\t});\n\t}\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nKeyboardWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.message || changedAttributes.param || changedAttributes.key || changedAttributes[\"class\"] || changedAttributes.tag) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\t// Update the keyInfoArray if one of its shortcut-config-tiddlers has changed\n\tif(this.shortcutTiddlers && $tw.utils.hopArray(changedTiddlers,this.shortcutTiddlers)) {\n\t\tthis.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.keyboard = KeyboardWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/link.js": {
            "title": "$:/core/modules/widgets/link.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/link.js\ntype: application/javascript\nmodule-type: widget\n\nLink widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the value of the tv-wikilinks configuration macro\n\tvar wikiLinksMacro = this.getVariable(\"tv-wikilinks\"),\n\t\tuseWikiLinks = wikiLinksMacro ? (wikiLinksMacro.trim() !== \"no\") : true,\n\t\tmissingLinksEnabled = !(this.hideMissingLinks && this.isMissing && !this.isShadow);\n\t// Render the link if required\n\tif(useWikiLinks && missingLinksEnabled) {\n\t\tthis.renderLink(parent,nextSibling);\n\t} else {\n\t\t// Just insert the link text\n\t\tvar domNode = this.document.createElement(\"span\");\n\t\tparent.insertBefore(domNode,nextSibling);\n\t\tthis.renderChildren(domNode,null);\n\t\tthis.domNodes.push(domNode);\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.renderLink = function(parent,nextSibling) {\n\tvar self = this;\n\t// Sanitise the specified tag\n\tvar tag = this.linkTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"a\";\n\t}\n\t// Create our element\n\tvar namespace = this.getVariable(\"namespace\",{defaultValue: \"http://www.w3.org/1999/xhtml\"}),\n\t\tdomNode = this.document.createElementNS(namespace,tag);\n\t// Assign classes\n\tvar classes = [];\n\tif(this.overrideClasses === undefined) {\n\t\tclasses.push(\"tc-tiddlylink\");\n\t\tif(this.isShadow) {\n\t\t\tclasses.push(\"tc-tiddlylink-shadow\");\n\t\t}\n\t\tif(this.isMissing && !this.isShadow) {\n\t\t\tclasses.push(\"tc-tiddlylink-missing\");\n\t\t} else {\n\t\t\tif(!this.isMissing) {\n\t\t\t\tclasses.push(\"tc-tiddlylink-resolves\");\n\t\t\t}\n\t\t}\n\t\tif(this.linkClasses) {\n\t\t\tclasses.push(this.linkClasses);\t\t\t\n\t\t}\n\t} else if(this.overrideClasses !== \"\") {\n\t\tclasses.push(this.overrideClasses)\n\t}\n\tif(classes.length > 0) {\n\t\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t}\n\t// Set an href\n\tvar wikilinkTransformFilter = this.getVariable(\"tv-filter-export-link\"),\n\t\twikiLinkText;\n\tif(wikilinkTransformFilter) {\n\t\t// Use the filter to construct the href\n\t\twikiLinkText = this.wiki.filterTiddlers(wikilinkTransformFilter,this,function(iterator) {\n\t\t\titerator(self.wiki.getTiddler(self.to),self.to)\n\t\t})[0];\n\t} else {\n\t\t// Expand the tv-wikilink-template variable to construct the href\n\t\tvar wikiLinkTemplateMacro = this.getVariable(\"tv-wikilink-template\"),\n\t\t\twikiLinkTemplate = wikiLinkTemplateMacro ? wikiLinkTemplateMacro.trim() : \"#$uri_encoded$\";\n\t\twikiLinkText = $tw.utils.replaceString(wikiLinkTemplate,\"$uri_encoded$\",encodeURIComponent(this.to));\n\t\twikiLinkText = $tw.utils.replaceString(wikiLinkText,\"$uri_doubleencoded$\",encodeURIComponent(encodeURIComponent(this.to)));\n\t}\n\t// Override with the value of tv-get-export-link if defined\n\twikiLinkText = this.getVariable(\"tv-get-export-link\",{params: [{name: \"to\",value: this.to}],defaultValue: wikiLinkText});\n\tif(tag === \"a\") {\n\t\tvar namespaceHref = (namespace === \"http://www.w3.org/2000/svg\") ? \"http://www.w3.org/1999/xlink\" : undefined;\n\t\tdomNode.setAttributeNS(namespaceHref,\"href\",wikiLinkText);\n\t}\n\t// Set the tabindex\n\tif(this.tabIndex) {\n\t\tdomNode.setAttribute(\"tabindex\",this.tabIndex);\n\t}\n\t// Set the tooltip\n\t// HACK: Performance issues with re-parsing the tooltip prevent us defaulting the tooltip to \"<$transclude field='tooltip'><$transclude field='title'/></$transclude>\"\n\tvar tooltipWikiText = this.tooltip || this.getVariable(\"tv-wikilink-tooltip\");\n\tif(tooltipWikiText) {\n\t\tvar tooltipText = this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",tooltipWikiText,{\n\t\t\t\tparseAsInline: true,\n\t\t\t\tvariables: {\n\t\t\t\t\tcurrentTiddler: this.to\n\t\t\t\t},\n\t\t\t\tparentWidget: this\n\t\t\t});\n\t\tdomNode.setAttribute(\"title\",tooltipText);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"click\", handlerObject: this, handlerMethod: \"handleClickEvent\"},\n\t]);\n\t// Make the link draggable if required\n\tif(this.draggable === \"yes\") {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.to;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nLinkWidget.prototype.handleClickEvent = function(event) {\n\t// Send the click on its way as a navigate event\n\tvar bounds = this.domNodes[0].getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1),\n\t\tmetaKey: event.metaKey,\n\t\tctrlKey: event.ctrlKey,\n\t\taltKey: event.altKey,\n\t\tshiftKey: event.shiftKey,\n\t\tevent: event\n\t});\n\tif(this.domNodes[0].hasAttribute(\"href\")) {\n\t\tevent.preventDefault();\n\t}\n\tevent.stopPropagation();\n\treturn false;\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.to = this.getAttribute(\"to\",this.getVariable(\"currentTiddler\"));\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.linkClasses = this.getAttribute(\"class\");\n\tthis.overrideClasses = this.getAttribute(\"overrideClass\");\n\tthis.tabIndex = this.getAttribute(\"tabindex\");\n\tthis.draggable = this.getAttribute(\"draggable\",\"yes\");\n\tthis.linkTag = this.getAttribute(\"tag\",\"a\");\n\t// Determine the link characteristics\n\tthis.isMissing = !this.wiki.tiddlerExists(this.to);\n\tthis.isShadow = this.wiki.isShadowTiddler(this.to);\n\tthis.hideMissingLinks = (this.getVariable(\"tv-show-missing-links\") || \"yes\") === \"no\";\n\t// Make the child widgets\n\tvar templateTree;\n\tif(this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\ttemplateTree = this.parseTreeNode.children;\n\t} else {\n\t\t// Default template is a link to the title\n\t\ttemplateTree = [{type: \"text\", text: this.to}];\n\t}\n\tthis.makeChildWidgets(templateTree);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedTiddlers[this.to] || changedAttributes[\"aria-label\"] || changedAttributes.tooltip) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.link = LinkWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/linkcatcher.js": {
            "title": "$:/core/modules/widgets/linkcatcher.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/linkcatcher.js\ntype: application/javascript\nmodule-type: widget\n\nLinkcatcher widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkCatcherWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkCatcherWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkCatcherWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkCatcherWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.catchTo = this.getAttribute(\"to\");\n\tthis.catchMessage = this.getAttribute(\"message\");\n\tthis.catchSet = this.getAttribute(\"set\");\n\tthis.catchSetTo = this.getAttribute(\"setTo\");\n\tthis.catchActions = this.getAttribute(\"actions\");\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n\t// When executing actions we avoid trapping navigate events, so that we don't trigger ourselves recursively\n\tthis.executingActions = false;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkCatcherWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedAttributes.message || changedAttributes.set || changedAttributes.setTo) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\n/*\nHandle a tm-navigate event\n*/\nLinkCatcherWidget.prototype.handleNavigateEvent = function(event) {\n\tif(!this.executingActions) {\n\t\t// Execute the actions\n\t\tif(this.catchTo) {\n\t\t\tthis.wiki.setTextReference(this.catchTo,event.navigateTo,this.getVariable(\"currentTiddler\"));\n\t\t}\n\t\tif(this.catchMessage && this.parentWidget) {\n\t\t\tthis.parentWidget.dispatchEvent({\n\t\t\t\ttype: this.catchMessage,\n\t\t\t\tparam: event.navigateTo,\n\t\t\t\tnavigateTo: event.navigateTo\n\t\t\t});\n\t\t}\n\t\tif(this.catchSet) {\n\t\t\tvar tiddler = this.wiki.getTiddler(this.catchSet);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,{title: this.catchSet, text: this.catchSetTo}));\n\t\t}\n\t\tif(this.catchActions) {\n\t\t\tthis.executingActions = true;\n\t\t\tvar modifierKey = $tw.keyboardManager.getEventModifierKeyDescriptor(event);\n\t\t\tthis.invokeActionString(this.catchActions,this,event,{navigateTo: event.navigateTo, modifier: modifierKey});\n\t\t\tthis.executingActions = false;\n\t\t}\n\t} else {\n\t\t// This is a navigate event generated by the actions of this linkcatcher, so we don't trap it again, but just pass it to the parent\n\t\tthis.parentWidget.dispatchEvent({\n\t\t\ttype: \"tm-navigate\",\n\t\t\tparam: event.navigateTo,\n\t\t\tnavigateTo: event.navigateTo\n\t\t});\n\t}\n\treturn false;\n};\n\nexports.linkcatcher = LinkCatcherWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/list.js": {
            "title": "$:/core/modules/widgets/list.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/list.js\ntype: application/javascript\nmodule-type: widget\n\nList and list item widgets\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\n/*\nThe list widget creates list element sub-widgets that reach back into the list widget for their configuration\n*/\n\nvar ListWidget = function(parseTreeNode,options) {\n\t// Initialise the storyviews if they've not been done already\n\tif(!this.storyViews) {\n\t\tListWidget.prototype.storyViews = {};\n\t\t$tw.modules.applyMethods(\"storyview\",this.storyViews);\n\t}\n\t// Main initialisation inherited from widget.js\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\t// Construct the storyview\n\tvar StoryView = this.storyViews[this.storyViewName];\n\tif(this.storyViewName && !StoryView) {\n\t\tStoryView = this.storyViews[\"classic\"];\n\t}\n\tif(StoryView && !this.document.isTiddlyWikiFakeDom) {\n\t\tthis.storyview = new StoryView(this);\n\t} else {\n\t\tthis.storyview = null;\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nListWidget.prototype.execute = function() {\n\t// Get our attributes\n\tthis.template = this.getAttribute(\"template\");\n\tthis.editTemplate = this.getAttribute(\"editTemplate\");\n\tthis.variableName = this.getAttribute(\"variable\",\"currentTiddler\");\n\tthis.storyViewName = this.getAttribute(\"storyview\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\t// Compose the list elements\n\tthis.list = this.getTiddlerList();\n\tvar members = [],\n\t\tself = this;\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\tmembers = this.getEmptyMessage();\n\t} else {\n\t\t$tw.utils.each(this.list,function(title,index) {\n\t\t\tmembers.push(self.makeItemTemplate(title));\n\t\t});\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(members);\n\t// Clear the last history\n\tthis.history = [];\n};\n\nListWidget.prototype.getTiddlerList = function() {\n\tvar defaultFilter = \"[!is[system]sort[title]]\";\n\treturn this.wiki.filterTiddlers(this.getAttribute(\"filter\",defaultFilter),this);\n};\n\nListWidget.prototype.getEmptyMessage = function() {\n\tvar parser,\n\t\temptyMessage = this.getAttribute(\"emptyMessage\",\"\");\n\t// this.wiki.parseText() calls \n\t// new Parser(..), which should only be done, if needed, because it's heavy!\n\tif (emptyMessage === \"\") {\n\t\treturn [];\n\t}\n\tparser = this.wiki.parseText(\"text/vnd.tiddlywiki\",emptyMessage,{parseAsInline: true});\n\tif(parser) {\n\t\treturn parser.tree;\n\t} else {\n\t\treturn [];\n\t}\n};\n\n/*\nCompose the template for a list item\n*/\nListWidget.prototype.makeItemTemplate = function(title) {\n\t// Check if the tiddler is a draft\n\tvar tiddler = this.wiki.getTiddler(title),\n\t\tisDraft = tiddler && tiddler.hasField(\"draft.of\"),\n\t\ttemplate = this.template,\n\t\ttemplateTree;\n\tif(isDraft && this.editTemplate) {\n\t\ttemplate = this.editTemplate;\n\t}\n\t// Compose the transclusion of the template\n\tif(template) {\n\t\ttemplateTree = [{type: \"transclude\", attributes: {tiddler: {type: \"string\", value: template}}}];\n\t} else {\n\t\tif(this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\t\ttemplateTree = this.parseTreeNode.children;\n\t\t} else {\n\t\t\t// Default template is a link to the title\n\t\t\ttemplateTree = [{type: \"element\", tag: this.parseTreeNode.isBlock ? \"div\" : \"span\", children: [{type: \"link\", attributes: {to: {type: \"string\", value: title}}, children: [\n\t\t\t\t\t{type: \"text\", text: title}\n\t\t\t]}]}];\n\t\t}\n\t}\n\t// Return the list item\n\treturn {type: \"listitem\", itemTitle: title, variableName: this.variableName, children: templateTree};\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tresult;\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshStart) {\n\t\tthis.storyview.refreshStart(changedTiddlers,changedAttributes);\n\t}\n\t// Completely refresh if any of our attributes have changed\n\tif(changedAttributes.filter || changedAttributes.template || changedAttributes.editTemplate || changedAttributes.emptyMessage || changedAttributes.storyview || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\tresult = true;\n\t} else {\n\t\t// Handle any changes to the list\n\t\tresult = this.handleListChanges(changedTiddlers);\n\t\t// Handle any changes to the history stack\n\t\tif(this.historyTitle && changedTiddlers[this.historyTitle]) {\n\t\t\tthis.handleHistoryChanges();\n\t\t}\n\t}\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshEnd) {\n\t\tthis.storyview.refreshEnd(changedTiddlers,changedAttributes);\n\t}\n\treturn result;\n};\n\n/*\nHandle any changes to the history list\n*/\nListWidget.prototype.handleHistoryChanges = function() {\n\t// Get the history data\n\tvar newHistory = this.wiki.getTiddlerDataCached(this.historyTitle,[]);\n\t// Ignore any entries of the history that match the previous history\n\tvar entry = 0;\n\twhile(entry < newHistory.length && entry < this.history.length && newHistory[entry].title === this.history[entry].title) {\n\t\tentry++;\n\t}\n\t// Navigate forwards to each of the new tiddlers\n\twhile(entry < newHistory.length) {\n\t\tif(this.storyview && this.storyview.navigateTo) {\n\t\t\tthis.storyview.navigateTo(newHistory[entry]);\n\t\t}\n\t\tentry++;\n\t}\n\t// Update the history\n\tthis.history = newHistory;\n};\n\n/*\nProcess any changes to the list\n*/\nListWidget.prototype.handleListChanges = function(changedTiddlers) {\n\t// Get the new list\n\tvar prevList = this.list;\n\tthis.list = this.getTiddlerList();\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\t// Check if it was empty before\n\t\tif(prevList.length === 0) {\n\t\t\t// If so, just refresh the empty message\n\t\t\treturn this.refreshChildren(changedTiddlers);\n\t\t} else {\n\t\t\t// Replace the previous content with the empty message\n\t\t\tfor(t=this.children.length-1; t>=0; t--) {\n\t\t\t\tthis.removeListItem(t);\n\t\t\t}\n\t\t\tvar nextSibling = this.findNextSiblingDomNode();\n\t\t\tthis.makeChildWidgets(this.getEmptyMessage());\n\t\t\tthis.renderChildren(this.parentDomNode,nextSibling);\n\t\t\treturn true;\n\t\t}\n\t} else {\n\t\t// If the list was empty then we need to remove the empty message\n\t\tif(prevList.length === 0) {\n\t\t\tthis.removeChildDomNodes();\n\t\t\tthis.children = [];\n\t\t}\n\t\t// Cycle through the list, inserting and removing list items as needed\n\t\tvar hasRefreshed = false;\n\t\tfor(var t=0; t<this.list.length; t++) {\n\t\t\tvar index = this.findListItem(t,this.list[t]);\n\t\t\tif(index === undefined) {\n\t\t\t\t// The list item must be inserted\n\t\t\t\tthis.insertListItem(t,this.list[t]);\n\t\t\t\thasRefreshed = true;\n\t\t\t} else {\n\t\t\t\t// There are intervening list items that must be removed\n\t\t\t\tfor(var n=index-1; n>=t; n--) {\n\t\t\t\t\tthis.removeListItem(n);\n\t\t\t\t\thasRefreshed = true;\n\t\t\t\t}\n\t\t\t\t// Refresh the item we're reusing\n\t\t\t\tvar refreshed = this.children[t].refresh(changedTiddlers);\n\t\t\t\thasRefreshed = hasRefreshed || refreshed;\n\t\t\t}\n\t\t}\n\t\t// Remove any left over items\n\t\tfor(t=this.children.length-1; t>=this.list.length; t--) {\n\t\t\tthis.removeListItem(t);\n\t\t\thasRefreshed = true;\n\t\t}\n\t\treturn hasRefreshed;\n\t}\n};\n\n/*\nFind the list item with a given title, starting from a specified position\n*/\nListWidget.prototype.findListItem = function(startIndex,title) {\n\twhile(startIndex < this.children.length) {\n\t\tif(this.children[startIndex].parseTreeNode.itemTitle === title) {\n\t\t\treturn startIndex;\n\t\t}\n\t\tstartIndex++;\n\t}\n\treturn undefined;\n};\n\n/*\nInsert a new list item at the specified index\n*/\nListWidget.prototype.insertListItem = function(index,title) {\n\t// Create, insert and render the new child widgets\n\tvar widget = this.makeChildWidget(this.makeItemTemplate(title));\n\twidget.parentDomNode = this.parentDomNode; // Hack to enable findNextSiblingDomNode() to work\n\tthis.children.splice(index,0,widget);\n\tvar nextSibling = widget.findNextSiblingDomNode();\n\twidget.render(this.parentDomNode,nextSibling);\n\t// Animate the insertion if required\n\tif(this.storyview && this.storyview.insert) {\n\t\tthis.storyview.insert(widget);\n\t}\n\treturn true;\n};\n\n/*\nRemove the specified list item\n*/\nListWidget.prototype.removeListItem = function(index) {\n\tvar widget = this.children[index];\n\t// Animate the removal if required\n\tif(this.storyview && this.storyview.remove) {\n\t\tthis.storyview.remove(widget);\n\t} else {\n\t\twidget.removeChildDomNodes();\n\t}\n\t// Remove the child widget\n\tthis.children.splice(index,1);\n};\n\nexports.list = ListWidget;\n\nvar ListItemWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListItemWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListItemWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nListItemWidget.prototype.execute = function() {\n\t// Set the current list item title\n\tthis.setVariable(this.parseTreeNode.variableName,this.parseTreeNode.itemTitle);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListItemWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.listitem = ListItemWidget;\n\n})();",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/log.js": {
            "title": "$:/core/modules/widgets/log.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/log.js\ntype: application/javascript\nmodule-type: widget-subclass\n\nWidget to log debug messages\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.baseClass = \"action-log\";\n\nexports.name = \"log\";\n\nexports.constructor = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n}\n\nexports.prototype = {};\n\nexports.prototype.render = function(event) {\n\tObject.getPrototypeOf(Object.getPrototypeOf(this)).render.call(this,event);\t\n\tObject.getPrototypeOf(Object.getPrototypeOf(this)).log.call(this);\n}\n\n})();",
            "type": "application/javascript",
            "module-type": "widget-subclass"
        },
        "$:/core/modules/widgets/macrocall.js": {
            "title": "$:/core/modules/widgets/macrocall.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/macrocall.js\ntype: application/javascript\nmodule-type: widget\n\nMacrocall widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar MacroCallWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nMacroCallWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nMacroCallWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nMacroCallWidget.prototype.execute = function() {\n\t// Get the parse type if specified\n\tthis.parseType = this.getAttribute(\"$type\",\"text/vnd.tiddlywiki\");\n\tthis.renderOutput = this.getAttribute(\"$output\",\"text/html\");\n\t// Merge together the parameters specified in the parse tree with the specified attributes\n\tvar params = this.parseTreeNode.params ? this.parseTreeNode.params.slice(0) : [];\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparams.push({name: name, value: attribute});\t\t\t\n\t\t}\n\t});\n\t// Get the macro value\n\tvar macroName = this.parseTreeNode.name || this.getAttribute(\"$name\"),\n\t\tvariableInfo = this.getVariableInfo(macroName,{params: params}),\n\t\ttext = variableInfo.text,\n\t\tparseTreeNodes;\n\t// Are we rendering to HTML?\n\tif(this.renderOutput === \"text/html\") {\n\t\t// If so we'll return the parsed macro\n\t\t// Check if we've already cached parsing this macro\n\t\tvar mode = this.parseTreeNode.isBlock ? \"blockParser\" : \"inlineParser\",\n\t\t\tparser;\n\t\tif(variableInfo.srcVariable && variableInfo.srcVariable[mode]) {\n\t\t\tparser = variableInfo.srcVariable[mode];\n\t\t} else {\n\t\t\tparser = this.wiki.parseText(this.parseType,text,\n\t\t\t\t\t\t\t\t{parseAsInline: !this.parseTreeNode.isBlock});\n\t\t\tif(variableInfo.isCacheable && variableInfo.srcVariable) {\n\t\t\t\tvariableInfo.srcVariable[mode] = parser;\n\t\t\t}\n\t\t}\n\t\tvar parseTreeNodes = parser ? parser.tree : [];\n\t\t// Wrap the parse tree in a vars widget assigning the parameters to variables named \"__paramname__\"\n\t\tvar attributes = {};\n\t\t$tw.utils.each(variableInfo.params,function(param) {\n\t\t\tvar name = \"__\" + param.name + \"__\";\n\t\t\tattributes[name] = {\n\t\t\t\tname: name,\n\t\t\t\ttype: \"string\",\n\t\t\t\tvalue: param.value\n\t\t\t};\n\t\t});\n\t\tparseTreeNodes = [{\n\t\t\ttype: \"vars\",\n\t\t\tattributes: attributes,\n\t\t\tchildren: parseTreeNodes\n\t\t}];\n\t} else if(this.renderOutput === \"text/raw\") {\n\t\tparseTreeNodes = [{type: \"text\", text: text}];\n\t} else {\n\t\t// Otherwise, we'll render the text\n\t\tvar plainText = this.wiki.renderText(\"text/plain\",this.parseType,text,{parentWidget: this});\n\t\tparseTreeNodes = [{type: \"text\", text: plainText}];\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nMacroCallWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\t// Rerender ourselves\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.macrocall = MacroCallWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/navigator.js": {
            "title": "$:/core/modules/widgets/navigator.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/navigator.js\ntype: application/javascript\nmodule-type: widget\n\nNavigator widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar IMPORT_TITLE = \"$:/Import\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigatorWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"},\n\t\t{type: \"tm-edit-tiddler\", handler: \"handleEditTiddlerEvent\"},\n\t\t{type: \"tm-delete-tiddler\", handler: \"handleDeleteTiddlerEvent\"},\n\t\t{type: \"tm-save-tiddler\", handler: \"handleSaveTiddlerEvent\"},\n\t\t{type: \"tm-cancel-tiddler\", handler: \"handleCancelTiddlerEvent\"},\n\t\t{type: \"tm-close-tiddler\", handler: \"handleCloseTiddlerEvent\"},\n\t\t{type: \"tm-close-all-tiddlers\", handler: \"handleCloseAllTiddlersEvent\"},\n\t\t{type: \"tm-close-other-tiddlers\", handler: \"handleCloseOtherTiddlersEvent\"},\n\t\t{type: \"tm-new-tiddler\", handler: \"handleNewTiddlerEvent\"},\n\t\t{type: \"tm-import-tiddlers\", handler: \"handleImportTiddlersEvent\"},\n\t\t{type: \"tm-perform-import\", handler: \"handlePerformImportEvent\"},\n\t\t{type: \"tm-fold-tiddler\", handler: \"handleFoldTiddlerEvent\"},\n\t\t{type: \"tm-fold-other-tiddlers\", handler: \"handleFoldOtherTiddlersEvent\"},\n\t\t{type: \"tm-fold-all-tiddlers\", handler: \"handleFoldAllTiddlersEvent\"},\n\t\t{type: \"tm-unfold-all-tiddlers\", handler: \"handleUnfoldAllTiddlersEvent\"},\n\t\t{type: \"tm-rename-tiddler\", handler: \"handleRenameTiddlerEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigatorWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigatorWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigatorWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.storyTitle = this.getAttribute(\"story\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\tthis.setVariable(\"tv-story-list\",this.storyTitle);\n\tthis.setVariable(\"tv-history-list\",this.historyTitle);\n\tthis.story = new $tw.Story({\n\t\twiki: this.wiki,\n\t\tstoryTitle: this.storyTitle,\n\t\thistoryTitle: this.historyTitle\n\t});\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nNavigatorWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.story || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nNavigatorWidget.prototype.getStoryList = function() {\n\treturn this.storyTitle ? this.wiki.getTiddlerList(this.storyTitle) : null;\n};\n\nNavigatorWidget.prototype.saveStoryList = function(storyList) {\n\tif(this.storyTitle) {\n\t\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\t\t{title: this.storyTitle},\n\t\t\tstoryTiddler,\n\t\t\t{list: storyList}\n\t\t));\t\t\n\t}\n};\n\nNavigatorWidget.prototype.removeTitleFromStory = function(storyList,title) {\n\tif(storyList) {\n\t\tvar p = storyList.indexOf(title);\n\t\twhile(p !== -1) {\n\t\t\tstoryList.splice(p,1);\n\t\t\tp = storyList.indexOf(title);\n\t\t}\t\t\n\t}\n};\n\nNavigatorWidget.prototype.replaceFirstTitleInStory = function(storyList,oldTitle,newTitle) {\n\tif(storyList) {\n\t\tvar pos = storyList.indexOf(oldTitle);\n\t\tif(pos !== -1) {\n\t\t\tstoryList[pos] = newTitle;\n\t\t\tdo {\n\t\t\t\tpos = storyList.indexOf(oldTitle,pos + 1);\n\t\t\t\tif(pos !== -1) {\n\t\t\t\t\tstoryList.splice(pos,1);\n\t\t\t\t}\n\t\t\t} while(pos !== -1);\n\t\t} else {\n\t\t\tstoryList.splice(0,0,newTitle);\n\t\t}\t\t\n\t}\n};\n\nNavigatorWidget.prototype.addToStory = function(title,fromTitle) {\n\tif(this.storyTitle) {\n\t\tthis.story.addToStory(title,fromTitle,{\n\t\t\topenLinkFromInsideRiver: this.getAttribute(\"openLinkFromInsideRiver\",\"top\"),\n\t\t\topenLinkFromOutsideRiver: this.getAttribute(\"openLinkFromOutsideRiver\",\"top\")\n\t\t});\n\t}\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\n*/\nNavigatorWidget.prototype.addToHistory = function(title,fromPageRect) {\n\tthis.story.addToHistory(title,fromPageRect,this.historyTitle);\n};\n\n/*\nHandle a tm-navigate event\n*/\nNavigatorWidget.prototype.handleNavigateEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-navigating\",event);\n\tif(event.navigateTo) {\n\t\tthis.addToStory(event.navigateTo,event.navigateFromTitle);\n\t\tif(!event.navigateSuppressNavigation) {\n\t\t\tthis.addToHistory(event.navigateTo,event.navigateFromClientRect);\n\t\t}\n\t}\n\treturn false;\n};\n\n// Close a specified tiddler\nNavigatorWidget.prototype.handleCloseTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\tstoryList = this.getStoryList();\n\t// Look for tiddlers with this title to close\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\treturn false;\n};\n\n// Close all tiddlers\nNavigatorWidget.prototype.handleCloseAllTiddlersEvent = function(event) {\n\tthis.saveStoryList([]);\n\treturn false;\n};\n\n// Close other tiddlers\nNavigatorWidget.prototype.handleCloseOtherTiddlersEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle;\n\tthis.saveStoryList([title]);\n\treturn false;\n};\n\n// Place a tiddler in edit mode\nNavigatorWidget.prototype.handleEditTiddlerEvent = function(event) {\n\tvar editTiddler = $tw.hooks.invokeHook(\"th-editing-tiddler\",event);\n\tif(!editTiddler) {\n\t\treturn false;\n\t}\n\tvar self = this;\n\tfunction isUnmodifiedShadow(title) {\n\t\treturn self.wiki.isShadowTiddler(title) && !self.wiki.tiddlerExists(title);\n\t}\n\tfunction confirmEditShadow(title) {\n\t\treturn confirm($tw.language.getString(\n\t\t\t\"ConfirmEditShadowTiddler\",\n\t\t\t{variables:\n\t\t\t\t{title: title}\n\t\t\t}\n\t\t));\n\t}\n\tvar title = event.param || event.tiddlerTitle;\n\tif(isUnmodifiedShadow(title) && !confirmEditShadow(title)) {\n\t\treturn false;\n\t}\n\t// Replace the specified tiddler with a draft in edit mode\n\tvar draftTiddler = this.makeDraftTiddler(title);\n\t// Update the story and history if required\n\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\tvar draftTitle = draftTiddler.fields.title,\n\t\t\tstoryList = this.getStoryList();\n\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\tthis.saveStoryList(storyList);\n\t\treturn false;\n\t}\n};\n\n// Delete a tiddler\nNavigatorWidget.prototype.handleDeleteTiddlerEvent = function(event) {\n\t// Get the tiddler we're deleting\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList(),\n\t\toriginalTitle = tiddler ? tiddler.fields[\"draft.of\"] : \"\",\n\t\toriginalTiddler = originalTitle ? this.wiki.getTiddler(originalTitle) : undefined,\n\t\tconfirmationTitle;\n\tif(!tiddler) {\n\t\treturn false;\n\t}\n\t// Check if the tiddler we're deleting is in draft mode\n\tif(originalTitle) {\n\t\t// If so, we'll prompt for confirmation referencing the original tiddler\n\t\tconfirmationTitle = originalTitle;\n\t} else {\n\t\t// If not a draft, then prompt for confirmation referencing the specified tiddler\n\t\tconfirmationTitle = title;\n\t}\n\t// Seek confirmation\n\tif((this.wiki.getTiddler(originalTitle) || (tiddler.fields.text || \"\") !== \"\") && !confirm($tw.language.getString(\n\t\t\t\t\"ConfirmDeleteTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: confirmationTitle}\n\t\t\t\t}\n\t\t\t))) {\n\t\treturn false;\n\t}\n\t// Delete the original tiddler\n\tif(originalTitle) {\n\t\tif(originalTiddler) {\n\t\t\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",originalTiddler);\n\t\t}\n\t\tthis.wiki.deleteTiddler(originalTitle);\n\t\tthis.removeTitleFromStory(storyList,originalTitle);\n\t}\n\t// Invoke the hook function and delete this tiddler\n\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",tiddler);\n\tthis.wiki.deleteTiddler(title);\n\t// Remove the closed tiddler from the story\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\treturn false;\n};\n\n/*\nCreate/reuse the draft tiddler for a given title\n*/\nNavigatorWidget.prototype.makeDraftTiddler = function(targetTitle) {\n\t// See if there is already a draft tiddler for this tiddler\n\tvar draftTitle = this.wiki.findDraft(targetTitle);\n\tif(draftTitle) {\n\t\treturn this.wiki.getTiddler(draftTitle);\n\t}\n\t// Get the current value of the tiddler we're editing\n\tvar tiddler = this.wiki.getTiddler(targetTitle);\n\t// Save the initial value of the draft tiddler\n\tdraftTitle = this.generateDraftTitle(targetTitle);\n\tvar draftTiddler = new $tw.Tiddler({\n\t\t\t\ttext: \"\",\n\t\t\t},\n\t\t\ttiddler,\n\t\t\t{\n\t\t\t\ttitle: draftTitle,\n\t\t\t\t\"draft.title\": targetTitle,\n\t\t\t\t\"draft.of\": targetTitle\n\t\t\t},\n\t\t\tthis.wiki.getModificationFields()\n\t\t);\n\tthis.wiki.addTiddler(draftTiddler);\n\treturn draftTiddler;\n};\n\n/*\nGenerate a title for the draft of a given tiddler\n*/\nNavigatorWidget.prototype.generateDraftTitle = function(title) {\n\treturn this.wiki.generateDraftTitle(title);\n};\n\n// Take a tiddler out of edit mode, saving the changes\nNavigatorWidget.prototype.handleSaveTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList();\n\t// Replace the original tiddler with the draft\n\tif(tiddler) {\n\t\tvar draftTitle = (tiddler.fields[\"draft.title\"] || \"\").trim(),\n\t\t\tdraftOf = (tiddler.fields[\"draft.of\"] || \"\").trim();\n\t\tif(draftTitle) {\n\t\t\tvar isRename = draftOf !== draftTitle,\n\t\t\t\tisConfirmed = true;\n\t\t\tif(isRename && this.wiki.tiddlerExists(draftTitle)) {\n\t\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\t\"ConfirmOverwriteTiddler\",\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{title: draftTitle}\n\t\t\t\t\t}\n\t\t\t\t));\n\t\t\t}\n\t\t\tif(isConfirmed) {\n\t\t\t\t// Create the new tiddler and pass it through the th-saving-tiddler hook\n\t\t\t\tvar newTiddler = new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\ttitle: draftTitle,\n\t\t\t\t\t\"draft.title\": undefined,\n\t\t\t\t\t\"draft.of\": undefined\n\t\t\t\t},this.wiki.getModificationFields());\n\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-saving-tiddler\",newTiddler,tiddler);\n\t\t\t\tthis.wiki.addTiddler(newTiddler);\n\t\t\t\t// If enabled, relink references to renamed tiddler\n\t\t\t\tvar shouldRelink = this.getAttribute(\"relinkOnRename\",\"no\").toLowerCase().trim() === \"yes\";\n\t\t\t\tif(isRename && shouldRelink && this.wiki.tiddlerExists(draftOf)) {\n\t\t\t\t\tthis.wiki.relinkTiddler(draftOf,draftTitle);\n\t\t\t\t}\n\t\t\t\t// Remove the draft tiddler\n\t\t\t\tthis.wiki.deleteTiddler(title);\n\t\t\t\t// Remove the original tiddler if we're renaming it\n\t\t\t\tif(isRename) {\n\t\t\t\t\tthis.wiki.deleteTiddler(draftOf);\n\t\t\t\t}\n\t\t\t\t// #2381 always remove new title & old\n\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\tthis.removeTitleFromStory(storyList,draftOf);\n\t\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\t\t// Replace the draft in the story with the original\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\t\t\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\t\t\t\tif(draftTitle !== this.storyTitle) {\n\t\t\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Trigger an autosave\n\t\t\t\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Take a tiddler out of edit mode without saving the changes\nNavigatorWidget.prototype.handleCancelTiddlerEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-cancelling-tiddler\", event);\n\t// Flip the specified tiddler from draft back to the original\n\tvar draftTitle = event.param || event.tiddlerTitle,\n\t\tdraftTiddler = this.wiki.getTiddler(draftTitle),\n\t\toriginalTitle = draftTiddler && draftTiddler.fields[\"draft.of\"];\n\tif(draftTiddler && originalTitle) {\n\t\t// Ask for confirmation if the tiddler text has changed\n\t\tvar isConfirmed = true,\n\t\t\toriginalTiddler = this.wiki.getTiddler(originalTitle),\n\t\t\tstoryList = this.getStoryList();\n\t\tif(this.wiki.isDraftModified(draftTitle)) {\n\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\"ConfirmCancelTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: draftTitle}\n\t\t\t\t}\n\t\t\t));\n\t\t}\n\t\t// Remove the draft tiddler\n\t\tif(isConfirmed) {\n\t\t\tthis.wiki.deleteTiddler(draftTitle);\n\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\tif(originalTiddler) {\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,draftTitle,originalTitle);\n\t\t\t\t\tthis.addToHistory(originalTitle,event.navigateFromClientRect);\n\t\t\t\t} else {\n\t\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\t}\n\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Create a new draft tiddler\n// event.param can either be the title of a template tiddler, or a hashmap of fields.\n//\n// The title of the newly created tiddler follows these rules:\n// * If a hashmap was used and a title field was specified, use that title\n// * If a hashmap was used without a title field, use a default title, if necessary making it unique with a numeric suffix\n// * If a template tiddler was used, use the title of the template, if necessary making it unique with a numeric suffix\n//\n// If a draft of the target tiddler already exists then it is reused\nNavigatorWidget.prototype.handleNewTiddlerEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-new-tiddler\", event);\n\t// Get the story details\n\tvar storyList = this.getStoryList(),\n\t\ttemplateTiddler, additionalFields, title, draftTitle, existingTiddler;\n\t// Get the template tiddler (if any)\n\tif(typeof event.param === \"string\") {\n\t\t// Get the template tiddler\n\t\ttemplateTiddler = this.wiki.getTiddler(event.param);\n\t\t// Generate a new title\n\t\ttitle = this.wiki.generateNewTitle(event.param || $tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t}\n\t// Get the specified additional fields\n\tif(typeof event.paramObject === \"object\") {\n\t\tadditionalFields = event.paramObject;\n\t}\n\tif(typeof event.param === \"object\") { // Backwards compatibility with 5.1.3\n\t\tadditionalFields = event.param;\n\t}\n\tif(additionalFields && additionalFields.title) {\n\t\ttitle = additionalFields.title;\n\t}\n\t// Make a copy of the additional fields excluding any blank ones\n\tvar filteredAdditionalFields = $tw.utils.extend({},additionalFields);\n\tObject.keys(filteredAdditionalFields).forEach(function(fieldName) {\n\t\tif(filteredAdditionalFields[fieldName] === \"\") {\n\t\t\tdelete filteredAdditionalFields[fieldName];\n\t\t}\n\t});\n\t// Generate a title if we don't have one\n\ttitle = title || this.wiki.generateNewTitle($tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t// Find any existing draft for this tiddler\n\tdraftTitle = this.wiki.findDraft(title);\n\t// Pull in any existing tiddler\n\tif(draftTitle) {\n\t\texistingTiddler = this.wiki.getTiddler(draftTitle);\n\t} else {\n\t\tdraftTitle = this.generateDraftTitle(title);\n\t\texistingTiddler = this.wiki.getTiddler(title);\n\t}\n\t// Merge the tags\n\tvar mergedTags = [];\n\tif(existingTiddler && existingTiddler.fields.tags) {\n\t\t$tw.utils.pushTop(mergedTags,existingTiddler.fields.tags);\n\t}\n\tif(additionalFields && additionalFields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,$tw.utils.parseStringArray(additionalFields.tags));\n\t}\n\tif(templateTiddler && templateTiddler.fields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,templateTiddler.fields.tags);\n\t}\n\t// Save the draft tiddler\n\tvar draftTiddler = new $tw.Tiddler({\n\t\t\ttext: \"\",\n\t\t\t\"draft.title\": title\n\t\t},\n\t\ttemplateTiddler,\n\t\tadditionalFields,\n\t\tthis.wiki.getCreationFields(),\n\t\texistingTiddler,\n\t\tfilteredAdditionalFields,\n\t\t{\n\t\t\ttitle: draftTitle,\n\t\t\t\"draft.of\": title,\n\t\t\ttags: mergedTags\n\t\t},this.wiki.getModificationFields());\n\tthis.wiki.addTiddler(draftTiddler);\n\t// Update the story to insert the new draft at the top and remove any existing tiddler\n\tif(storyList && storyList.indexOf(draftTitle) === -1) {\n\t\tvar slot = storyList.indexOf(event.navigateFromTitle);\n\t\tif(slot === -1) {\n\t\t\tslot = this.getAttribute(\"openLinkFromOutsideRiver\",\"top\") === \"bottom\" ? storyList.length - 1 : slot;\n\t\t}\n\t\tstoryList.splice(slot + 1,0,draftTitle);\n\t}\n\tif(storyList && storyList.indexOf(title) !== -1) {\n\t\tstoryList.splice(storyList.indexOf(title),1);\n\t}\n\tthis.saveStoryList(storyList);\n\t// Add a new record to the top of the history stack\n\tthis.addToHistory(draftTitle);\n\treturn false;\n};\n\n// Import JSON tiddlers into a pending import tiddler\nNavigatorWidget.prototype.handleImportTiddlersEvent = function(event) {\n\t// Get the tiddlers\n\tvar tiddlers = [];\n\ttry {\n\t\ttiddlers = JSON.parse(event.param);\n\t} catch(e) {\n\t}\n\t// Get the current $:/Import tiddler\n\tvar importTitle = event.importTitle ? event.importTitle : IMPORT_TITLE,\n\t\timportTiddler = this.wiki.getTiddler(importTitle),\n\t\timportData = this.wiki.getTiddlerData(importTitle,{}),\n\t\tnewFields = new Object({\n\t\t\ttitle: importTitle,\n\t\t\ttype: \"application/json\",\n\t\t\t\"plugin-type\": \"import\",\n\t\t\t\"status\": \"pending\"\n\t\t}),\n\t\tincomingTiddlers = [];\n\t// Process each tiddler\n\timportData.tiddlers = importData.tiddlers || {};\n\t$tw.utils.each(tiddlers,function(tiddlerFields) {\n\t\ttiddlerFields.title = $tw.utils.trim(tiddlerFields.title);\n\t\tvar title = tiddlerFields.title;\n\t\tif(title) {\n\t\t\tincomingTiddlers.push(title);\n\t\t\timportData.tiddlers[title] = tiddlerFields;\n\t\t}\n\t});\n\t// Give the active upgrader modules a chance to process the incoming tiddlers\n\tvar messages = this.wiki.invokeUpgraders(incomingTiddlers,importData.tiddlers);\n\t$tw.utils.each(messages,function(message,title) {\n\t\tnewFields[\"message-\" + title] = message;\n\t});\n\t// Deselect any suppressed tiddlers\n\t$tw.utils.each(importData.tiddlers,function(tiddler,title) {\n\t\tif($tw.utils.count(tiddler) === 0) {\n\t\t\tnewFields[\"selection-\" + title] = \"unchecked\";\n\t\t\tnewFields[\"suppressed-\" + title] = \"yes\";\n\t\t}\n\t});\n\t// Save the $:/Import tiddler\n\tnewFields.text = JSON.stringify(importData,null,$tw.config.preferences.jsonSpaces);\n\tthis.wiki.addTiddler(new $tw.Tiddler(importTiddler,newFields));\n\t// Update the story and history details\n\tvar autoOpenOnImport = event.autoOpenOnImport ? event.autoOpenOnImport : this.getVariable(\"tv-auto-open-on-import\");  \n\tif(autoOpenOnImport !== \"no\") {\n\t\tvar storyList = this.getStoryList(),\n\t\t\thistory = [];\n\t\t// Add it to the story\n\t\tif(storyList && storyList.indexOf(importTitle) === -1) {\n\t\t\tstoryList.unshift(importTitle);\n\t\t}\n\t\t// And to history\n\t\thistory.push(importTitle);\n\t\t// Save the updated story and history\n\t\tthis.saveStoryList(storyList);\n\t\tthis.addToHistory(history);\n\t}\n\treturn false;\n};\n\n//\nNavigatorWidget.prototype.handlePerformImportEvent = function(event) {\n\tvar self = this,\n\t\timportTiddler = this.wiki.getTiddler(event.param),\n\t\timportData = this.wiki.getTiddlerDataCached(event.param,{tiddlers: {}}),\n\t\timportReport = [];\n\t// Add the tiddlers to the store\n\timportReport.push($tw.language.getString(\"Import/Imported/Hint\") + \"\\n\");\n\t$tw.utils.each(importData.tiddlers,function(tiddlerFields) {\n\t\tvar title = tiddlerFields.title;\n\t\tif(title && importTiddler && importTiddler.fields[\"selection-\" + title] !== \"unchecked\") {\n\t\t\tif($tw.utils.hop(importTiddler.fields,[\"rename-\" + title])) {\n\t\t\t\tvar tiddler = new $tw.Tiddler(tiddlerFields,{title : importTiddler.fields[\"rename-\" + title]});\n\t\t\t} else {\n\t\t\t\tvar tiddler = new $tw.Tiddler(tiddlerFields);\n\t\t\t}\n\t\t\ttiddler = $tw.hooks.invokeHook(\"th-importing-tiddler\",tiddler);\n\t\t\tself.wiki.addTiddler(tiddler);\n\t\t\timportReport.push(\"# [[\" + tiddler.fields.title + \"]]\");\n\t\t}\n\t});\n\t// Replace the $:/Import tiddler with an import report\n\tthis.wiki.addTiddler(new $tw.Tiddler({\n\t\ttitle: event.param,\n\t\ttext: importReport.join(\"\\n\"),\n\t\t\"status\": \"complete\"\n\t}));\n\t// Navigate to the $:/Import tiddler\n\tthis.addToHistory([event.param]);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n};\n\nNavigatorWidget.prototype.handleFoldTiddlerEvent = function(event) {\n\tvar paramObject = event.paramObject || {};\n\tif(paramObject.foldedState) {\n\t\tvar foldedState = this.wiki.getTiddlerText(paramObject.foldedState,\"show\") === \"show\" ? \"hide\" : \"show\";\n\t\tthis.wiki.setText(paramObject.foldedState,\"text\",null,foldedState);\n\t}\n};\n\nNavigatorWidget.prototype.handleFoldOtherTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,event.param === title ? \"show\" : \"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleFoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix || \"$:/state/folded/\";\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleUnfoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"show\");\n\t});\n};\n\nNavigatorWidget.prototype.handleRenameTiddlerEvent = function(event) {\n\tvar options = {},\n\t\tparamObject = event.paramObject || {},\n\t\tfrom = paramObject.from || event.tiddlerTitle,\n\t\tto = paramObject.to;\n\toptions.dontRenameInTags = (paramObject.renameInTags === \"false\" || paramObject.renameInTags === \"no\") ? true : false;\n\toptions.dontRenameInLists = (paramObject.renameInLists === \"false\" || paramObject.renameInLists === \"no\") ? true : false;\n\tthis.wiki.renameTiddler(from,to,options);\n};\n\nexports.navigator = NavigatorWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/password.js": {
            "title": "$:/core/modules/widgets/password.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/password.js\ntype: application/javascript\nmodule-type: widget\n\nPassword widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar PasswordWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nPasswordWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nPasswordWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the current password\n\tvar password = $tw.browser ? $tw.utils.getPassword(this.passwordName) || \"\" : \"\";\n\t// Create our element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"password\");\n\tdomNode.setAttribute(\"value\",password);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nPasswordWidget.prototype.handleChangeEvent = function(event) {\n\tvar password = this.domNodes[0].value;\n\treturn $tw.utils.savePassword(this.passwordName,password);\n};\n\n/*\nCompute the internal state of the widget\n*/\nPasswordWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.passwordName = this.getAttribute(\"name\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nPasswordWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.password = PasswordWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/qualify.js": {
            "title": "$:/core/modules/widgets/qualify.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/qualify.js\ntype: application/javascript\nmodule-type: widget\n\nQualify text to a variable \n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar QualifyWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nQualifyWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nQualifyWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nQualifyWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.qualifyName = this.getAttribute(\"name\");\n\tthis.qualifyTitle = this.getAttribute(\"title\");\n\t// Set context variable\n\tif(this.qualifyName) {\n\t\tthis.setVariable(this.qualifyName,this.qualifyTitle + \"-\" + this.getStateQualifier());\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nQualifyWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name || changedAttributes.title) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.qualify = QualifyWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/radio.js": {
            "title": "$:/core/modules/widgets/radio.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/radio.js\ntype: application/javascript\nmodule-type: widget\n\nSet a field or index at a given tiddler via radio buttons\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar RadioWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRadioWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRadioWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\tvar isChecked = this.getValue() === this.radioValue;\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",\n\t\t\"tc-radio \" + this.radioClass + (isChecked ? \" tc-radio-selected\" : \"\")\n\t);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"radio\");\n\tif(isChecked) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tif(this.isDisabled === \"yes\") {\n\t\tthis.inputDomNode.setAttribute(\"disabled\",true);\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nRadioWidget.prototype.getValue = function() {\n\tvar value,\n\t\ttiddler = this.wiki.getTiddler(this.radioTitle);\n\tif (this.radioIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.radioTitle,this.radioIndex);\n\t} else {\n\t\tvalue = tiddler && tiddler.getFieldString(this.radioField);\n\t}\n\treturn value;\n};\n\nRadioWidget.prototype.setValue = function() {\n\tif(this.radioIndex) {\n\t\tthis.wiki.setText(this.radioTitle,\"\",this.radioIndex,this.radioValue);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.radioTitle),\n\t\t\taddition = {};\n\t\taddition[this.radioField] = this.radioValue;\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),{title: this.radioTitle},tiddler,addition,this.wiki.getModificationFields()));\n\t}\n};\n\nRadioWidget.prototype.handleChangeEvent = function(event) {\n\tif(this.inputDomNode.checked) {\n\t\tthis.setValue();\n\t}\n\t// Trigger actions\n\tif(this.radioActions) {\n\t\tthis.invokeActionString(this.radioActions,this,event,{\"actionValue\": this.radioValue});\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRadioWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.radioTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.radioField = this.getAttribute(\"field\",\"text\");\n\tthis.radioIndex = this.getAttribute(\"index\");\n\tthis.radioValue = this.getAttribute(\"value\");\n\tthis.radioClass = this.getAttribute(\"class\",\"\");\n\tthis.isDisabled = this.getAttribute(\"disabled\",\"no\");\n\tthis.radioActions = this.getAttribute(\"actions\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRadioWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(($tw.utils.count(changedAttributes) > 0) || changedTiddlers[this.radioTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.radio = RadioWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/range.js": {
            "title": "$:/core/modules/widgets/range.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/range.js\ntype: application/javascript\nmodule-type: widget\n\nRange widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RangeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRangeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRangeWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"range\");\n\tthis.inputDomNode.setAttribute(\"class\",this.elementClass);\n\tif(this.minValue){\n\t\tthis.inputDomNode.setAttribute(\"min\", this.minValue);\n\t}\n\tif(this.maxValue){\n\t\tthis.inputDomNode.setAttribute(\"max\", this.maxValue);\n\t}\n\tif(this.increment){\n\t\tthis.inputDomNode.setAttribute(\"step\", this.increment);\n\t}\n\tif(this.isDisabled === \"yes\") {\n\t\tthis.inputDomNode.setAttribute(\"disabled\",true);\n\t}\n\tthis.inputDomNode.value = this.getValue();\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name:\"mousedown\", handlerObject:this, handlerMethod:\"handleMouseDownEvent\"},\n\t\t{name:\"mouseup\",   handlerObject:this, handlerMethod:\"handleMouseUpEvent\"},\n\t\t{name:\"change\",    handlerObject:this, handlerMethod:\"handleChangeEvent\"},\n\t\t{name:\"input\",     handlerObject:this, handlerMethod:\"handleInputEvent\"},\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.inputDomNode,nextSibling);\n\tthis.domNodes.push(this.inputDomNode);\n};\n\nRangeWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle),\n\t\tfieldName = this.tiddlerField,\n\t\tvalue = this.defaultValue;\n\tif(tiddler) {\n\t\tif(this.tiddlerIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(tiddler,this.tiddlerIndex,this.defaultValue);\n\t\t} else {\n\t\t\tif($tw.utils.hop(tiddler.fields,fieldName)) {\n\t\t\t\tvalue = tiddler.fields[fieldName] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = this.defaultValue;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nRangeWidget.prototype.getActionVariables = function(options) {\n\toptions = options || {};\n\tvar hasChanged = (this.startValue !== this.inputDomNode.value) ? \"yes\" : \"no\";\n\t// Trigger actions. Use variables = {key:value, key:value ...}\n\t// the \"value\" is needed.\n\treturn $tw.utils.extend({\"actionValue\": this.inputDomNode.value, \"actionValueHasChanged\": hasChanged}, options);\n}\n\n// actionsStart\nRangeWidget.prototype.handleMouseDownEvent = function(event) {\n\tthis.mouseDown = true; // TODO remove once IE is gone.\n\tthis.startValue = this.inputDomNode.value; // TODO remove this line once IE is gone!\n\tthis.handleEvent(event);\n\t// Trigger actions\n\tif(this.actionsMouseDown) {\n\t\tvar variables = this.getActionVariables() // TODO this line will go into the function call below.\n\t\tthis.invokeActionString(this.actionsMouseDown,this,event,variables);\n\t}\n}\n\n// actionsStop\nRangeWidget.prototype.handleMouseUpEvent = function(event) {\n\tthis.mouseDown = false; // TODO remove once IE is gone.\n\tthis.handleEvent(event);\n\t// Trigger actions\n\tif(this.actionsMouseUp) {\n\t\tvar variables = this.getActionVariables()\n\t\tthis.invokeActionString(this.actionsMouseUp,this,event,variables);\n\t}\n\t// TODO remove the following if() once IE is gone!\n\tif ($tw.browser.isIE) {\n\t\tif (this.startValue !== this.inputDomNode.value) {\n\t\t\tthis.handleChangeEvent(event);\n\t\t\tthis.startValue = this.inputDomNode.value;\n\t\t}\n\t}\n}\n\nRangeWidget.prototype.handleChangeEvent = function(event) {\n\tif (this.mouseDown) {  // TODO refactor this function once IE is gone.\n\t\tthis.handleInputEvent(event);\n\t}\n};\n\nRangeWidget.prototype.handleInputEvent = function(event) {\n\tthis.handleEvent(event);\n\t// Trigger actions\n\tif(this.actionsInput) {\n\t\t// \"tiddler\" parameter may be missing. See .execute() below\n\t\tvar variables = this.getActionVariables({\"actionValueHasChanged\": \"yes\"}) // TODO this line will go into the function call below.\n\t\tthis.invokeActionString(this.actionsInput,this,event,variables);\n\t}\n};\n\nRangeWidget.prototype.handleEvent = function(event) {\n\tif(this.getValue() !== this.inputDomNode.value) {\n\t\tif(this.tiddlerIndex) {\n\t\t\tthis.wiki.setText(this.tiddlerTitle,\"\",this.tiddlerIndex,this.inputDomNode.value);\n\t\t} else {\n\t\t\tthis.wiki.setText(this.tiddlerTitle,this.tiddlerField,null,this.inputDomNode.value);\n\t\t}\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRangeWidget.prototype.execute = function() {\n\t// TODO remove the next 1 lines once IE is gone!\n\tthis.mouseUp = true; // Needed for IE10\n\t// Get the parameters from the attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.tiddlerField = this.getAttribute(\"field\",\"text\");\n\tthis.tiddlerIndex = this.getAttribute(\"index\");\n\tthis.minValue = this.getAttribute(\"min\");\n\tthis.maxValue = this.getAttribute(\"max\");\n\tthis.increment = this.getAttribute(\"increment\");\n\tthis.defaultValue = this.getAttribute(\"default\",\"\");\n\tthis.elementClass = this.getAttribute(\"class\",\"\");\n\tthis.isDisabled = this.getAttribute(\"disabled\",\"no\");\n\t// Actions since 5.1.23\n\t// Next 2 only fire once!\n\tthis.actionsMouseDown = this.getAttribute(\"actionsStart\",\"\");\n\tthis.actionsMouseUp = this.getAttribute(\"actionsStop\",\"\");\n\t// Input fires very often!\n\tthis.actionsInput = this.getAttribute(\"actions\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRangeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.tiddlerTitle]) {\n\t\t\tvar value = this.getValue();\n\t\t\tif(this.inputDomNode.value !== value) {\n\t\t\t\tthis.inputDomNode.value = value;\n\t\t\t}\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.range = RangeWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/raw.js": {
            "title": "$:/core/modules/widgets/raw.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/raw.js\ntype: application/javascript\nmodule-type: widget\n\nRaw widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RawWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRawWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRawWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar div = this.document.createElement(\"div\");\n\tdiv.innerHTML=this.parseTreeNode.html;\n\tparent.insertBefore(div,nextSibling);\n\tthis.domNodes.push(div);\t\n};\n\n/*\nCompute the internal state of the widget\n*/\nRawWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRawWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.raw = RawWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/reveal.js": {
            "title": "$:/core/modules/widgets/reveal.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/reveal.js\ntype: application/javascript\nmodule-type: widget\n\nReveal widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RevealWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRevealWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRevealWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.revealTag && $tw.config.htmlUnsafeElements.indexOf(this.revealTag) === -1) {\n\t\ttag = this.revealTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\tthis.domNode = domNode;\n\tthis.assignDomNodeClasses();\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\t}\n\tif(!this.isOpen) {\n\t\tdomNode.setAttribute(\"hidden\",\"true\");\n\t}\n\tthis.domNodes.push(domNode);\n};\n\nRevealWidget.prototype.positionPopup = function(domNode) {\n\tdomNode.style.position = \"absolute\";\n\tdomNode.style.zIndex = \"1000\";\n\tvar left,top;\n\tswitch(this.position) {\n\t\tcase \"left\":\n\t\t\tleft = this.popup.left - domNode.offsetWidth;\n\t\t\ttop = this.popup.top;\n\t\t\tbreak;\n\t\tcase \"above\":\n\t\t\tleft = this.popup.left;\n\t\t\ttop = this.popup.top - domNode.offsetHeight;\n\t\t\tbreak;\n\t\tcase \"aboveright\":\n\t\t\tleft = this.popup.left + this.popup.width;\n\t\t\ttop = this.popup.top + this.popup.height - domNode.offsetHeight;\n\t\t\tbreak;\n\t\tcase \"belowright\":\n\t\t\tleft = this.popup.left + this.popup.width;\n\t\t\ttop = this.popup.top + this.popup.height;\n\t\t\tbreak;\t\t\t\n\t\tcase \"right\":\n\t\t\tleft = this.popup.left + this.popup.width;\n\t\t\ttop = this.popup.top;\n\t\t\tbreak;\n\t\tcase \"belowleft\":\n\t\t\tleft = this.popup.left + this.popup.width - domNode.offsetWidth;\n\t\t\ttop = this.popup.top + this.popup.height;\n\t\t\tbreak;\n\t\tcase \"aboveleft\":\n\t\t\tleft = this.popup.left - domNode.offsetWidth;\n\t\t\ttop = this.popup.top - domNode.offsetHeight;\n\t\t\tbreak;\t\t\t\n\t\tdefault: // Below\n\t\t\tleft = this.popup.left;\n\t\t\ttop = this.popup.top + this.popup.height;\n\t\t\tbreak;\n\t}\n\tif(!this.positionAllowNegative) {\n\t\tleft = Math.max(0,left);\n\t\ttop = Math.max(0,top);\n\t}\n\tdomNode.style.left = left + \"px\";\n\tdomNode.style.top = top + \"px\";\n};\n\n/*\nCompute the internal state of the widget\n*/\nRevealWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.state = this.getAttribute(\"state\");\n\tthis.revealTag = this.getAttribute(\"tag\");\n\tthis.type = this.getAttribute(\"type\");\n\tthis.text = this.getAttribute(\"text\");\n\tthis.position = this.getAttribute(\"position\");\n\tthis.positionAllowNegative = this.getAttribute(\"positionAllowNegative\") === \"yes\";\n\t// class attribute handled in assignDomNodeClasses()\n\tthis.style = this.getAttribute(\"style\",\"\");\n\tthis[\"default\"] = this.getAttribute(\"default\",\"\");\n\tthis.animate = this.getAttribute(\"animate\",\"no\");\n\tthis.retain = this.getAttribute(\"retain\",\"no\");\n\tthis.openAnimation = this.animate === \"no\" ? undefined : \"open\";\n\tthis.closeAnimation = this.animate === \"no\" ? undefined : \"close\";\n\tthis.updatePopupPosition = this.getAttribute(\"updatePopupPosition\",\"no\") === \"yes\";\n\t// Compute the title of the state tiddler and read it\n\tthis.stateTiddlerTitle = this.state;\n\tthis.stateTitle = this.getAttribute(\"stateTitle\");\n\tthis.stateField = this.getAttribute(\"stateField\");\n\tthis.stateIndex = this.getAttribute(\"stateIndex\");\n\tthis.readState();\n\t// Construct the child widgets\n\tvar childNodes = this.isOpen ? this.parseTreeNode.children : [];\n\tthis.hasChildNodes = this.isOpen;\n\tthis.makeChildWidgets(childNodes);\n};\n\n/*\nRead the state tiddler\n*/\nRevealWidget.prototype.readState = function() {\n\t// Read the information from the state tiddler\n\tvar state,\n\t    defaultState = this[\"default\"];\n\tif(this.stateTitle) {\n\t\tvar stateTitleTiddler = this.wiki.getTiddler(this.stateTitle);\n\t\tif(this.stateField) {\n\t\t\tstate = stateTitleTiddler ? stateTitleTiddler.getFieldString(this.stateField) || defaultState : defaultState;\n\t\t} else if(this.stateIndex) {\n\t\t\tstate = stateTitleTiddler ? this.wiki.extractTiddlerDataItem(this.stateTitle,this.stateIndex) || defaultState : defaultState;\n\t\t} else if(stateTitleTiddler) {\n\t\t\tstate = this.wiki.getTiddlerText(this.stateTitle) || defaultState;\n\t\t} else {\n\t\t\tstate = defaultState;\n\t\t}\n\t} else {\n\t\tstate = this.stateTiddlerTitle ? this.wiki.getTextReference(this.state,this[\"default\"],this.getVariable(\"currentTiddler\")) : this[\"default\"];\n\t}\n\tif(state === null) {\n\t\tstate = this[\"default\"];\n\t}\n\tswitch(this.type) {\n\t\tcase \"popup\":\n\t\t\tthis.readPopupState(state);\n\t\t\tbreak;\n\t\tcase \"match\":\n\t\t\tthis.isOpen = this.text === state;\n\t\t\tbreak;\n\t\tcase \"nomatch\":\n\t\t\tthis.isOpen = this.text !== state;\n\t\t\tbreak;\n\t\tcase \"lt\":\n\t\t\tthis.isOpen = !!(this.compareStateText(state) < 0);\n\t\t\tbreak;\n\t\tcase \"gt\":\n\t\t\tthis.isOpen = !!(this.compareStateText(state) > 0);\n\t\t\tbreak;\n\t\tcase \"lteq\":\n\t\t\tthis.isOpen = !(this.compareStateText(state) > 0);\n\t\t\tbreak;\n\t\tcase \"gteq\":\n\t\t\tthis.isOpen = !(this.compareStateText(state) < 0);\n\t\t\tbreak;\n\t}\n};\n\nRevealWidget.prototype.compareStateText = function(state) {\n\treturn state.localeCompare(this.text,undefined,{numeric: true,sensitivity: \"case\"});\n};\n\nRevealWidget.prototype.readPopupState = function(state) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/,\n\t\tmatch = popupLocationRegExp.exec(state);\n\t// Check if the state matches the location regexp\n\tif(match) {\n\t\t// If so, we're open\n\t\tthis.isOpen = true;\n\t\t// Get the location\n\t\tthis.popup = {\n\t\t\tleft: parseFloat(match[1]),\n\t\t\ttop: parseFloat(match[2]),\n\t\t\twidth: parseFloat(match[3]),\n\t\t\theight: parseFloat(match[4])\n\t\t};\n\t} else {\n\t\t// If not, we're closed\n\t\tthis.isOpen = false;\n\t}\n};\n\nRevealWidget.prototype.assignDomNodeClasses = function() {\n\tvar classes = this.getAttribute(\"class\",\"\").split(\" \");\n\tclasses.push(\"tc-reveal\");\n\tthis.domNode.className = classes.join(\" \");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRevealWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.state || changedAttributes.type || changedAttributes.text || changedAttributes.position || changedAttributes.positionAllowNegative || changedAttributes[\"default\"] || changedAttributes.animate || changedAttributes.stateTitle || changedAttributes.stateField || changedAttributes.stateIndex) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar currentlyOpen = this.isOpen;\n\t\tthis.readState();\n\t\tif(this.isOpen !== currentlyOpen) {\n\t\t\tif(this.retain === \"yes\") {\n\t\t\t\tthis.updateState();\n\t\t\t} else {\n\t\t\t\tthis.refreshSelf();\n\t\t\t\treturn true;\n\t\t\t}\n\t\t} else if(this.type === \"popup\" && this.updatePopupPosition && (changedTiddlers[this.state] || changedTiddlers[this.stateTitle])) {\n\t\t\tthis.positionPopup(this.domNode);\n\t\t}\n\t\tif(changedAttributes.style) {\n\t\t\tthis.domNode.style = this.getAttribute(\"style\",\"\");\n\t\t}\n\t\tif(changedAttributes[\"class\"]) {\n\t\t\tthis.assignDomNodeClasses();\n\t\t}\t\t\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\n/*\nCalled by refresh() to dynamically show or hide the content\n*/\nRevealWidget.prototype.updateState = function() {\n\tvar self = this;\n\t// Read the current state\n\tthis.readState();\n\t// Construct the child nodes if needed\n\tvar domNode = this.domNodes[0];\n\tif(this.isOpen && !this.hasChildNodes) {\n\t\tthis.hasChildNodes = true;\n\t\tthis.makeChildWidgets(this.parseTreeNode.children);\n\t\tthis.renderChildren(domNode,null);\n\t}\n\t// Animate our DOM node\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\n\t}\n\tif(this.isOpen) {\n\t\tdomNode.removeAttribute(\"hidden\");\n        $tw.anim.perform(this.openAnimation,domNode);\n\t} else {\n\t\t$tw.anim.perform(this.closeAnimation,domNode,{callback: function() {\n\t\t\t//make sure that the state hasn't changed during the close animation\n\t\t\tself.readState()\n\t\t\tif(!self.isOpen) {\n\t\t\t\tdomNode.setAttribute(\"hidden\",\"true\");\n\t\t\t}\n\t\t}});\n\t}\n};\n\nexports.reveal = RevealWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/scrollable.js": {
            "title": "$:/core/modules/widgets/scrollable.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/scrollable.js\ntype: application/javascript\nmodule-type: widget\n\nScrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ScrollableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.scaleFactor = 1;\n\tthis.addEventListeners([\n\t\t{type: \"tm-scroll\", handler: \"handleScrollEvent\"}\n\t]);\n\tif($tw.browser) {\n\t\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\t\twindow.webkitRequestAnimationFrame ||\n\t\t\twindow.mozRequestAnimationFrame ||\n\t\t\tfunction(callback) {\n\t\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t\t};\n\t\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\t\twindow.webkitCancelAnimationFrame ||\n\t\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\t\twindow.mozCancelAnimationFrame ||\n\t\t\twindow.mozCancelRequestAnimationFrame ||\n\t\t\tfunction(id) {\n\t\t\t\twindow.clearTimeout(id);\n\t\t\t};\n\t}\n};\n\n/*\nInherit from the base widget class\n*/\nScrollableWidget.prototype = new Widget();\n\nScrollableWidget.prototype.cancelScroll = function() {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(window,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle a scroll event\n*/\nScrollableWidget.prototype.handleScrollEvent = function(event) {\n\t// Pass the scroll event through if our offsetsize is larger than our scrollsize\n\tif(this.outerDomNode.scrollWidth <= this.outerDomNode.offsetWidth && this.outerDomNode.scrollHeight <= this.outerDomNode.offsetHeight && this.fallthrough === \"yes\") {\n\t\treturn true;\n\t}\n\tif(event.paramObject && event.paramObject.selector) {\n\t\tthis.scrollSelectorIntoView(null,event.paramObject.selector);\n\t} else {\n\t\tthis.scrollIntoView(event.target);\t\t\t\n\t}\n\treturn false; // Handled event\n};\n\n/*\nScroll an element into view\n*/\nScrollableWidget.prototype.scrollIntoView = function(element) {\n\tvar duration = $tw.utils.getAnimationDuration(),\n\tsrcWindow = element ? element.ownerDocument.defaultView : window;\n\tthis.cancelScroll();\n\tthis.startTime = Date.now();\n\tvar scrollPosition = {\n\t\tx: this.outerDomNode.scrollLeft,\n\t\ty: this.outerDomNode.scrollTop\n\t};\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar scrollableBounds = this.outerDomNode.getBoundingClientRect(),\n\t\tclientTargetBounds = element.getBoundingClientRect(),\n\t\tbounds = {\n\t\t\tleft: clientTargetBounds.left + scrollPosition.x - scrollableBounds.left,\n\t\t\ttop: clientTargetBounds.top + scrollPosition.y - scrollableBounds.top,\n\t\t\twidth: clientTargetBounds.width,\n\t\t\theight: clientTargetBounds.height\n\t\t};\n\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\tvar getEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\t// If the target is already visible then stay where we are\n\t\t\tif(targetPos >= currentPos && (targetPos + targetSize) <= (currentPos + currentSize)) {\n\t\t\t\treturn currentPos;\n\t\t\t// If the target is above/left of the current view, then scroll to its top/left\n\t\t\t} else if(targetPos <= currentPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// If the target is smaller than the window and the scroll position is too far up, then scroll till the target is at the bottom of the window\n\t\t\t} else if(targetSize < currentSize && currentPos < (targetPos + targetSize - currentSize)) {\n\t\t\t\treturn targetPos + targetSize - currentSize;\n\t\t\t// If the target is big, then just scroll to the top\n\t\t\t} else if(currentPos < targetPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// Otherwise, stay where we are\n\t\t\t} else {\n\t\t\t\treturn currentPos;\n\t\t\t}\n\t\t},\n\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,this.outerDomNode.offsetWidth),\n\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,this.outerDomNode.offsetHeight);\n\t// Only scroll if necessary\n\tif(endX !== scrollPosition.x || endY !== scrollPosition.y) {\n\t\tvar self = this,\n\t\t\tdrawFrame;\n\t\tdrawFrame = function () {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll();\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\tself.outerDomNode.scrollLeft = scrollPosition.x + (endX - scrollPosition.x) * t;\n\t\t\tself.outerDomNode.scrollTop = scrollPosition.y + (endY - scrollPosition.y) * t;\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(srcWindow,drawFrame);\n\t\t\t}\n\t\t};\n\t\tdrawFrame();\n\t}\n};\n\nScrollableWidget.prototype.scrollSelectorIntoView = function(baseElement,selector,callback) {\n\tbaseElement = baseElement || document.body;\n\tvar element = baseElement.querySelector(selector);\n\tif(element) {\n\t\tthis.scrollIntoView(element,callback);\t\t\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nScrollableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create elements\n\tthis.outerDomNode = this.document.createElement(\"div\");\n\t$tw.utils.setStyle(this.outerDomNode,[\n\t\t{overflowY: \"auto\"},\n\t\t{overflowX: \"auto\"},\n\t\t{webkitOverflowScrolling: \"touch\"}\n\t]);\n\tthis.innerDomNode = this.document.createElement(\"div\");\n\tthis.outerDomNode.appendChild(this.innerDomNode);\n\t// Assign classes\n\tthis.outerDomNode.className = this[\"class\"] || \"\";\n\t// Insert element\n\tparent.insertBefore(this.outerDomNode,nextSibling);\n\tthis.renderChildren(this.innerDomNode,null);\n\tthis.domNodes.push(this.outerDomNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nScrollableWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.fallthrough = this.getAttribute(\"fallthrough\",\"yes\");\n\tthis[\"class\"] = this.getAttribute(\"class\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nScrollableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.scrollable = ScrollableWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/select.js": {
            "title": "$:/core/modules/widgets/select.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/select.js\ntype: application/javascript\nmodule-type: widget\n\nSelect widget:\n\n```\n<$select tiddler=\"MyTiddler\" field=\"text\">\n<$list filter=\"[tag[chapter]]\">\n<option value=<<currentTiddler>>>\n<$view field=\"description\"/>\n</option>\n</$list>\n</$select>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SelectWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSelectWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSelectWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\tthis.setSelectValue();\n\t$tw.utils.addEventListeners(this.getSelectDomNode(),[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n};\n\n/*\nHandle a change event\n*/\nSelectWidget.prototype.handleChangeEvent = function(event) {\n\t// Get the new value and assign it to the tiddler\n\tif(this.selectMultiple == false) {\n\t\tvar value = this.getSelectDomNode().value;\n\t} else {\n\t\tvar value = this.getSelectValues()\n\t\t\t\tvalue = $tw.utils.stringifyList(value);\n\t}\n\tthis.wiki.setText(this.selectTitle,this.selectField,this.selectIndex,value);\n\t// Trigger actions\n\tif(this.selectActions) {\n\t\tthis.invokeActionString(this.selectActions,this,event);\n\t}\n};\n\n/*\nIf necessary, set the value of the select element to the current value\n*/\nSelectWidget.prototype.setSelectValue = function() {\n\tvar value = this.selectDefault;\n\t// Get the value\n\tif(this.selectIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.selectTitle,this.selectIndex,value);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.selectTitle);\n\t\tif(tiddler) {\n\t\t\tif(this.selectField === \"text\") {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.selectTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.selectField)) {\n\t\t\t\t\tvalue = tiddler.getFieldString(this.selectField);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.selectField === \"title\") {\n\t\t\t\tvalue = this.selectTitle;\n\t\t\t}\n\t\t}\n\t}\n\t// Assign it to the select element if it's different than the current value\n\tif (this.selectMultiple) {\n\t\tvalue = value === undefined ? \"\" : value;\n\t\tvar select = this.getSelectDomNode();\n\t\tvar values = Array.isArray(value) ? value : $tw.utils.parseStringArray(value);\n\t\tfor(var i=0; i < select.children.length; i++){\n\t\t\tselect.children[i].selected = values.indexOf(select.children[i].value) !== -1\n\t\t}\n\t} else {\n\t\tvar domNode = this.getSelectDomNode();\n\t\tif(domNode.value !== value) {\n\t\t\tdomNode.value = value;\n\t\t}\n\t}\n};\n\n/*\nGet the DOM node of the select element\n*/\nSelectWidget.prototype.getSelectDomNode = function() {\n\treturn this.children[0].domNodes[0];\n};\n\n// Return an array of the selected opion values\n// select is an HTML select element\nSelectWidget.prototype.getSelectValues = function() {\n\tvar select, result, options, opt;\n\tselect = this.getSelectDomNode();\n\tresult = [];\n\toptions = select && select.options;\n\tfor (var i=0; i<options.length; i++) {\n\t\topt = options[i];\n\t\tif (opt.selected) {\n\t\t\tresult.push(opt.value || opt.text);\n\t\t}\n\t}\n\treturn result;\n}\n\n/*\nCompute the internal state of the widget\n*/\nSelectWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.selectActions = this.getAttribute(\"actions\");\n\tthis.selectTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.selectField = this.getAttribute(\"field\",\"text\");\n\tthis.selectIndex = this.getAttribute(\"index\");\n\tthis.selectClass = this.getAttribute(\"class\");\n\tthis.selectDefault = this.getAttribute(\"default\");\n\tthis.selectMultiple = this.getAttribute(\"multiple\", false);\n\tthis.selectSize = this.getAttribute(\"size\");\n\tthis.selectTooltip = this.getAttribute(\"tooltip\");\n\t// Make the child widgets\n\tvar selectNode = {\n\t\ttype: \"element\",\n\t\ttag: \"select\",\n\t\tchildren: this.parseTreeNode.children\n\t};\n\tif(this.selectClass) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"class\",this.selectClass);\n\t}\n\tif(this.selectMultiple) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"multiple\",\"multiple\");\n\t}\n\tif(this.selectSize) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"size\",this.selectSize);\n\t}\n\tif(this.selectTooltip) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"title\",this.selectTooltip);\n\t}\n\tthis.makeChildWidgets([selectNode]);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSelectWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// If we're using a different tiddler/field/index then completely refresh ourselves\n\tif(changedAttributes.selectTitle || changedAttributes.selectField || changedAttributes.selectIndex || changedAttributes.selectTooltip) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t// If the target tiddler value has changed, just update setting and refresh the children\n\t} else {\n\t\tvar childrenRefreshed = this.refreshChildren(changedTiddlers);\n\t\tif(changedTiddlers[this.selectTitle] || childrenRefreshed) {\n\t\t\tthis.setSelectValue();\n\t\t} \n\t\treturn childrenRefreshed;\n\t}\n};\n\nexports.select = SelectWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/set.js": {
            "title": "$:/core/modules/widgets/set.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/set.js\ntype: application/javascript\nmodule-type: widget\n\nSet variable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.setName = this.getAttribute(\"name\",\"currentTiddler\");\n\tthis.setFilter = this.getAttribute(\"filter\");\n\tthis.setSelect = this.getAttribute(\"select\");\n\tthis.setTiddler = this.getAttribute(\"tiddler\");\n\tthis.setSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.setField = this.getAttribute(\"field\");\n\tthis.setIndex = this.getAttribute(\"index\");\n\tthis.setValue = this.getAttribute(\"value\");\n\tthis.setEmptyValue = this.getAttribute(\"emptyValue\");\n\t// Set context variable\n\tthis.setVariable(this.setName,this.getValue(),this.parseTreeNode.params,!!this.parseTreeNode.isMacroDefinition);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nGet the value to be assigned\n*/\nSetWidget.prototype.getValue = function() {\n\tvar value = this.setValue;\n\tif(this.setTiddler) {\n\t\tvar tiddler;\n\t\tif(this.setSubTiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.setTiddler,this.setSubTiddler);\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.setTiddler);\t\t\t\n\t\t}\n\t\tif(!tiddler) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t} else if(this.setField) {\n\t\t\tvalue = tiddler.getFieldString(this.setField) || this.setEmptyValue;\n\t\t} else if(this.setIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.setTiddler,this.setIndex,this.setEmptyValue);\n\t\t} else {\n\t\t\tvalue = tiddler.fields.text || this.setEmptyValue ;\n\t\t}\n\t} else if(this.setFilter) {\n\t\tvar results = this.wiki.filterTiddlers(this.setFilter,this);\n\t\tif(this.setValue == null) {\n\t\t\tvar select;\n\t\t\tif(this.setSelect) {\n\t\t\t\tselect = parseInt(this.setSelect,10);\n\t\t\t}\n\t\t\tif(select !== undefined) {\n\t\t\t\tvalue = results[select] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = $tw.utils.stringifyList(results);\t\t\t\n\t\t\t}\n\t\t}\n\t\tif(results.length === 0 && this.setEmptyValue !== undefined) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t}\n\t} else if(!value && this.setEmptyValue) {\n\t\tvalue = this.setEmptyValue;\n\t}\n\treturn value || \"\";\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSetWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name || changedAttributes.filter || changedAttributes.select || changedAttributes.tiddler || (this.setTiddler && changedTiddlers[this.setTiddler]) || changedAttributes.field || changedAttributes.index || changedAttributes.value || changedAttributes.emptyValue ||\n\t   (this.setFilter && this.getValue() != this.variables[this.setName].value)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.setvariable = SetWidget;\nexports.set = SetWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/text.js": {
            "title": "$:/core/modules/widgets/text.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/text.js\ntype: application/javascript\nmodule-type: widget\n\nText node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TextNodeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTextNodeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTextNodeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar text = this.getAttribute(\"text\",this.parseTreeNode.text || \"\");\n\ttext = text.replace(/\\r/mg,\"\");\n\tvar textNode = this.document.createTextNode(text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTextNodeWidget.prototype.execute = function() {\n\t// Nothing to do for a text node\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTextNodeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.text) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.text = TextNodeWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/tiddler.js": {
            "title": "$:/core/modules/widgets/tiddler.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/tiddler.js\ntype: application/javascript\nmodule-type: widget\n\nTiddler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTiddlerWidget.prototype.execute = function() {\n\tthis.tiddlerState = this.computeTiddlerState();\n\tthis.setVariable(\"currentTiddler\",this.tiddlerState.currentTiddler);\n\tthis.setVariable(\"missingTiddlerClass\",this.tiddlerState.missingTiddlerClass);\n\tthis.setVariable(\"shadowTiddlerClass\",this.tiddlerState.shadowTiddlerClass);\n\tthis.setVariable(\"systemTiddlerClass\",this.tiddlerState.systemTiddlerClass);\n\tthis.setVariable(\"tiddlerTagClasses\",this.tiddlerState.tiddlerTagClasses);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nCompute the tiddler state flags\n*/\nTiddlerWidget.prototype.computeTiddlerState = function() {\n\t// Get our parameters\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Compute the state\n\tvar state = {\n\t\tcurrentTiddler: this.tiddlerTitle || \"\",\n\t\tmissingTiddlerClass: (this.wiki.tiddlerExists(this.tiddlerTitle) || this.wiki.isShadowTiddler(this.tiddlerTitle)) ? \"tc-tiddler-exists\" : \"tc-tiddler-missing\",\n\t\tshadowTiddlerClass: this.wiki.isShadowTiddler(this.tiddlerTitle) ? \"tc-tiddler-shadow\" : \"\",\n\t\tsystemTiddlerClass: this.wiki.isSystemTiddler(this.tiddlerTitle) ? \"tc-tiddler-system\" : \"\",\n\t\ttiddlerTagClasses: this.getTagClasses()\n\t};\n\t// Compute a simple hash to make it easier to detect changes\n\tstate.hash = state.currentTiddler + state.missingTiddlerClass + state.shadowTiddlerClass + state.systemTiddlerClass + state.tiddlerTagClasses;\n\treturn state;\n};\n\n/*\nCreate a string of CSS classes derived from the tags of the current tiddler\n*/\nTiddlerWidget.prototype.getTagClasses = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\tif(tiddler) {\n\t\tvar tags = [];\n\t\t$tw.utils.each(tiddler.fields.tags,function(tag) {\n\t\t\ttags.push(\"tc-tagged-\" + encodeURIComponent(tag));\n\t\t});\n\t\treturn tags.join(\" \");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tnewTiddlerState = this.computeTiddlerState();\n\tif(changedAttributes.tiddler || newTiddlerState.hash !== this.tiddlerState.hash) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.tiddler = TiddlerWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/transclude.js": {
            "title": "$:/core/modules/widgets/transclude.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/transclude.js\ntype: application/javascript\nmodule-type: widget\n\nTransclude widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TranscludeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTranscludeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTranscludeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTranscludeWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.transcludeTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.transcludeSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.transcludeField = this.getAttribute(\"field\");\n\tthis.transcludeIndex = this.getAttribute(\"index\");\n\tthis.transcludeMode = this.getAttribute(\"mode\");\n\tthis.recursionMarker = this.getAttribute(\"recursionMarker\",\"yes\");\n\t// Parse the text reference\n\tvar parseAsInline = !this.parseTreeNode.isBlock;\n\tif(this.transcludeMode === \"inline\") {\n\t\tparseAsInline = true;\n\t} else if(this.transcludeMode === \"block\") {\n\t\tparseAsInline = false;\n\t}\n\tvar parser = this.wiki.parseTextReference(\n\t\t\t\t\t\tthis.transcludeTitle,\n\t\t\t\t\t\tthis.transcludeField,\n\t\t\t\t\t\tthis.transcludeIndex,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tparseAsInline: parseAsInline,\n\t\t\t\t\t\t\tsubTiddler: this.transcludeSubTiddler\n\t\t\t\t\t\t}),\n\t\tparseTreeNodes = parser ? parser.tree : this.parseTreeNode.children;\n\t// Set context variables for recursion detection\n\tvar recursionMarker = this.makeRecursionMarker();\n\tif(this.recursionMarker === \"yes\") {\n\t\tthis.setVariable(\"transclusion\",recursionMarker);\n\t}\n\t// Check for recursion\n\tif(parser) {\n\t\tif(this.parentWidget && this.parentWidget.hasVariable(\"transclusion\",recursionMarker)) {\n\t\t\tparseTreeNodes = [{type: \"element\", tag: \"span\", attributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-error\"}\n\t\t\t}, children: [\n\t\t\t\t{type: \"text\", text: $tw.language.getString(\"Error/RecursiveTransclusion\")}\n\t\t\t]}];\n\t\t}\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nCompose a string comprising the title, field and/or index to identify this transclusion for recursion detection\n*/\nTranscludeWidget.prototype.makeRecursionMarker = function() {\n\tvar output = [];\n\toutput.push(\"{\");\n\toutput.push(this.getVariable(\"currentTiddler\",{defaultValue: \"\"}));\n\toutput.push(\"|\");\n\toutput.push(this.transcludeTitle || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeField || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeIndex || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeSubTiddler || \"\");\n\toutput.push(\"}\");\n\treturn output.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTranscludeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedTiddlers[this.transcludeTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.transclude = TranscludeWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/vars.js": {
            "title": "$:/core/modules/widgets/vars.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/vars.js\ntype: application/javascript\nmodule-type: widget\n\nThis widget allows multiple variables to be set in one go:\n\n```\n\\define helloworld() Hello world!\n<$vars greeting=\"Hi\" me={{!!title}} sentence=<<helloworld>>>\n  <<greeting>>! I am <<me>> and I say: <<sentence>>\n</$vars>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar VarsWidget = function(parseTreeNode,options) {\n\t// Call the constructor\n\tWidget.call(this);\n\t// Initialise\t\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nVarsWidget.prototype = Object.create(Widget.prototype);\n\n/*\nRender this widget into the DOM\n*/\nVarsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nVarsWidget.prototype.execute = function() {\n\t// Parse variables\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(val,key) {\n\t\tif(key.charAt(0) !== \"$\") {\n\t\t\tself.setVariable(key,val);\n\t\t}\n\t});\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nVarsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"vars\"] = VarsWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/view.js": {
            "title": "$:/core/modules/widgets/view.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/view.js\ntype: application/javascript\nmodule-type: widget\n\nView widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ViewWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nViewWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nViewWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tif(this.text) {\n\t\tvar textNode = this.document.createTextNode(this.text);\n\t\tparent.insertBefore(textNode,nextSibling);\n\t\tthis.domNodes.push(textNode);\n\t} else {\n\t\tthis.makeChildWidgets();\n\t\tthis.renderChildren(parent,nextSibling);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nViewWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.viewTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.viewSubtiddler = this.getAttribute(\"subtiddler\");\n\tthis.viewField = this.getAttribute(\"field\",\"text\");\n\tthis.viewIndex = this.getAttribute(\"index\");\n\tthis.viewFormat = this.getAttribute(\"format\",\"text\");\n\tthis.viewTemplate = this.getAttribute(\"template\",\"\");\n\tthis.viewMode = this.getAttribute(\"mode\",\"block\");\n\tswitch(this.viewFormat) {\n\t\tcase \"htmlwikified\":\n\t\t\tthis.text = this.getValueAsHtmlWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"plainwikified\":\n\t\t\tthis.text = this.getValueAsPlainWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"htmlencodedplainwikified\":\n\t\t\tthis.text = this.getValueAsHtmlEncodedPlainWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"htmlencoded\":\n\t\t\tthis.text = this.getValueAsHtmlEncoded();\n\t\t\tbreak;\n\t\tcase \"urlencoded\":\n\t\t\tthis.text = this.getValueAsUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"doubleurlencoded\":\n\t\t\tthis.text = this.getValueAsDoubleUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"date\":\n\t\t\tthis.text = this.getValueAsDate(this.viewTemplate);\n\t\t\tbreak;\n\t\tcase \"relativedate\":\n\t\t\tthis.text = this.getValueAsRelativeDate();\n\t\t\tbreak;\n\t\tcase \"stripcomments\":\n\t\t\tthis.text = this.getValueAsStrippedComments();\n\t\t\tbreak;\n\t\tcase \"jsencoded\":\n\t\t\tthis.text = this.getValueAsJsEncoded();\n\t\t\tbreak;\n\t\tdefault: // \"text\"\n\t\t\tthis.text = this.getValueAsText();\n\t\t\tbreak;\n\t}\n};\n\n/*\nThe various formatter functions are baked into this widget for the moment. Eventually they will be replaced by macro functions\n*/\n\n/*\nRetrieve the value of the widget. Options are:\nasString: Optionally return the value as a string\n*/\nViewWidget.prototype.getValue = function(options) {\n\toptions = options || {};\n\tvar value = options.asString ? \"\" : undefined;\n\tif(this.viewIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.viewTitle,this.viewIndex);\n\t} else {\n\t\tvar tiddler;\n\t\tif(this.viewSubtiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.viewTitle,this.viewSubtiddler);\t\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.viewTitle);\n\t\t}\n\t\tif(tiddler) {\n\t\t\tif(this.viewField === \"text\" && !this.viewSubtiddler) {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.viewTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.viewField)) {\n\t\t\t\t\tif(options.asString) {\n\t\t\t\t\t\tvalue = tiddler.getFieldString(this.viewField);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalue = tiddler.fields[this.viewField];\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.viewField === \"title\") {\n\t\t\t\tvalue = this.viewTitle;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nViewWidget.prototype.getValueAsText = function() {\n\treturn this.getValue({asString: true});\n};\n\nViewWidget.prototype.getValueAsHtmlWikified = function(mode) {\n\treturn this.wiki.renderText(\"text/html\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t});\n};\n\nViewWidget.prototype.getValueAsPlainWikified = function(mode) {\n\treturn this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t});\n};\n\nViewWidget.prototype.getValueAsHtmlEncodedPlainWikified = function(mode) {\n\treturn $tw.utils.htmlEncode(this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t}));\n};\n\nViewWidget.prototype.getValueAsHtmlEncoded = function() {\n\treturn $tw.utils.htmlEncode(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsUrlEncoded = function() {\n\treturn encodeURIComponent(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsDoubleUrlEncoded = function() {\n\treturn encodeURIComponent(encodeURIComponent(this.getValueAsText()));\n};\n\nViewWidget.prototype.getValueAsDate = function(format) {\n\tformat = format || \"YYYY MM DD 0hh:0mm\";\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.formatDateString(value,format);\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsRelativeDate = function(format) {\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.getRelativeDate((new Date()) - (new Date(value))).description;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsStrippedComments = function() {\n\tvar lines = this.getValueAsText().split(\"\\n\"),\n\t\tout = [];\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar text = lines[line];\n\t\tif(!/^\\s*\\/\\/#/.test(text)) {\n\t\t\tout.push(text);\n\t\t}\n\t}\n\treturn out.join(\"\\n\");\n};\n\nViewWidget.prototype.getValueAsJsEncoded = function() {\n\treturn $tw.utils.stringify(this.getValueAsText());\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nViewWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.template || changedAttributes.format || changedTiddlers[this.viewTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.view = ViewWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/widget.js": {
            "title": "$:/core/modules/widgets/widget.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/widget.js\ntype: application/javascript\nmodule-type: widget\n\nWidget base class\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate a widget object for a parse tree node\n\tparseTreeNode: reference to the parse tree node to be rendered\n\toptions: see below\nOptions include:\n\twiki: mandatory reference to wiki associated with this render tree\n\tparentWidget: optional reference to a parent renderer node for the context chain\n\tdocument: optional document object to use instead of global document\n*/\nvar Widget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInitialise widget properties. These steps are pulled out of the constructor so that we can reuse them in subclasses\n*/\nWidget.prototype.initialise = function(parseTreeNode,options) {\n\t// Bail if parseTreeNode is undefined, meaning  that the widget constructor was called without any arguments so that it can be subclassed\n\tif(parseTreeNode === undefined) {\n\t\treturn;\n\t}\n\toptions = options || {};\n\t// Save widget info\n\tthis.parseTreeNode = parseTreeNode;\n\tthis.wiki = options.wiki;\n\tthis.parentWidget = options.parentWidget;\n\tthis.variablesConstructor = function() {};\n\tthis.variablesConstructor.prototype = this.parentWidget ? this.parentWidget.variables : {};\n\tthis.variables = new this.variablesConstructor();\n\tthis.document = options.document;\n\tthis.attributes = {};\n\tthis.children = [];\n\tthis.domNodes = [];\n\tthis.eventListeners = {};\n\t// Hashmap of the widget classes\n\tif(!this.widgetClasses) {\n\t\t// Get widget classes\n\t\tWidget.prototype.widgetClasses = $tw.modules.applyMethods(\"widget\");\n\t\t// Process any subclasses\n\t\t$tw.modules.forEachModuleOfType(\"widget-subclass\",function(title,module) {\n\t\t\tif(module.baseClass) {\n\t\t\t\tvar baseClass = Widget.prototype.widgetClasses[module.baseClass];\n\t\t\t\tif(!baseClass) {\n\t\t\t\t\tthrow \"Module '\" + title + \"' is attemping to extend a non-existent base class '\" + module.baseClass + \"'\";\n\t\t\t\t}\n\t\t\t\tvar subClass = module.constructor;\n\t\t\t\tsubClass.prototype = new baseClass();\n\t\t\t\t$tw.utils.extend(subClass.prototype,module.prototype);\n\t\t\t\tWidget.prototype.widgetClasses[module.name || module.baseClass] = subClass;\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWidget.prototype.execute = function() {\n\tthis.makeChildWidgets();\n};\n\n/*\nSet the value of a context variable\nname: name of the variable\nvalue: value of the variable\nparams: array of {name:, default:} for each parameter\nisMacroDefinition: true if the variable is set via a \\define macro pragma (and hence should have variable substitution performed)\n*/\nWidget.prototype.setVariable = function(name,value,params,isMacroDefinition) {\n\tthis.variables[name] = {value: value, params: params, isMacroDefinition: !!isMacroDefinition};\n};\n\n/*\nGet the prevailing value of a context variable\nname: name of variable\noptions: see below\nOptions include\nparams: array of {name:, value:} for each parameter\ndefaultValue: default value if the variable is not defined\n\nReturns an object with the following fields:\n\nparams: array of {name:,value:} of parameters passed to wikitext variables\ntext: text of variable, with parameters properly substituted\n*/\nWidget.prototype.getVariableInfo = function(name,options) {\n\toptions = options || {};\n\tvar actualParams = options.params || [],\n\t\tparentWidget = this.parentWidget;\n\t// Check for the variable defined in the parent widget (or an ancestor in the prototype chain)\n\tif(parentWidget && name in parentWidget.variables) {\n\t\tvar variable = parentWidget.variables[name],\n\t\t\toriginalValue = variable.value,\n\t\t\tvalue = originalValue,\n\t\t\tparams = this.resolveVariableParameters(variable.params,actualParams);\n\t\t// Substitute any parameters specified in the definition\n\t\t$tw.utils.each(params,function(param) {\n\t\t\tvalue = $tw.utils.replaceString(value,new RegExp(\"\\\\$\" + $tw.utils.escapeRegExp(param.name) + \"\\\\$\",\"mg\"),param.value);\n\t\t});\n\t\t// Only substitute variable references if this variable was defined with the \\define pragma\n\t\tif(variable.isMacroDefinition) {\n\t\t\tvalue = this.substituteVariableReferences(value);\t\t\t\n\t\t}\n\t\treturn {\n\t\t\ttext: value,\n\t\t\tparams: params,\n\t\t\tsrcVariable: variable,\n\t\t\tisCacheable: originalValue === value\n\t\t};\n\t}\n\t// If the variable doesn't exist in the parent widget then look for a macro module\n\treturn {\n\t\ttext: this.evaluateMacroModule(name,actualParams,options.defaultValue)\n\t};\n};\n\n/*\nSimplified version of getVariableInfo() that just returns the text\n*/\nWidget.prototype.getVariable = function(name,options) {\n\treturn this.getVariableInfo(name,options).text;\n};\n\nWidget.prototype.resolveVariableParameters = function(formalParams,actualParams) {\n\tformalParams = formalParams || [];\n\tactualParams = actualParams || [];\n\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\tparamInfo, paramValue,\n\t\tresults = [];\n\t// Step through each of the parameters in the macro definition\n\tfor(var p=0; p<formalParams.length; p++) {\n\t\t// Check if we've got a macro call parameter with the same name\n\t\tparamInfo = formalParams[p];\n\t\tparamValue = undefined;\n\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t}\n\t\t}\n\t\t// If not, use the next available anonymous macro call parameter\n\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\tnextAnonParameter++;\n\t\t}\n\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t}\n\t\t// If we've still not got a value, use the default, if any\n\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t// Store the parameter name and value\n\t\tresults.push({name: paramInfo.name, value: paramValue});\n\t}\n\treturn results;\n};\n\nWidget.prototype.substituteVariableReferences = function(text) {\n\tvar self = this;\n\treturn (text || \"\").replace(/\\$\\(([^\\)\\$]+)\\)\\$/g,function(match,p1,offset,string) {\n\t\treturn self.getVariable(p1,{defaultValue: \"\"});\n\t});\n};\n\nWidget.prototype.evaluateMacroModule = function(name,actualParams,defaultValue) {\n\tif($tw.utils.hop($tw.macros,name)) {\n\t\tvar macro = $tw.macros[name],\n\t\t\targs = [];\n\t\tif(macro.params.length > 0) {\n\t\t\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\t\t\tparamInfo, paramValue;\n\t\t\t// Step through each of the parameters in the macro definition\n\t\t\tfor(var p=0; p<macro.params.length; p++) {\n\t\t\t\t// Check if we've got a macro call parameter with the same name\n\t\t\t\tparamInfo = macro.params[p];\n\t\t\t\tparamValue = undefined;\n\t\t\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If not, use the next available anonymous macro call parameter\n\t\t\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\t\t\tnextAnonParameter++;\n\t\t\t\t}\n\t\t\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t\t\t}\n\t\t\t\t// If we've still not got a value, use the default, if any\n\t\t\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t\t\t// Save the parameter\n\t\t\t\targs.push(paramValue);\n\t\t\t}\n\t\t}\n\t\telse for(var i=0; i<actualParams.length; ++i) {\n\t\t\targs.push(actualParams[i].value);\n\t\t}\n\t\treturn (macro.run.apply(this,args) || \"\").toString();\n\t} else {\n\t\treturn defaultValue;\n\t}\n};\n\n/*\nCheck whether a given context variable value exists in the parent chain\n*/\nWidget.prototype.hasVariable = function(name,value) {\n\tvar node = this;\n\twhile(node) {\n\t\tif($tw.utils.hop(node.variables,name) && node.variables[name].value === value) {\n\t\t\treturn true;\n\t\t}\n\t\tnode = node.parentWidget;\n\t}\n\treturn false;\n};\n\n/*\nConstruct a qualifying string based on a hash of concatenating the values of a given variable in the parent chain\n*/\nWidget.prototype.getStateQualifier = function(name) {\n\tthis.qualifiers = this.qualifiers || Object.create(null);\n\tname = name || \"transclusion\";\n\tif(this.qualifiers[name]) {\n\t\treturn this.qualifiers[name];\n\t} else {\n\t\tvar output = [],\n\t\t\tnode = this;\n\t\twhile(node && node.parentWidget) {\n\t\t\tif($tw.utils.hop(node.parentWidget.variables,name)) {\n\t\t\t\toutput.push(node.getVariable(name));\n\t\t\t}\n\t\t\tnode = node.parentWidget;\n\t\t}\n\t\tvar value = $tw.utils.hashString(output.join(\"\"));\n\t\tthis.qualifiers[name] = value;\n\t\treturn value;\n\t}\n};\n\n/*\nCompute the current values of the attributes of the widget. Returns a hashmap of the names of the attributes that have changed\n*/\nWidget.prototype.computeAttributes = function() {\n\tvar changedAttributes = {},\n\t\tself = this,\n\t\tvalue;\n\t$tw.utils.each(this.parseTreeNode.attributes,function(attribute,name) {\n\t\tif(attribute.type === \"filtered\") {\n\t\t\tvalue = self.wiki.filterTiddlers(attribute.filter,self)[0] || \"\";\n\t\t} else if(attribute.type === \"indirect\") {\n\t\t\tvalue = self.wiki.getTextReference(attribute.textReference,\"\",self.getVariable(\"currentTiddler\"));\n\t\t} else if(attribute.type === \"macro\") {\n\t\t\tvalue = self.getVariable(attribute.value.name,{params: attribute.value.params});\n\t\t} else { // String attribute\n\t\t\tvalue = attribute.value;\n\t\t}\n\t\t// Check whether the attribute has changed\n\t\tif(self.attributes[name] !== value) {\n\t\t\tself.attributes[name] = value;\n\t\t\tchangedAttributes[name] = true;\n\t\t}\n\t});\n\treturn changedAttributes;\n};\n\n/*\nCheck for the presence of an attribute\n*/\nWidget.prototype.hasAttribute = function(name) {\n\treturn $tw.utils.hop(this.attributes,name);\n};\n\n/*\nGet the value of an attribute\n*/\nWidget.prototype.getAttribute = function(name,defaultText) {\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\treturn this.attributes[name];\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nAssign the computed attributes of the widget to a domNode\noptions include:\nexcludeEventAttributes: ignores attributes whose name begins with \"on\"\n*/\nWidget.prototype.assignAttributes = function(domNode,options) {\n\toptions = options || {};\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(v,a) {\n\t\t// Check exclusions\n\t\tif(options.excludeEventAttributes && a.substr(0,2) === \"on\") {\n\t\t\tv = undefined;\n\t\t}\n\t\tif(v !== undefined) {\n\t\t\tvar b = a.split(\":\");\n\t\t\t// Setting certain attributes can cause a DOM error (eg xmlns on the svg element)\n\t\t\ttry {\n\t\t\t\tif (b.length == 2 && b[0] == \"xlink\"){\n\t\t\t\t\tdomNode.setAttributeNS(\"http://www.w3.org/1999/xlink\",b[1],v);\n\t\t\t\t} else {\n\t\t\t\t\tdomNode.setAttributeNS(null,a,v);\n\t\t\t\t}\n\t\t\t} catch(e) {\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nMake child widgets correspondng to specified parseTreeNodes\n*/\nWidget.prototype.makeChildWidgets = function(parseTreeNodes) {\n\tthis.children = [];\n\tvar self = this;\n\t$tw.utils.each(parseTreeNodes || (this.parseTreeNode && this.parseTreeNode.children),function(childNode) {\n\t\tself.children.push(self.makeChildWidget(childNode));\n\t});\n};\n\n/*\nConstruct the widget object for a parse tree node\n*/\nWidget.prototype.makeChildWidget = function(parseTreeNode) {\n\tvar WidgetClass = this.widgetClasses[parseTreeNode.type];\n\tif(!WidgetClass) {\n\t\tWidgetClass = this.widgetClasses.text;\n\t\tparseTreeNode = {type: \"text\", text: \"Undefined widget '\" + parseTreeNode.type + \"'\"};\n\t}\n\treturn new WidgetClass(parseTreeNode,{\n\t\twiki: this.wiki,\n\t\tvariables: {},\n\t\tparentWidget: this,\n\t\tdocument: this.document\n\t});\n};\n\n/*\nGet the next sibling of this widget\n*/\nWidget.prototype.nextSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index < this.parentWidget.children.length-1) {\n\t\t\treturn this.parentWidget.children[index+1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the previous sibling of this widget\n*/\nWidget.prototype.previousSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index > 0) {\n\t\t\treturn this.parentWidget.children[index-1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRender the children of this widget into the DOM\n*/\nWidget.prototype.renderChildren = function(parent,nextSibling) {\n\tvar children = this.children;\n\tfor(var i = 0; i < children.length; i++) {\n\t\tchildren[i].render(parent,nextSibling);\n\t};\n};\n\n/*\nAdd a list of event listeners from an array [{type:,handler:},...]\n*/\nWidget.prototype.addEventListeners = function(listeners) {\n\tvar self = this;\n\t$tw.utils.each(listeners,function(listenerInfo) {\n\t\tself.addEventListener(listenerInfo.type,listenerInfo.handler);\n\t});\n};\n\n/*\nAdd an event listener\n*/\nWidget.prototype.addEventListener = function(type,handler) {\n\tvar self = this;\n\tif(typeof handler === \"string\") { // The handler is a method name on this widget\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn self[handler].call(self,event);\n\t\t};\n\t} else { // The handler is a function\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn handler.call(self,event);\n\t\t};\n\t}\n};\n\n/*\nDispatch an event to a widget. If the widget doesn't handle the event then it is also dispatched to the parent widget\n*/\nWidget.prototype.dispatchEvent = function(event) {\n\tevent.widget = event.widget || this;\n\t// Dispatch the event if this widget handles it\n\tvar listener = this.eventListeners[event.type];\n\tif(listener) {\n\t\t// Don't propagate the event if the listener returned false\n\t\tif(!listener(event)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Dispatch the event to the parent widget\n\tif(this.parentWidget) {\n\t\treturn this.parentWidget.dispatchEvent(event);\n\t}\n\treturn true;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nRebuild a previously rendered widget\n*/\nWidget.prototype.refreshSelf = function() {\n\tvar nextSibling = this.findNextSiblingDomNode();\n\tthis.removeChildDomNodes();\n\tthis.render(this.parentDomNode,nextSibling);\n};\n\n/*\nRefresh all the children of a widget\n*/\nWidget.prototype.refreshChildren = function(changedTiddlers) {\n\tvar children = this.children,\n\t\trefreshed = false;\n\tfor (var i = 0; i < children.length; i++) {\n\t\trefreshed = children[i].refresh(changedTiddlers) || refreshed;\n\t}\n\treturn refreshed;\n};\n\n/*\nFind the next sibling in the DOM to this widget. This is done by scanning the widget tree through all next siblings and their descendents that share the same parent DOM node\n*/\nWidget.prototype.findNextSiblingDomNode = function(startIndex) {\n\t// Refer to this widget by its index within its parents children\n\tvar parent = this.parentWidget,\n\t\tindex = startIndex !== undefined ? startIndex : parent.children.indexOf(this);\nif(index === -1) {\n\tthrow \"node not found in parents children\";\n}\n\t// Look for a DOM node in the later siblings\n\twhile(++index < parent.children.length) {\n\t\tvar domNode = parent.children[index].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\t// Go back and look for later siblings of our parent if it has the same parent dom node\n\tvar grandParent = parent.parentWidget;\n\tif(grandParent && parent.parentDomNode === this.parentDomNode) {\n\t\tindex = grandParent.children.indexOf(parent);\n\t\tif(index !== -1) {\n\t\t\treturn parent.findNextSiblingDomNode(index);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nFind the first DOM node generated by a widget or its children\n*/\nWidget.prototype.findFirstDomNode = function() {\n\t// Return the first dom node of this widget, if we've got one\n\tif(this.domNodes.length > 0) {\n\t\treturn this.domNodes[0];\n\t}\n\t// Otherwise, recursively call our children\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar domNode = this.children[t].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRemove any DOM nodes created by this widget or its children\n*/\nWidget.prototype.removeChildDomNodes = function() {\n\t// If this widget has directly created DOM nodes, delete them and exit. This assumes that any child widgets are contained within the created DOM nodes, which would normally be the case\n\tif(this.domNodes.length > 0) {\n\t\t$tw.utils.each(this.domNodes,function(domNode) {\n\t\t\tdomNode.parentNode.removeChild(domNode);\n\t\t});\n\t\tthis.domNodes = [];\n\t} else {\n\t\t// Otherwise, ask the child widgets to delete their DOM nodes\n\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\tchildWidget.removeChildDomNodes();\n\t\t});\n\t}\n};\n\n/*\nInvoke the action widgets that are descendents of the current widget.\n*/\nWidget.prototype.invokeActions = function(triggeringWidget,event) {\n\tvar handled = false;\n\t// For each child widget\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar child = this.children[t];\n\t\t// Invoke the child if it is an action widget\n\t\tif(child.invokeAction) {\n\t\t\tchild.refreshSelf();\n\t\t\tif(child.invokeAction(triggeringWidget,event)) {\n\t\t\t\thandled = true;\n\t\t\t}\n\t\t}\n\t\t// Propagate through through the child if it permits it\n\t\tif(child.allowActionPropagation() && child.invokeActions(triggeringWidget,event)) {\n\t\t\thandled = true;\n\t\t}\n\t}\n\treturn handled;\n};\n\n/*\nInvoke the action widgets defined in a string\n*/\nWidget.prototype.invokeActionString = function(actions,triggeringWidget,event,variables) {\n\tactions = actions || \"\";\n\tvar parser = this.wiki.parseText(\"text/vnd.tiddlywiki\",actions,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document\n\t\t}),\n\t\twidgetNode = this.wiki.makeWidget(parser,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document,\n\t\t\tvariables: variables\n\t\t});\n\tvar container = this.document.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn widgetNode.invokeActions(this,event);\n};\n\n/*\nExecute action tiddlers by tag\n*/\nWidget.prototype.invokeActionsByTag = function(tag,event,variables) {\n\tvar self = this;\n\t$tw.utils.each(self.wiki.filterTiddlers(\"[all[shadows+tiddlers]tag[\" + tag + \"]!has[draft.of]]\"),function(title) {\n\t\tself.invokeActionString(self.wiki.getTiddlerText(title),self,event,variables);\n\t});\n};\n\nWidget.prototype.allowActionPropagation = function() {\n\treturn true;\n};\n\nexports.widget = Widget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/wikify.js": {
            "title": "$:/core/modules/widgets/wikify.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/wikify.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to wikify text into a variable\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar WikifyWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nWikifyWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nWikifyWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWikifyWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.wikifyName = this.getAttribute(\"name\");\n\tthis.wikifyText = this.getAttribute(\"text\");\n\tthis.wikifyType = this.getAttribute(\"type\");\n\tthis.wikifyMode = this.getAttribute(\"mode\",\"block\");\n\tthis.wikifyOutput = this.getAttribute(\"output\",\"text\");\n\t// Create the parse tree\n\tthis.wikifyParser = this.wiki.parseText(this.wikifyType,this.wikifyText,{\n\t\t\tparseAsInline: this.wikifyMode === \"inline\"\n\t\t});\n\t// Create the widget tree \n\tthis.wikifyWidgetNode = this.wiki.makeWidget(this.wikifyParser,{\n\t\t\tdocument: $tw.fakeDocument,\n\t\t\tparentWidget: this\n\t\t});\n\t// Render the widget tree to the container\n\tthis.wikifyContainer = $tw.fakeDocument.createElement(\"div\");\n\tthis.wikifyWidgetNode.render(this.wikifyContainer,null);\n\tthis.wikifyResult = this.getResult();\n\t// Set context variable\n\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nReturn the result string\n*/\nWikifyWidget.prototype.getResult = function() {\n\tvar result;\n\tswitch(this.wikifyOutput) {\n\t\tcase \"text\":\n\t\t\tresult = this.wikifyContainer.textContent;\n\t\t\tbreak;\n\t\tcase \"formattedtext\":\n\t\t\tresult = this.wikifyContainer.formattedTextContent;\n\t\t\tbreak;\n\t\tcase \"html\":\n\t\t\tresult = this.wikifyContainer.innerHTML;\n\t\t\tbreak;\n\t\tcase \"parsetree\":\n\t\t\tresult = JSON.stringify(this.wikifyParser.tree,0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t\tcase \"widgettree\":\n\t\t\tresult = JSON.stringify(this.getWidgetTree(),0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t}\n\treturn result;\n};\n\n/*\nReturn a string of the widget tree\n*/\nWikifyWidget.prototype.getWidgetTree = function() {\n\tvar copyNode = function(widgetNode,resultNode) {\n\t\t\tvar type = widgetNode.parseTreeNode.type;\n\t\t\tresultNode.type = type;\n\t\t\tswitch(type) {\n\t\t\t\tcase \"element\":\n\t\t\t\t\tresultNode.tag = widgetNode.parseTreeNode.tag;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"text\":\n\t\t\t\t\tresultNode.text = widgetNode.parseTreeNode.text;\n\t\t\t\t\tbreak;\t\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.attributes || {}).length > 0) {\n\t\t\t\tresultNode.attributes = {};\n\t\t\t\t$tw.utils.each(widgetNode.attributes,function(attr,attrName) {\n\t\t\t\t\tresultNode.attributes[attrName] = widgetNode.getAttribute(attrName);\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.children || {}).length > 0) {\n\t\t\t\tresultNode.children = [];\n\t\t\t\t$tw.utils.each(widgetNode.children,function(widgetChildNode) {\n\t\t\t\t\tvar node = {};\n\t\t\t\t\tresultNode.children.push(node);\n\t\t\t\t\tcopyNode(widgetChildNode,node);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tresults = {};\n\tcopyNode(this.wikifyWidgetNode,results);\n\treturn results;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWikifyWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh ourselves entirely if any of our attributes have changed\n\tif(changedAttributes.name || changedAttributes.text || changedAttributes.type || changedAttributes.mode || changedAttributes.output) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\t// Refresh the widget tree\n\t\tif(this.wikifyWidgetNode.refresh(changedTiddlers)) {\n\t\t\t// Check if there was any change\n\t\t\tvar result = this.getResult();\n\t\t\tif(result !== this.wikifyResult) {\n\t\t\t\t// If so, save the change\n\t\t\t\tthis.wikifyResult = result;\n\t\t\t\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t\t\t\t// Refresh each of our child widgets\n\t\t\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\t\t\tchildWidget.refreshSelf();\n\t\t\t\t});\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\t// Just refresh the children\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.wikify = WikifyWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/wiki-bulkops.js": {
            "title": "$:/core/modules/wiki-bulkops.js",
            "text": "/*\\\ntitle: $:/core/modules/wiki-bulkops.js\ntype: application/javascript\nmodule-type: wikimethod\n\nBulk tiddler operations such as rename.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRename a tiddler, and relink any tags or lists that reference it.\n*/\nfunction renameTiddler(fromTitle,toTitle,options) {\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\t// Rename the tiddler itself\n\t\tvar oldTiddler = this.getTiddler(fromTitle),\n\t\t\tnewTiddler = new $tw.Tiddler(oldTiddler,{title: toTitle},this.getModificationFields());\n\t\tnewTiddler = $tw.hooks.invokeHook(\"th-renaming-tiddler\",newTiddler,oldTiddler);\n\t\tthis.addTiddler(newTiddler);\n\t\tthis.deleteTiddler(fromTitle);\n\t\t// Rename any tags or lists that reference it\n\t\tthis.relinkTiddler(fromTitle,toTitle,options)\n\t}\n}\n\n/*\nRelink any tags or lists that reference a given tiddler\n*/\nfunction relinkTiddler(fromTitle,toTitle,options) {\n\tvar self = this;\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\tthis.each(function(tiddler,title) {\n\t\t\tvar type = tiddler.fields.type || \"\";\n\t\t\t// Don't touch plugins or JavaScript modules\n\t\t\tif(!tiddler.fields[\"plugin-type\"] && type !== \"application/javascript\") {\n\t\t\t\tvar tags = tiddler.fields.tags ? tiddler.fields.tags.slice(0) : undefined,\n\t\t\t\t\tlist = tiddler.fields.list ? tiddler.fields.list.slice(0) : undefined,\n\t\t\t\t\tisModified = false;\n\t\t\t\tif(!options.dontRenameInTags) {\n\t\t\t\t\t// Rename tags\n\t\t\t\t\t$tw.utils.each(tags,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming tag '\" + tags[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\ttags[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(!options.dontRenameInLists) {\n\t\t\t\t\t// Rename lists\n\t\t\t\t\t$tw.utils.each(list,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming list item '\" + list[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\tlist[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(isModified) {\n\t\t\t\t\tvar newTiddler = new $tw.Tiddler(tiddler,{tags: tags, list: list},self.getModificationFields())\n\t\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-relinking-tiddler\",newTiddler,tiddler);\n\t\t\t\t\tself.addTiddler(newTiddler);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\nexports.renameTiddler = renameTiddler;\nexports.relinkTiddler = relinkTiddler;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikimethod"
        },
        "$:/core/modules/wiki.js": {
            "title": "$:/core/modules/wiki.js",
            "text": "/*\\\ntitle: $:/core/modules/wiki.js\ntype: application/javascript\nmodule-type: wikimethod\n\nExtension methods for the $tw.Wiki object\n\nAdds the following properties to the wiki object:\n\n* `eventListeners` is a hashmap by type of arrays of listener functions\n* `changedTiddlers` is a hashmap describing changes to named tiddlers since wiki change events were last dispatched. Each entry is a hashmap containing two fields:\n\tmodified: true/false\n\tdeleted: true/false\n* `changeCount` is a hashmap by tiddler title containing a numerical index that starts at zero and is incremented each time a tiddler is created changed or deleted\n* `caches` is a hashmap by tiddler title containing a further hashmap of named cache objects. Caches are automatically cleared when a tiddler is modified or deleted\n* `globalCache` is a hashmap by cache name of cache objects that are cleared whenever any tiddler change occurs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar USER_NAME_TITLE = \"$:/status/UserName\",\n\tTIMESTAMP_DISABLE_TITLE = \"$:/config/TimestampDisable\";\n\n/*\nAdd available indexers to this wiki\n*/\nexports.addIndexersToWiki = function() {\n\tvar self = this;\n\t$tw.utils.each($tw.modules.applyMethods(\"indexer\"),function(Indexer,name) {\n\t\tself.addIndexer(new Indexer(self),name);\n\t});\n};\n\n/*\nGet the value of a text reference. Text references can have any of these forms:\n\t<tiddlertitle>\n\t<tiddlertitle>!!<fieldname>\n\t!!<fieldname> - specifies a field of the current tiddlers\n\t<tiddlertitle>##<index>\n*/\nexports.getTextReference = function(textRef,defaultText,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tif(tr.field) {\n\t\tvar tiddler = this.getTiddler(title);\n\t\tif(tr.field === \"title\") { // Special case so we can return the title of a non-existent tiddler\n\t\t\treturn title;\n\t\t} else if(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\treturn tiddler.getFieldString(tr.field);\n\t\t} else {\n\t\t\treturn defaultText;\n\t\t}\n\t} else if(tr.index) {\n\t\treturn this.extractTiddlerDataItem(title,tr.index,defaultText);\n\t} else {\n\t\treturn this.getTiddlerText(title,defaultText);\n\t}\n};\n\nexports.setTextReference = function(textRef,value,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tthis.setText(title,tr.field,tr.index,value);\n};\n\nexports.setText = function(title,field,index,value,options) {\n\toptions = options || {};\n\tvar creationFields = options.suppressTimestamp ? {} : this.getCreationFields(),\n\t\tmodificationFields = options.suppressTimestamp ? {} : this.getModificationFields();\n\t// Check if it is a reference to a tiddler field\n\tif(index) {\n\t\tvar data = this.getTiddlerData(title,Object.create(null));\n\t\tif(value !== undefined) {\n\t\t\tdata[index] = value;\n\t\t} else {\n\t\t\tdelete data[index];\n\t\t}\n\t\tthis.setTiddlerData(title,data,modificationFields);\n\t} else {\n\t\tvar tiddler = this.getTiddler(title),\n\t\t\tfields = {title: title};\n\t\tfields[field || \"text\"] = value;\n\t\tthis.addTiddler(new $tw.Tiddler(creationFields,tiddler,fields,modificationFields));\n\t}\n};\n\nexports.deleteTextReference = function(textRef,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle,tiddler,fields;\n\t// Check if it is a reference to a tiddler\n\tif(tr.title && !tr.field) {\n\t\tthis.deleteTiddler(tr.title);\n\t// Else check for a field reference\n\t} else if(tr.field) {\n\t\ttitle = tr.title || currTiddlerTitle;\n\t\ttiddler = this.getTiddler(title);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\tfields = Object.create(null);\n\t\t\tfields[tr.field] = undefined;\n\t\t\tthis.addTiddler(new $tw.Tiddler(tiddler,fields,this.getModificationFields()));\n\t\t}\n\t}\n};\n\nexports.addEventListener = function(type,listener) {\n\tthis.eventListeners = this.eventListeners || {};\n\tthis.eventListeners[type] = this.eventListeners[type]  || [];\n\tthis.eventListeners[type].push(listener);\t\n};\n\nexports.removeEventListener = function(type,listener) {\n\tvar listeners = this.eventListeners[type];\n\tif(listeners) {\n\t\tvar p = listeners.indexOf(listener);\n\t\tif(p !== -1) {\n\t\t\tlisteners.splice(p,1);\n\t\t}\n\t}\n};\n\nexports.dispatchEvent = function(type /*, args */) {\n\tvar args = Array.prototype.slice.call(arguments,1),\n\t\tlisteners = this.eventListeners[type];\n\tif(listeners) {\n\t\tfor(var p=0; p<listeners.length; p++) {\n\t\t\tvar listener = listeners[p];\n\t\t\tlistener.apply(listener,args);\n\t\t}\n\t}\n};\n\n/*\nCauses a tiddler to be marked as changed, incrementing the change count, and triggers event handlers.\nThis method should be called after the changes it describes have been made to the wiki.tiddlers[] array.\n\ttitle: Title of tiddler\n\tisDeleted: defaults to false (meaning the tiddler has been created or modified),\n\t\ttrue if the tiddler has been deleted\n*/\nexports.enqueueTiddlerEvent = function(title,isDeleted) {\n\t// Record the touch in the list of changed tiddlers\n\tthis.changedTiddlers = this.changedTiddlers || Object.create(null);\n\tthis.changedTiddlers[title] = this.changedTiddlers[title] || Object.create(null);\n\tthis.changedTiddlers[title][isDeleted ? \"deleted\" : \"modified\"] = true;\n\t// Increment the change count\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\tthis.changeCount[title]++;\n\t} else {\n\t\tthis.changeCount[title] = 1;\n\t}\n\t// Trigger events\n\tthis.eventListeners = this.eventListeners || {};\n\tif(!this.eventsTriggered) {\n\t\tvar self = this;\n\t\t$tw.utils.nextTick(function() {\n\t\t\tvar changes = self.changedTiddlers;\n\t\t\tself.changedTiddlers = Object.create(null);\n\t\t\tself.eventsTriggered = false;\n\t\t\tif($tw.utils.count(changes) > 0) {\n\t\t\t\tself.dispatchEvent(\"change\",changes);\n\t\t\t}\n\t\t});\n\t\tthis.eventsTriggered = true;\n\t}\n};\n\nexports.getSizeOfTiddlerEventQueue = function() {\n\treturn $tw.utils.count(this.changedTiddlers);\n};\n\nexports.clearTiddlerEventQueue = function() {\n\tthis.changedTiddlers = Object.create(null);\n\tthis.changeCount = Object.create(null);\n};\n\nexports.getChangeCount = function(title) {\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\treturn this.changeCount[title];\n\t} else {\n\t\treturn 0;\n\t}\n};\n\n/*\nGenerate an unused title from the specified base\n*/\nexports.generateNewTitle = function(baseTitle,options) {\n\toptions = options || {};\n\tvar c = 0,\n\t\ttitle = baseTitle;\n\twhile(this.tiddlerExists(title) || this.isShadowTiddler(title) || this.findDraft(title)) {\n\t\ttitle = baseTitle + \n\t\t\t(options.prefix || \" \") + \n\t\t\t(++c);\n\t}\n\treturn title;\n};\n\nexports.isSystemTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/\") === 0;\n};\n\nexports.isTemporaryTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/temp/\") === 0;\n};\n\nexports.isImageTiddler = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\t\t\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/vnd.tiddlywiki\"];\n\t\treturn !!contentTypeInfo && contentTypeInfo.flags.indexOf(\"image\") !== -1;\n\t} else {\n\t\treturn null;\n\t}\n};\n\nexports.isBinaryTiddler = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\t\t\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/vnd.tiddlywiki\"];\n\t\treturn !!contentTypeInfo && contentTypeInfo.encoding === \"base64\";\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLike addTiddler() except it will silently reject any plugin tiddlers that are older than the currently loaded version. Returns true if the tiddler was imported\n*/\nexports.importTiddler = function(tiddler) {\n\tvar existingTiddler = this.getTiddler(tiddler.fields.title);\n\t// Check if we're dealing with a plugin\n\tif(tiddler && tiddler.hasField(\"plugin-type\") && tiddler.hasField(\"version\") && existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t// Reject the incoming plugin if it is older\n\t\tif(!$tw.utils.checkVersions(tiddler.fields.version,existingTiddler.fields.version)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Fall through to adding the tiddler\n\tthis.addTiddler(tiddler);\n\treturn true;\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is created\n*/\nexports.getCreationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = {\n\t\t\t\tcreated: new Date()\n\t\t\t},\n\t\t\tcreator = this.getTiddlerText(USER_NAME_TITLE);\n\t\tif(creator) {\n\t\t\tfields.creator = creator;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is modified\n*/\nexports.getModificationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = Object.create(null),\n\t\t\tmodifier = this.getTiddlerText(USER_NAME_TITLE);\n\t\tfields.modified = new Date();\n\t\tif(modifier) {\n\t\t\tfields.modifier = modifier;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a sorted array of tiddler titles.  Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.getTiddlers = function(options) {\n\toptions = options || Object.create(null);\n\tvar self = this,\n\t\tsortField = options.sortField || \"title\",\n\t\ttiddlers = [], t, titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tif(options.includeSystem || !self.isSystemTiddler(title)) {\n\t\t\tif(!options.excludeTag || !tiddler.hasTag(options.excludeTag)) {\n\t\t\t\ttiddlers.push(tiddler);\n\t\t\t}\n\t\t}\n\t});\n\ttiddlers.sort(function(a,b) {\n\t\tvar aa = a.fields[sortField].toLowerCase() || \"\",\n\t\t\tbb = b.fields[sortField].toLowerCase() || \"\";\n\t\tif(aa < bb) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(aa > bb) {\n\t\t\t\treturn 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n\tfor(t=0; t<tiddlers.length; t++) {\n\t\ttitles.push(tiddlers[t].fields.title);\n\t}\n\treturn titles;\n};\n\nexports.countTiddlers = function(excludeTag) {\n\tvar tiddlers = this.getTiddlers({excludeTag: excludeTag});\n\treturn $tw.utils.count(tiddlers);\n};\n\n/*\nReturns a function iterator(callback) that iterates through the specified titles, and invokes the callback with callback(tiddler,title)\n*/\nexports.makeTiddlerIterator = function(titles) {\n\tvar self = this;\n\tif(!$tw.utils.isArray(titles)) {\n\t\ttitles = Object.keys(titles);\n\t} else {\n\t\ttitles = titles.slice(0);\n\t}\n\treturn function(callback) {\n\t\ttitles.forEach(function(title) {\n\t\t\tcallback(self.getTiddler(title),title);\n\t\t});\n\t};\n};\n\n/*\nSort an array of tiddler titles by a specified field\n\ttitles: array of titles (sorted in place)\n\tsortField: name of field to sort by\n\tisDescending: true if the sort should be descending\n\tisCaseSensitive: true if the sort should consider upper and lower case letters to be different\n*/\nexports.sortTiddlers = function(titles,sortField,isDescending,isCaseSensitive,isNumeric,isAlphaNumeric) {\n\tvar self = this;\n\ttitles.sort(function(a,b) {\n\t\tvar x,y,\n\t\t\tcompareNumbers = function(x,y) {\n\t\t\t\tvar result = \n\t\t\t\t\tisNaN(x) && !isNaN(y) ? (isDescending ? -1 : 1) :\n\t\t\t\t\t!isNaN(x) && isNaN(y) ? (isDescending ? 1 : -1) :\n\t\t\t\t\t\t\t\t\t\t\t(isDescending ? y - x :  x - y);\n\t\t\t\treturn result;\n\t\t\t};\n\t\tif(sortField !== \"title\") {\n\t\t\tvar tiddlerA = self.getTiddler(a),\n\t\t\t\ttiddlerB = self.getTiddler(b);\n\t\t\tif(tiddlerA) {\n\t\t\t\ta = tiddlerA.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\ta = \"\";\n\t\t\t}\n\t\t\tif(tiddlerB) {\n\t\t\t\tb = tiddlerB.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\tb = \"\";\n\t\t\t}\n\t\t}\n\t\tx = Number(a);\n\t\ty = Number(b);\n\t\tif(isNumeric && (!isNaN(x) || !isNaN(y))) {\n\t\t\treturn compareNumbers(x,y);\n\t\t} else if($tw.utils.isDate(a) && $tw.utils.isDate(b)) {\n\t\t\treturn isDescending ? b - a : a - b;\n\t\t} else if(isAlphaNumeric) {\n\t\t\treturn isDescending ? b.localeCompare(a,undefined,{numeric: true,sensitivity: \"base\"}) : a.localeCompare(b,undefined,{numeric: true,sensitivity: \"base\"});\n\t\t} else {\n\t\t\ta = String(a);\n\t\t\tb = String(b);\n\t\t\tif(!isCaseSensitive) {\n\t\t\t\ta = a.toLowerCase();\n\t\t\t\tb = b.toLowerCase();\n\t\t\t}\n\t\t\treturn isDescending ? b.localeCompare(a) : a.localeCompare(b);\n\t\t}\n\t});\n};\n\n/*\nFor every tiddler invoke a callback(title,tiddler) with `this` set to the wiki object. Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.forEachTiddler = function(/* [options,]callback */) {\n\tvar arg = 0,\n\t\toptions = arguments.length >= 2 ? arguments[arg++] : {},\n\t\tcallback = arguments[arg++],\n\t\ttitles = this.getTiddlers(options),\n\t\tt, tiddler;\n\tfor(t=0; t<titles.length; t++) {\n\t\ttiddler = this.getTiddler(titles[t]);\n\t\tif(tiddler) {\n\t\t\tcallback.call(this,tiddler.fields.title,tiddler);\n\t\t}\n\t}\n};\n\n/*\nReturn an array of tiddler titles that are directly linked within the given parse tree\n */\nexports.extractLinks = function(parseTreeRoot) {\n\t// Count up the links\n\tvar links = [],\n\t\tcheckParseTree = function(parseTree) {\n\t\t\tfor(var t=0; t<parseTree.length; t++) {\n\t\t\t\tvar parseTreeNode = parseTree[t];\n\t\t\t\tif(parseTreeNode.type === \"link\" && parseTreeNode.attributes.to && parseTreeNode.attributes.to.type === \"string\") {\n\t\t\t\t\tvar value = parseTreeNode.attributes.to.value;\n\t\t\t\t\tif(links.indexOf(value) === -1) {\n\t\t\t\t\t\tlinks.push(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(parseTreeNode.children) {\n\t\t\t\t\tcheckParseTree(parseTreeNode.children);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\tcheckParseTree(parseTreeRoot);\n\treturn links;\n};\n\n/*\nReturn an array of tiddler titles that are directly linked from the specified tiddler\n*/\nexports.getTiddlerLinks = function(title) {\n\tvar self = this;\n\t// We'll cache the links so they only get computed if the tiddler changes\n\treturn this.getCacheForTiddler(title,\"links\",function() {\n\t\t// Parse the tiddler\n\t\tvar parser = self.parseTiddler(title);\n\t\tif(parser) {\n\t\t\treturn self.extractLinks(parser.tree);\n\t\t}\n\t\treturn [];\n\t});\n};\n\n/*\nReturn an array of tiddler titles that link to the specified tiddler\n*/\nexports.getTiddlerBacklinks = function(targetTitle) {\n\tvar self = this,\n\t\tbacklinksIndexer = this.getIndexer(\"BacklinksIndexer\"),\n\t\tbacklinks = backlinksIndexer && backlinksIndexer.lookup(targetTitle);\n\n\tif(!backlinks) {\n\t\tbacklinks = [];\n\t\tthis.forEachTiddler(function(title,tiddler) {\n\t\t\tvar links = self.getTiddlerLinks(title);\n\t\t\tif(links.indexOf(targetTitle) !== -1) {\n\t\t\t\tbacklinks.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn backlinks;\n};\n\n/*\nReturn a hashmap of tiddler titles that are referenced but not defined. Each value is the number of times the missing tiddler is referenced\n*/\nexports.getMissingTitles = function() {\n\tvar self = this,\n\t\tmissing = [];\n// We should cache the missing tiddler list, even if we recreate it every time any tiddler is modified\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tif((!self.tiddlerExists(link) && !self.isShadowTiddler(link)) && missing.indexOf(link) === -1) {\n\t\t\t\tmissing.push(link);\n\t\t\t}\n\t\t});\n\t});\n\treturn missing;\n};\n\nexports.getOrphanTitles = function() {\n\tvar self = this,\n\t\torphans = this.getTiddlers();\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tvar p = orphans.indexOf(link);\n\t\t\tif(p !== -1) {\n\t\t\t\torphans.splice(p,1);\n\t\t\t}\n\t\t});\n\t});\n\treturn orphans; // Todo\n};\n\n/*\nRetrieves a list of the tiddler titles that are tagged with a given tag\n*/\nexports.getTiddlersWithTag = function(tag) {\n\t// Try to use the indexer\n\tvar self = this,\n\t\ttagIndexer = this.getIndexer(\"TagIndexer\"),\n\t\tresults = tagIndexer && tagIndexer.subIndexers[3].lookup(tag);\n\tif(!results) {\n\t\t// If not available, perform a manual scan\n\t\tresults = this.getGlobalCache(\"taglist-\" + tag,function() {\n\t\t\tvar tagmap = self.getTagMap();\n\t\t\treturn self.sortByList(tagmap[tag],tag);\n\t\t});\n\t}\n\treturn results;\n};\n\n/*\nGet a hashmap by tag of arrays of tiddler titles\n*/\nexports.getTagMap = function() {\n\tvar self = this;\n\treturn this.getGlobalCache(\"tagmap\",function() {\n\t\tvar tags = Object.create(null),\n\t\t\tstoreTags = function(tagArray,title) {\n\t\t\t\tif(tagArray) {\n\t\t\t\t\tfor(var index=0; index<tagArray.length; index++) {\n\t\t\t\t\t\tvar tag = tagArray[index];\n\t\t\t\t\t\tif($tw.utils.hop(tags,tag)) {\n\t\t\t\t\t\t\ttags[tag].push(title);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttags[tag] = [title];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ttitle, tiddler;\n\t\t// Collect up all the tags\n\t\tself.eachShadow(function(tiddler,title) {\n\t\t\tif(!self.tiddlerExists(title)) {\n\t\t\t\ttiddler = self.getTiddler(title);\n\t\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t\t}\n\t\t});\n\t\tself.each(function(tiddler,title) {\n\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t});\n\t\treturn tags;\n\t});\n};\n\n/*\nLookup a given tiddler and return a list of all the tiddlers that include it in the specified list field\n*/\nexports.findListingsOfTiddler = function(targetTitle,fieldName) {\n\tfieldName = fieldName || \"list\";\n\tvar titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tvar list = $tw.utils.parseStringArray(tiddler.fields[fieldName]);\n\t\tif(list && list.indexOf(targetTitle) !== -1) {\n\t\t\ttitles.push(title);\n\t\t}\n\t});\n\treturn titles;\n};\n\n/*\nSorts an array of tiddler titles according to an ordered list\n*/\nexports.sortByList = function(array,listTitle) {\n\tvar self = this,\n\t\treplacedTitles = Object.create(null);\n\t// Given a title, this function will place it in the correct location\n\t// within titles.\n\tfunction moveItemInList(title) {\n\t\tif(!$tw.utils.hop(replacedTitles, title)) {\n\t\t\treplacedTitles[title] = true;\n\t\t\tvar newPos = -1,\n\t\t\t\ttiddler = self.getTiddler(title);\n\t\t\tif(tiddler) {\n\t\t\t\tvar beforeTitle = tiddler.fields[\"list-before\"],\n\t\t\t\t\tafterTitle = tiddler.fields[\"list-after\"];\n\t\t\t\tif(beforeTitle === \"\") {\n\t\t\t\t\tnewPos = 0;\n\t\t\t\t} else if(afterTitle === \"\") {\n\t\t\t\t\tnewPos = titles.length;\n\t\t\t\t} else if(beforeTitle) {\n\t\t\t\t\t// if this title is placed relative\n\t\t\t\t\t// to another title, make sure that\n\t\t\t\t\t// title is placed before we place\n\t\t\t\t\t// this one.\n\t\t\t\t\tmoveItemInList(beforeTitle);\n\t\t\t\t\tnewPos = titles.indexOf(beforeTitle);\n\t\t\t\t} else if(afterTitle) {\n\t\t\t\t\t// Same deal\n\t\t\t\t\tmoveItemInList(afterTitle);\n\t\t\t\t\tnewPos = titles.indexOf(afterTitle);\n\t\t\t\t\tif(newPos >= 0) {\n\t\t\t\t\t\t++newPos;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If a new position is specified, let's move it\n\t\t\t\tif (newPos !== -1) {\n\t\t\t\t\t// get its current Pos, and make sure\n\t\t\t\t\t// sure that it's _actually_ in the list\n\t\t\t\t\t// and that it would _actually_ move\n\t\t\t\t\t// (#4275) We don't bother calling\n\t\t\t\t\t//         indexOf unless we have a new\n\t\t\t\t\t//         position to work with\n\t\t\t\t\tvar currPos = titles.indexOf(title);\n\t\t\t\t\tif(currPos >= 0 && newPos !== currPos) {\n\t\t\t\t\t\t// move it!\n\t\t\t\t\t\ttitles.splice(currPos,1);\n\t\t\t\t\t\tif(newPos >= currPos) {\n\t\t\t\t\t\t\tnewPos--;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttitles.splice(newPos,0,title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tvar list = this.getTiddlerList(listTitle);\n\tif(!array || array.length === 0) {\n\t\treturn [];\n\t} else {\n\t\tvar titles = [], t, title;\n\t\t// First place any entries that are present in the list\n\t\tfor(t=0; t<list.length; t++) {\n\t\t\ttitle = list[t];\n\t\t\tif(array.indexOf(title) !== -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Then place any remaining entries\n\t\tfor(t=0; t<array.length; t++) {\n\t\t\ttitle = array[t];\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Finally obey the list-before and list-after fields of each tiddler in turn\n\t\tvar sortedTitles = titles.slice(0);\n\t\tfor(t=0; t<sortedTitles.length; t++) {\n\t\t\ttitle = sortedTitles[t];\n\t\t\tmoveItemInList(title);\n\t\t}\n\t\treturn titles;\n\t}\n};\n\nexports.getSubTiddler = function(title,subTiddlerTitle) {\n\tvar bundleInfo = this.getPluginInfo(title) || this.getTiddlerDataCached(title);\n\tif(bundleInfo && bundleInfo.tiddlers) {\n\t\tvar subTiddler = bundleInfo.tiddlers[subTiddlerTitle];\n\t\tif(subTiddler) {\n\t\t\treturn new $tw.Tiddler(subTiddler);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRetrieve a tiddler as a JSON string of the fields\n*/\nexports.getTiddlerAsJson = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\tvar fields = Object.create(null);\n\t\t$tw.utils.each(tiddler.fields,function(value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\treturn JSON.stringify(fields);\n\t} else {\n\t\treturn JSON.stringify({title: title});\n\t}\n};\n\nexports.getTiddlersAsJson = function(filter,spaces) {\n\tvar tiddlers = this.filterTiddlers(filter),\n\t\tspaces = (spaces === undefined) ? $tw.config.preferences.jsonSpaces : spaces,\n\t\tdata = [];\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\tvar tiddler = this.getTiddler(tiddlers[t]);\n\t\tif(tiddler) {\n\t\t\tvar fields = new Object();\n\t\t\tfor(var field in tiddler.fields) {\n\t\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t\t}\n\t\t\tdata.push(fields);\n\t\t}\n\t}\n\treturn JSON.stringify(data,null,spaces);\n};\n\n/*\nGet the content of a tiddler as a JavaScript object. How this is done depends on the type of the tiddler:\n\napplication/json: the tiddler JSON is parsed into an object\napplication/x-tiddler-dictionary: the tiddler is parsed as sequence of name:value pairs\n\nOther types currently just return null.\n\ntitleOrTiddler: string tiddler title or a tiddler object\ndefaultData: default data to be returned if the tiddler is missing or doesn't contain data\n\nNote that the same value is returned for repeated calls for the same tiddler data. The value is frozen to prevent modification; otherwise modifications would be visible to all callers\n*/\nexports.getTiddlerDataCached = function(titleOrTiddler,defaultData) {\n\tvar self = this,\n\t\ttiddler = titleOrTiddler;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler) {\n\t\treturn this.getCacheForTiddler(tiddler.fields.title,\"data\",function() {\n\t\t\t// Return the frozen value\n\t\t\tvar value = self.getTiddlerData(tiddler.fields.title,undefined);\n\t\t\t$tw.utils.deepFreeze(value);\n\t\t\treturn value;\n\t\t}) || defaultData;\n\t} else {\n\t\treturn defaultData;\n\t}\n};\n\n/*\nAlternative, uncached version of getTiddlerDataCached(). The return value can be mutated freely and reused\n*/\nexports.getTiddlerData = function(titleOrTiddler,defaultData) {\n\tvar tiddler = titleOrTiddler,\n\t\tdata;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler && tiddler.fields.text) {\n\t\tswitch(tiddler.fields.type) {\n\t\t\tcase \"application/json\":\n\t\t\t\t// JSON tiddler\n\t\t\t\ttry {\n\t\t\t\t\tdata = JSON.parse(tiddler.fields.text);\n\t\t\t\t} catch(ex) {\n\t\t\t\t\treturn defaultData;\n\t\t\t\t}\n\t\t\t\treturn data;\n\t\t\tcase \"application/x-tiddler-dictionary\":\n\t\t\t\treturn $tw.utils.parseFields(tiddler.fields.text);\n\t\t}\n\t}\n\treturn defaultData;\n};\n\n/*\nExtract an indexed field from within a data tiddler\n*/\nexports.extractTiddlerDataItem = function(titleOrTiddler,index,defaultText) {\n\tvar data = this.getTiddlerDataCached(titleOrTiddler,Object.create(null)),\n\t\ttext;\n\tif(data && $tw.utils.hop(data,index)) {\n\t\ttext = data[index];\n\t}\n\tif(typeof text === \"string\" || typeof text === \"number\") {\n\t\treturn text.toString();\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nSet a tiddlers content to a JavaScript object. Currently this is done by setting the tiddler's type to \"application/json\" and setting the text to the JSON text of the data.\ntitle: title of tiddler\ndata: object that can be serialised to JSON\nfields: optional hashmap of additional tiddler fields to be set\n*/\nexports.setTiddlerData = function(title,data,fields) {\n\tvar existingTiddler = this.getTiddler(title),\n\t\tnewFields = {\n\t\t\ttitle: title\n\t};\n\tif(existingTiddler && existingTiddler.fields.type === \"application/x-tiddler-dictionary\") {\n\t\tnewFields.text = $tw.utils.makeTiddlerDictionary(data);\n\t} else {\n\t\tnewFields.type = \"application/json\";\n\t\tnewFields.text = JSON.stringify(data,null,$tw.config.preferences.jsonSpaces);\n\t}\n\tthis.addTiddler(new $tw.Tiddler(this.getCreationFields(),existingTiddler,fields,newFields,this.getModificationFields()));\n};\n\n/*\nReturn the content of a tiddler as an array containing each line\n*/\nexports.getTiddlerList = function(title,field,index) {\n\tif(index) {\n\t\treturn $tw.utils.parseStringArray(this.extractTiddlerDataItem(title,index,\"\"));\n\t}\n\tfield = field || \"list\";\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\treturn ($tw.utils.parseStringArray(tiddler.fields[field]) || []).slice(0);\n\t}\n\treturn [];\n};\n\n// Return a named global cache object. Global cache objects are cleared whenever a tiddler change occurs\nexports.getGlobalCache = function(cacheName,initializer) {\n\tthis.globalCache = this.globalCache || Object.create(null);\n\tif($tw.utils.hop(this.globalCache,cacheName)) {\n\t\treturn this.globalCache[cacheName];\n\t} else {\n\t\tthis.globalCache[cacheName] = initializer();\n\t\treturn this.globalCache[cacheName];\n\t}\n};\n\nexports.clearGlobalCache = function() {\n\tthis.globalCache = Object.create(null);\n};\n\n// Return the named cache object for a tiddler. If the cache doesn't exist then the initializer function is invoked to create it\nexports.getCacheForTiddler = function(title,cacheName,initializer) {\n\tthis.caches = this.caches || Object.create(null);\n\tvar caches = this.caches[title];\n\tif(caches && caches[cacheName]) {\n\t\treturn caches[cacheName];\n\t} else {\n\t\tif(!caches) {\n\t\t\tcaches = Object.create(null);\n\t\t\tthis.caches[title] = caches;\n\t\t}\n\t\tcaches[cacheName] = initializer();\n\t\treturn caches[cacheName];\n\t}\n};\n\n// Clear all caches associated with a particular tiddler, or, if the title is null, clear all the caches for all the tiddlers\nexports.clearCache = function(title) {\n\tif(title) {\n\t\tthis.caches = this.caches || Object.create(null);\n\t\tif($tw.utils.hop(this.caches,title)) {\n\t\t\tdelete this.caches[title];\n\t\t}\n\t} else {\n\t\tthis.caches = Object.create(null);\n\t}\n};\n\nexports.initParsers = function(moduleType) {\n\t// Install the parser modules\n\t$tw.Wiki.parsers = {};\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(\"parser\",function(title,module) {\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\t$tw.Wiki.parsers[f] = module[f]; // Store the parser class\n\t\t\t}\n\t\t}\n\t});\n\t// Use the generic binary parser for any binary types not registered so far\n\tif($tw.Wiki.parsers[\"application/octet-stream\"]) {\n\t\tObject.keys($tw.config.contentTypeInfo).forEach(function(type) {\n\t\t\tif(!$tw.utils.hop($tw.Wiki.parsers,type) && $tw.config.contentTypeInfo[type].encoding === \"base64\") {\n\t\t\t\t$tw.Wiki.parsers[type] = $tw.Wiki.parsers[\"application/octet-stream\"];\n\t\t\t}\n\t\t});\t\t\n\t}\n};\n\n/*\nParse a block of text of a specified MIME type\n\ttype: content type of text to be parsed\n\ttext: text\n\toptions: see below\nOptions include:\n\tparseAsInline: if true, the text of the tiddler will be parsed as an inline run\n\t_canonical_uri: optional string of the canonical URI of this content\n*/\nexports.parseText = function(type,text,options) {\n\ttext = text || \"\";\n\toptions = options || {};\n\t// Select a parser\n\tvar Parser = $tw.Wiki.parsers[type];\n\tif(!Parser && $tw.utils.getFileExtensionInfo(type)) {\n\t\tParser = $tw.Wiki.parsers[$tw.utils.getFileExtensionInfo(type).type];\n\t}\n\tif(!Parser) {\n\t\tParser = $tw.Wiki.parsers[options.defaultType || \"text/vnd.tiddlywiki\"];\n\t}\n\tif(!Parser) {\n\t\treturn null;\n\t}\n\t// Return the parser instance\n\treturn new Parser(type,text,{\n\t\tparseAsInline: options.parseAsInline,\n\t\twiki: this,\n\t\t_canonical_uri: options._canonical_uri\n\t});\n};\n\n/*\nParse a tiddler according to its MIME type\n*/\nexports.parseTiddler = function(title,options) {\n\toptions = $tw.utils.extend({},options);\n\tvar cacheType = options.parseAsInline ? \"inlineParseTree\" : \"blockParseTree\",\n\t\ttiddler = this.getTiddler(title),\n\t\tself = this;\n\treturn tiddler ? this.getCacheForTiddler(title,cacheType,function() {\n\t\t\tif(tiddler.hasField(\"_canonical_uri\")) {\n\t\t\t\toptions._canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t}\n\t\t\treturn self.parseText(tiddler.fields.type,tiddler.fields.text,options);\n\t\t}) : null;\n};\n\nexports.parseTextReference = function(title,field,index,options) {\n\tvar tiddler,text;\n\tif(options.subTiddler) {\n\t\ttiddler = this.getSubTiddler(title,options.subTiddler);\n\t} else {\n\t\ttiddler = this.getTiddler(title);\n\t\tif(field === \"text\" || (!field && !index)) {\n\t\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\t\treturn this.parseTiddler(title,options);\n\t\t}\n\t}\n\tif(field === \"text\" || (!field && !index)) {\n\t\tif(tiddler && tiddler.fields) {\n\t\t\treturn this.parseText(tiddler.fields.type,tiddler.fields.text,options);\t\t\t\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t} else if(field) {\n\t\tif(field === \"title\") {\n\t\t\ttext = title;\n\t\t} else {\n\t\t\tif(!tiddler || !tiddler.hasField(field)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\ttext = tiddler.fields[field];\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text.toString(),options);\n\t} else if(index) {\n\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\ttext = this.extractTiddlerDataItem(tiddler,index,undefined);\n\t\tif(text === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text,options);\n\t}\n};\n\n/*\nMake a widget tree for a parse tree\nparser: parser object\noptions: see below\nOptions include:\ndocument: optional document to use\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.makeWidget = function(parser,options) {\n\toptions = options || {};\n\tvar widgetNode = {\n\t\t\ttype: \"widget\",\n\t\t\tchildren: []\n\t\t},\n\t\tcurrWidgetNode = widgetNode;\n\t// Create set variable widgets for each variable\n\t$tw.utils.each(options.variables,function(value,name) {\n\t\tvar setVariableWidget = {\n\t\t\ttype: \"set\",\n\t\t\tattributes: {\n\t\t\t\tname: {type: \"string\", value: name},\n\t\t\t\tvalue: {type: \"string\", value: value}\n\t\t\t},\n\t\t\tchildren: []\n\t\t};\n\t\tcurrWidgetNode.children = [setVariableWidget];\n\t\tcurrWidgetNode = setVariableWidget;\n\t});\n\t// Add in the supplied parse tree nodes\n\tcurrWidgetNode.children = parser ? parser.tree : [];\n\t// Create the widget\n\treturn new widget.widget(widgetNode,{\n\t\twiki: this,\n\t\tdocument: options.document || $tw.fakeDocument,\n\t\tparentWidget: options.parentWidget\n\t});\n};\n\n/*\nMake a widget tree for transclusion\ntitle: target tiddler title\noptions: as for wiki.makeWidget() plus:\noptions.field: optional field to transclude (defaults to \"text\")\noptions.mode: transclusion mode \"inline\" or \"block\"\noptions.recursionMarker : optional flag to set a recursion marker, defaults to \"yes\"\noptions.children: optional array of children for the transclude widget\noptions.importVariables: optional importvariables filter string for macros to be included\noptions.importPageMacros: optional boolean; if true, equivalent to passing \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\" to options.importVariables\n*/\nexports.makeTranscludeWidget = function(title,options) {\n\toptions = options || {};\n\tvar parseTreeDiv = {tree: [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"div\",\n\t\t\tchildren: []}]},\n\t\tparseTreeImportVariables = {\n\t\t\ttype: \"importvariables\",\n\t\t\tattributes: {\n\t\t\t\tfilter: {\n\t\t\t\t\tname: \"filter\",\n\t\t\t\t\ttype: \"string\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tisBlock: false,\n\t\t\tchildren: []},\n\t\tparseTreeTransclude = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\trecursionMarker: {\n\t\t\t\t\tname: \"recursionMarker\",\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: options.recursionMarker || \"yes\"\n\t\t\t\t\t},\n\t\t\t\ttiddler: {\n\t\t\t\t\tname: \"tiddler\",\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title\n\t\t\t\t}\n\t\t\t},\n\t\t\tisBlock: !options.parseAsInline};\n\tif(options.importVariables || options.importPageMacros) {\n\t\tif(options.importVariables) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = options.importVariables;\n\t\t} else if(options.importPageMacros) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\";\n\t\t}\n\t\tparseTreeDiv.tree[0].children.push(parseTreeImportVariables);\n\t\tparseTreeImportVariables.children.push(parseTreeTransclude);\n\t} else {\n\t\tparseTreeDiv.tree[0].children.push(parseTreeTransclude);\n\t}\n\tif(options.field) {\n\t\tparseTreeTransclude.attributes.field = {type: \"string\", value: options.field};\n\t}\n\tif(options.mode) {\n\t\tparseTreeTransclude.attributes.mode = {type: \"string\", value: options.mode};\n\t}\n\tif(options.children) {\n\t\tparseTreeTransclude.children = options.children;\n\t}\n\treturn this.makeWidget(parseTreeDiv,options);\n};\n\n/*\nParse text in a specified format and render it into another format\n\toutputType: content type for the output\n\ttextType: content type of the input text\n\ttext: input text\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderText = function(outputType,textType,text,options) {\n\toptions = options || {};\n\tvar parser = this.parseText(textType,text,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : container.textContent;\n};\n\n/*\nParse text from a tiddler and render it into another format\n\toutputType: content type for the output\n\ttitle: title of the tiddler to be rendered\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderTiddler = function(outputType,title,options) {\n\toptions = options || {};\n\tvar parser = this.parseTiddler(title,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : (outputType === \"text/plain-formatted\" ? container.formattedTextContent : container.textContent);\n};\n\n/*\nReturn an array of tiddler titles that match a search string\n\ttext: The text string to search for\n\toptions: see below\nOptions available:\n\tsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\n\texclude: An array of tiddler titles to exclude from the search\n\tinvert: If true returns tiddlers that do not contain the specified string\n\tcaseSensitive: If true forces a case sensitive search\n\tfield: If specified, restricts the search to the specified field, or an array of field names\n\tanchored: If true, forces all but regexp searches to be anchored to the start of text\n\texcludeField: If true, the field options are inverted to specify the fields that are not to be searched\n\tThe search mode is determined by the first of these boolean flags to be true\n\t\tliteral: searches for literal string\n\t\twhitespace: same as literal except runs of whitespace are treated as a single space\n\t\tregexp: treats the search term as a regular expression\n\t\twords: (default) treats search string as a list of tokens, and matches if all tokens are found, regardless of adjacency or ordering\n*/\nexports.search = function(text,options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tt,\n\t\tinvert = !!options.invert;\n\t// Convert the search string into a regexp for each term\n\tvar terms, searchTermsRegExps,\n\t\tflags = options.caseSensitive ? \"\" : \"i\",\n\t\tanchor = options.anchored ? \"^\" : \"\";\n\tif(options.literal) {\n\t\tif(text.length === 0) {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + anchor + $tw.utils.escapeRegExp(text) + \")\",flags)];\n\t\t}\n\t} else if(options.whitespace) {\n\t\tterms = [];\n\t\t$tw.utils.each(text.split(/\\s+/g),function(term) {\n\t\t\tif(term) {\n\t\t\t\tterms.push($tw.utils.escapeRegExp(term));\n\t\t\t}\n\t\t});\n\t\tsearchTermsRegExps = [new RegExp(\"(\" + anchor + terms.join(\"\\\\s+\") + \")\",flags)];\n\t} else if(options.regexp) {\n\t\ttry {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + text + \")\",flags)];\t\t\t\n\t\t} catch(e) {\n\t\t\tsearchTermsRegExps = null;\n\t\t\tconsole.log(\"Regexp error parsing /(\" + text + \")/\" + flags + \": \",e);\n\t\t}\n\t} else {\n\t\tterms = text.split(/ +/);\n\t\tif(terms.length === 1 && terms[0] === \"\") {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [];\n\t\t\tfor(t=0; t<terms.length; t++) {\n\t\t\t\tsearchTermsRegExps.push(new RegExp(\"(\" + anchor + $tw.utils.escapeRegExp(terms[t]) + \")\",flags));\n\t\t\t}\n\t\t}\n\t}\n\t// Accumulate the array of fields to be searched or excluded from the search\n\tvar fields = [];\n\tif(options.field) {\n\t\tif($tw.utils.isArray(options.field)) {\n\t\t\t$tw.utils.each(options.field,function(fieldName) {\n\t\t\t\tif(fieldName) {\n\t\t\t\t\tfields.push(fieldName);\t\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tfields.push(options.field);\n\t\t}\n\t}\n\t// Use default fields if none specified and we're not excluding fields (excluding fields with an empty field array is the same as searching all fields)\n\tif(fields.length === 0 && !options.excludeField) {\n\t\tfields.push(\"title\");\n\t\tfields.push(\"tags\");\n\t\tfields.push(\"text\");\n\t}\n\t// Function to check a given tiddler for the search term\n\tvar searchTiddler = function(title) {\n\t\tif(!searchTermsRegExps) {\n\t\t\treturn true;\n\t\t}\n\t\tvar notYetFound = searchTermsRegExps.slice();\n\n\t\tvar tiddler = self.getTiddler(title);\n\t\tif(!tiddler) {\n\t\t\ttiddler = new $tw.Tiddler({title: title, text: \"\", type: \"text/vnd.tiddlywiki\"});\n\t\t}\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type] || $tw.config.contentTypeInfo[\"text/vnd.tiddlywiki\"],\n\t\t\tsearchFields;\n\t\t// Get the list of fields we're searching\n\t\tif(options.excludeField) {\n\t\t\tsearchFields = Object.keys(tiddler.fields);\n\t\t\t$tw.utils.each(fields,function(fieldName) {\n\t\t\t\tvar p = searchFields.indexOf(fieldName);\n\t\t\t\tif(p !== -1) {\n\t\t\t\t\tsearchFields.splice(p,1);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsearchFields = fields;\n\t\t}\n\t\tfor(var fieldIndex=0; notYetFound.length>0 && fieldIndex<searchFields.length; fieldIndex++) {\n\t\t\t// Don't search the text field if the content type is binary\n\t\t\tvar fieldName = searchFields[fieldIndex];\n\t\t\tif(fieldName === \"text\" && contentTypeInfo.encoding !== \"utf8\") {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tvar str = tiddler.fields[fieldName],\n\t\t\t\tt;\n\t\t\tif(str) {\n\t\t\t\tif($tw.utils.isArray(str)) {\n\t\t\t\t\t// If the field value is an array, test each regexp against each field array entry and fail if each regexp doesn't match at least one field array entry\n\t\t\t\t\tfor(var s=0; s<str.length; s++) {\n\t\t\t\t\t\tfor(t=0; t<notYetFound.length;) {\n\t\t\t\t\t\t\tif(notYetFound[t].test(str[s])) {\n\t\t\t\t\t\t\t\tnotYetFound.splice(t, 1);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tt++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If the field isn't an array, force it to a string and test each regexp against it and fail if any do not match\n\t\t\t\t\tstr = tiddler.getFieldString(fieldName);\n\t\t\t\t\tfor(t=0; t<notYetFound.length;) {\n\t\t\t\t\t\tif(notYetFound[t].test(str)) {\n\t\t\t\t\t\t\tnotYetFound.splice(t, 1);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tt++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn notYetFound.length == 0;\n\t};\n\t// Loop through all the tiddlers doing the search\n\tvar results = [],\n\t\tsource = options.source || this.each;\n\tsource(function(tiddler,title) {\n\t\tif(searchTiddler(title) !== options.invert) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\t// Remove any of the results we have to exclude\n\tif(options.exclude) {\n\t\tfor(t=0; t<options.exclude.length; t++) {\n\t\t\tvar p = results.indexOf(options.exclude[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tresults.splice(p,1);\n\t\t\t}\n\t\t}\n\t}\n\treturn results;\n};\n\n/*\nTrigger a load for a tiddler if it is skinny. Returns the text, or undefined if the tiddler is missing, null if the tiddler is being lazily loaded.\n*/\nexports.getTiddlerText = function(title,defaultText) {\n\tvar tiddler = this.getTiddler(title);\n\t// Return undefined if the tiddler isn't found\n\tif(!tiddler) {\n\t\treturn defaultText;\n\t}\n\tif(!tiddler.hasField(\"_is_skinny\")) {\n\t\t// Just return the text if we've got it\n\t\treturn tiddler.fields.text || \"\";\n\t} else {\n\t\t// Tell any listeners about the need to lazily load this tiddler\n\t\tthis.dispatchEvent(\"lazyLoad\",title);\n\t\t// Indicate that the text is being loaded\n\t\treturn null;\n\t}\n};\n\n/*\nCheck whether the text of a tiddler matches a given value. By default, the comparison is case insensitive, and any spaces at either end of the tiddler text is trimmed\n*/\nexports.checkTiddlerText = function(title,targetText,options) {\n\toptions = options || {};\n\tvar text = this.getTiddlerText(title,\"\");\n\tif(!options.noTrim) {\n\t\ttext = text.trim();\n\t}\n\tif(!options.caseSensitive) {\n\t\ttext = text.toLowerCase();\n\t\ttargetText = targetText.toLowerCase();\n\t}\n\treturn text === targetText;\n}\n\n/*\nRead an array of browser File objects, invoking callback(tiddlerFieldsArray) once they're all read\n*/\nexports.readFiles = function(files,options) {\n\tvar callback;\n\tif(typeof options === \"function\") {\n\t\tcallback = options;\n\t\toptions = {};\n\t} else {\n\t\tcallback = options.callback;\n\t}\n\tvar result = [],\n\t\toutstanding = files.length,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tresult.push.apply(result,tiddlerFieldsArray);\n\t\t\tif(--outstanding === 0) {\n\t\t\t\tcallback(result);\n\t\t\t}\n\t\t};\n\tfor(var f=0; f<files.length; f++) {\n\t\tthis.readFile(files[f],$tw.utils.extend({},options,{callback: readFileCallback}));\n\t}\n\treturn files.length;\n};\n\n/*\nRead a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFile = function(file,options) {\n\tvar callback;\n\tif(typeof options === \"function\") {\n\t\tcallback = options;\n\t\toptions = {};\n\t} else {\n\t\tcallback = options.callback;\n\t}\n\t// Get the type, falling back to the filename extension\n\tvar self = this,\n\t\ttype = file.type;\n\tif(type === \"\" || !type) {\n\t\tvar dotPos = file.name.lastIndexOf(\".\");\n\t\tif(dotPos !== -1) {\n\t\t\tvar fileExtensionInfo = $tw.utils.getFileExtensionInfo(file.name.substr(dotPos));\n\t\t\tif(fileExtensionInfo) {\n\t\t\t\ttype = fileExtensionInfo.type;\n\t\t\t}\n\t\t}\n\t}\n\t// Figure out if we're reading a binary file\n\tvar contentTypeInfo = $tw.config.contentTypeInfo[type],\n\t\tisBinary = contentTypeInfo ? contentTypeInfo.encoding === \"base64\" : false;\n\t// Log some debugging information\n\tif($tw.log.IMPORT) {\n\t\tconsole.log(\"Importing file '\" + file.name + \"', type: '\" + type + \"', isBinary: \" + isBinary);\n\t}\n\t// Give the hook a chance to process the drag\n\tif($tw.hooks.invokeHook(\"th-importing-file\",{\n\t\tfile: file,\n\t\ttype: type,\n\t\tisBinary: isBinary,\n\t\tcallback: callback\n\t}) !== true) {\n\t\tthis.readFileContent(file,type,isBinary,options.deserializer,callback);\n\t}\n};\n\n/*\nLower level utility to read the content of a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFileContent = function(file,type,isBinary,deserializer,callback) {\n\tvar self = this;\n\t// Create the FileReader\n\tvar reader = new FileReader();\n\t// Onload\n\treader.onload = function(event) {\n\t\tvar text = event.target.result,\n\t\t\ttiddlerFields = {title: file.name || \"Untitled\"};\n\t\tif(isBinary) {\n\t\t\tvar commaPos = text.indexOf(\",\");\n\t\t\tif(commaPos !== -1) {\n\t\t\t\ttext = text.substr(commaPos + 1);\n\t\t\t}\n\t\t}\n\t\t// Check whether this is an encrypted TiddlyWiki file\n\t\tvar encryptedJson = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedJson) {\n\t\t\t// If so, attempt to decrypt it with the current password\n\t\t\t$tw.utils.decryptStoreAreaInteractive(encryptedJson,function(tiddlers) {\n\t\t\t\tcallback(tiddlers);\n\t\t\t});\n\t\t} else {\n\t\t\t// Otherwise, just try to deserialise any tiddlers in the file\n\t\t\tcallback(self.deserializeTiddlers(type,text,tiddlerFields,{deserializer: deserializer}));\n\t\t}\n\t};\n\t// Kick off the read\n\tif(isBinary) {\n\t\treader.readAsDataURL(file);\n\t} else {\n\t\treader.readAsText(file);\n\t}\n};\n\n/*\nFind any existing draft of a specified tiddler\n*/\nexports.findDraft = function(targetTitle) {\n\tvar draftTitle = undefined;\n\tthis.forEachTiddler({includeSystem: true},function(title,tiddler) {\n\t\tif(tiddler.fields[\"draft.title\"] && tiddler.fields[\"draft.of\"] === targetTitle) {\n\t\t\tdraftTitle = title;\n\t\t}\n\t});\n\treturn draftTitle;\n}\n\n/*\nCheck whether the specified draft tiddler has been modified.\nIf the original tiddler doesn't exist, create  a vanilla tiddler variable,\nto check if additional fields have been added.\n*/\nexports.isDraftModified = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(!tiddler.isDraft()) {\n\t\treturn false;\n\t}\n\tvar ignoredFields = [\"created\", \"modified\", \"title\", \"draft.title\", \"draft.of\"],\n\t\torigTiddler = this.getTiddler(tiddler.fields[\"draft.of\"]) || new $tw.Tiddler({text:\"\", tags:[]}),\n\t\ttitleModified = tiddler.fields[\"draft.title\"] !== tiddler.fields[\"draft.of\"];\n\treturn titleModified || !tiddler.isEqual(origTiddler,ignoredFields);\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\nhistoryTitle: title of history tiddler (defaults to $:/HistoryList)\n*/\nexports.addToHistory = function(title,fromPageRect,historyTitle) {\n\tvar story = new $tw.Story({wiki: this, historyTitle: historyTitle});\n\tstory.addToHistory(title,fromPageRect);\t\n\tconsole.log(\"$tw.wiki.addToHistory() is deprecated since V5.1.23! Use the this.story.addToHistory() from the story-object!\")\n};\n\n/*\nAdd a new tiddler to the story river\ntitle: a title string or an array of title strings\nfromTitle: the title of the tiddler from which the navigation originated\nstoryTitle: title of story tiddler (defaults to $:/StoryList)\noptions: see story.js\n*/\nexports.addToStory = function(title,fromTitle,storyTitle,options) {\n\tvar story = new $tw.Story({wiki: this, storyTitle: storyTitle});\n\tstory.addToStory(title,fromTitle,options);\n\tconsole.log(\"$tw.wiki.addToStory() is deprecated since V5.1.23! Use the this.story.addToStory() from the story-object!\")\n};\n\n/*\nGenerate a title for the draft of a given tiddler\n*/\nexports.generateDraftTitle = function(title) {\n\tvar c = 0,\n\t\tdraftTitle,\n\t\tusername = this.getTiddlerText(\"$:/status/UserName\"),\n\t\tattribution = username ? \" by \" + username : \"\";\n\tdo {\n\t\tdraftTitle = \"Draft \" + (c ? (c + 1) + \" \" : \"\") + \"of '\" + title + \"'\" + attribution;\n\t\tc++;\n\t} while(this.tiddlerExists(draftTitle));\n\treturn draftTitle;\n};\n\n/*\nInvoke the available upgrader modules\ntitles: array of tiddler titles to be processed\ntiddlers: hashmap by title of tiddler fields of pending import tiddlers. These can be modified by the upgraders. An entry with no fields indicates a tiddler that was pending import has been suppressed. When entries are added to the pending import the tiddlers hashmap may have entries that are not present in the titles array\nReturns a hashmap of messages keyed by tiddler title.\n*/\nexports.invokeUpgraders = function(titles,tiddlers) {\n\t// Collect up the available upgrader modules\n\tvar self = this;\n\tif(!this.upgraderModules) {\n\t\tthis.upgraderModules = [];\n\t\t$tw.modules.forEachModuleOfType(\"upgrader\",function(title,module) {\n\t\t\tif(module.upgrade) {\n\t\t\t\tself.upgraderModules.push(module);\n\t\t\t}\n\t\t});\n\t}\n\t// Invoke each upgrader in turn\n\tvar messages = {};\n\tfor(var t=0; t<this.upgraderModules.length; t++) {\n\t\tvar upgrader = this.upgraderModules[t],\n\t\t\tupgraderMessages = upgrader.upgrade(this,titles,tiddlers);\n\t\t$tw.utils.extend(messages,upgraderMessages);\n\t}\n\treturn messages;\n};\n\n// Determine whether a plugin by title is dynamically loadable\nexports.doesPluginRequireReload = function(title) {\n\treturn this.doesPluginInfoRequireReload(this.getPluginInfo(title) || this.getTiddlerDataCached(title));\n};\n\n// Determine whether a plugin info structure is dynamically loadable\nexports.doesPluginInfoRequireReload = function(pluginInfo) {\n\tif(pluginInfo) {\n\t\tvar foundModule = false;\n\t\t$tw.utils.each(pluginInfo.tiddlers,function(tiddler) {\n\t\t\tif(tiddler.type === \"application/javascript\" && $tw.utils.hop(tiddler,\"module-type\")) {\n\t\t\t\tfoundModule = true;\n\t\t\t}\n\t\t});\n\t\treturn foundModule;\n\t} else {\n\t\treturn null;\n\t}\n};\n\nexports.slugify = function(title,options) {\n\tvar tiddler = this.getTiddler(title),\n\t\tslug;\n\tif(tiddler && tiddler.fields.slug) {\n\t\tslug = tiddler.fields.slug;\n\t} else {\n\t\tslug = $tw.utils.transliterate(title.toString().toLowerCase()) // Replace diacritics with basic lowercase ASCII\n\t\t\t.replace(/\\s+/g,\"-\")                                       // Replace spaces with -\n\t\t\t.replace(/[^\\w\\-\\.]+/g,\"\")                                 // Remove all non-word chars except dash and dot\n\t\t\t.replace(/\\-\\-+/g,\"-\")                                     // Replace multiple - with single -\n\t\t\t.replace(/^-+/,\"\")                                         // Trim - from start of text\n\t\t\t.replace(/-+$/,\"\");                                        // Trim - from end of text\n\t}\n\t// If the resulting slug is blank (eg because the title is just punctuation characters)\n\tif(!slug) {\n\t\t// ...then just use the character codes of the title\n\t\tvar result = [];\n\t\t$tw.utils.each(title.split(\"\"),function(char) {\n\t\t\tresult.push(char.charCodeAt(0).toString());\n\t\t});\n\t\tslug = result.join(\"-\");\n\t}\n\treturn slug;\n};\n\n})();\n\n",
            "type": "application/javascript",
            "module-type": "wikimethod"
        },
        "$:/palettes/Blanca": {
            "title": "$:/palettes/Blanca",
            "name": "Blanca",
            "description": "A clean white palette to let you focus",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #66cccc\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ffffff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #7897f3\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ccc\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #ffffff\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #7897f3\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #eeeeee\ntab-border-selected: #cccccc\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffeedd\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: #eee\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #ff9900\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/Blue": {
            "title": "$:/palettes/Blue",
            "name": "Blue",
            "description": "A blue theme",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333353\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ddddff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #5959c0\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: #ccccdd\ntab-border-selected: #ccccdd\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #eeeeff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #666666\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #ffffff\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #ffffff\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #5959c0\ntoolbar-new-button: #5eb95e\ntoolbar-options-button: rgb(128, 88, 165)\ntoolbar-save-button: #0e90d2\ntoolbar-info-button: #0e90d2\ntoolbar-edit-button: rgb(243, 123, 29)\ntoolbar-close-button: #dd514c\ntoolbar-delete-button: #dd514c\ntoolbar-cancel-button: rgb(243, 123, 29)\ntoolbar-done-button: #5eb95e\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/Muted": {
            "title": "$:/palettes/Muted",
            "name": "Muted",
            "description": "Bright tiddlers on a muted background",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #6f6f70\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #29a6ee\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #c2c1c2\nsidebar-foreground-shadow: rgba(255,255,255,0)\nsidebar-foreground: #d3d2d4\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #6f6f70\nsidebar-tab-background: #666667\nsidebar-tab-border-selected: #999\nsidebar-tab-border: #515151\nsidebar-tab-divider: #999\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: #999\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #d1d0d2\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #d5ad34\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/ContrastLight": {
            "title": "$:/palettes/ContrastLight",
            "name": "Contrast (Light)",
            "description": "High contrast and unambiguous (light version)",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #000\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #000\ntag-foreground: #fff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/ContrastDark": {
            "title": "$:/palettes/ContrastDark",
            "name": "Contrast (Dark)",
            "description": "High contrast and unambiguous (dark version)",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #000\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #fff\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #fff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/CupertinoDark": {
            "title": "$:/palettes/CupertinoDark",
            "tags": "$:/tags/Palette",
            "name": "Cupertino Dark",
            "description": "A macOS inspired dark palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #FF453A\nalert-border: #FF453A\nalert-highlight: #FFD60A\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #282828\nblockquote-bar: <<colour page-background>>\nbutton-foreground: <<colour background>>\ncode-background: <<colour pre-background>>\ncode-border: <<colour pre-border>>\ncode-foreground: rgba(255, 255, 255, 0.54)\ndirty-indicator: #FF453A\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour tiddler-info-background>>\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: #3F638B\ndropdown-tab-background: #323232\ndropzone-background: #30D158\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: #BF5AF2\nexternal-link-foreground: #32D74B\nforeground: #FFFFFF\nmenubar-background: #464646\nmenubar-foreground: #ffffff\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(255, 255, 255, 0.54)\nmodal-backdrop: <<colour page-background>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour background>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: #98989D\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #323232\npre-background: #464646\npre-border: transparent\nprimary: #0A84FF\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour background>>\nsidebar-controls-foreground-hover: #FF9F0A\nsidebar-controls-foreground: #8E8E93\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground-hover: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground: rgba(255, 255, 255, 0.38)\nsidebar-tab-background-selected: #3F638B\nsidebar-tab-background: <<colour background>>\nsidebar-tab-border-selected: <<colour background>>\nsidebar-tab-border: <<colour background>>\nsidebar-tab-divider: <<colour background>>\nsidebar-tab-foreground-selected: rgba(255, 255, 255, 0.87)\nsidebar-tab-foreground: rgba(255, 255, 255, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(255, 255, 255, 0.7)\nsidebar-tiddler-link-foreground: rgba(255, 255, 255, 0.54)\nsite-title-foreground: #ffffff\nstatic-alert-foreground: #B4B4B4\ntab-background-selected: #3F638B\ntab-background: <<colour page-background>>\ntab-border-selected: <<colour page-background>>\ntab-border: <<colour page-background>>\ntab-divider: <<colour page-background>>\ntab-foreground-selected: rgba(255, 255, 255, 0.87)\ntab-foreground: rgba(255, 255, 255, 0.54)\ntable-border: #464646\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #48484A\ntag-foreground: #323232\ntiddler-background: <<colour background>>\ntiddler-border: transparent\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: #48484A\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: rgba(255, 255, 255, 0.08)\ntiddler-editor-fields-even: rgba(255, 255, 255, 0.1)\ntiddler-editor-fields-odd: rgba(255, 255, 255, 0.04)\ntiddler-info-background: #1E1E1E\ntiddler-info-border: #1E1E1E\ntiddler-info-tab-background: #3F638B\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #FFFFFF\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: #464646\nselection-background: #3F638B\nselection-foreground: #ffffff\nwikilist-background: <<colour page-background>>\nwikilist-button-background: #3F638B\nwikilist-button-foreground: <<colour foreground>>\nwikilist-button-open: #32D74B\nwikilist-button-open-hover: #32D74B\nwikilist-button-reveal: #0A84FF\nwikilist-button-reveal-hover: #0A84FF\nwikilist-button-remove: #FF453A\nwikilist-button-remove-hover: #FF453A\nwikilist-droplink-dragover: #32D74B\nwikilist-item: <<colour background>>\nwikilist-toolbar-background: <<colour background>>\nwikilist-title: <<colour foreground>>\nwikilist-title-svg: <<colour foreground>>\nwikilist-toolbar-foreground: <<colour foreground>>\nwikilist-url: <<colour muted-foreground>>\n"
        },
        "$:/palettes/DarkPhotos": {
            "title": "$:/palettes/DarkPhotos",
            "created": "20150402111612188",
            "description": "Good with dark photo backgrounds",
            "modified": "20150402112344080",
            "name": "DarkPhotos",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: \nbutton-foreground: \nbutton-border: \ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #ddd\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #336438\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #ccf\nsidebar-controls-foreground: #fff\nsidebar-foreground-shadow: rgba(0,0,0, 0.5)\nsidebar-foreground: #fff\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #eee\nsidebar-tab-background-selected: rgba(255,255,255, 0.8)\nsidebar-tab-background: rgba(255,255,255, 0.4)\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: rgba(255,255,255, 0.2)\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #aaf\nsidebar-tiddler-link-foreground: #ddf\nsite-title-foreground: #fff\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/DesertSand": {
            "title": "$:/palettes/DesertSand",
            "tags": "$:/tags/Palette",
            "name": "Desert Sand",
            "description": "A desert sand palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #E9E0C7\nblockquote-bar: <<colour muted-foreground>>\nbutton-foreground: <<colour foreground>>\ncode-background: #F3EDDF\ncode-border: #C3BAA1\ncode-foreground: #ab3250\ndiff-delete-background: #bd8b8b\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #91c093\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #ad3434\ndownload-background: #6ca16c\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #E9E0C7\ndropdown-tab-background: #BAB29C\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #313163\nexternal-link-foreground: #555592\nforeground: #2D2A23\nmenubar-background: #CDC2A6\nmenubar-foreground: #5A5446\nmessage-background: #ECE5CF\nmessage-border: #D6CBAA\nmessage-foreground: #5f6e7d\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #8A8885\nmodal-footer-background: #CDC2A6\nmodal-footer-border: #9D998E\nmodal-header-border: #9D998E\nmuted-foreground: #9D998E\nnotification-background: #F0E9D7\nnotification-border: #939189\npage-background: #e0d3af\npre-background: #D6CBAA\npre-border: #CDC2A6\nprimary: #5B6F55\nselection-background: #9D947B\nselection-foreground: <<colour foreground>>\nselect-tag-background: #F0E9D7\nselect-tag-foreground: #2D2A23\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #2D2A23\nsidebar-controls-foreground: #867F69\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #867F69\nsidebar-muted-foreground-hover: #706A58\nsidebar-muted-foreground: #B3A98C\nsidebar-tab-background-selected: #e0d3af\nsidebar-tab-background: #A6A193\nsidebar-tab-border-selected: #C3BAA1\nsidebar-tab-border: #C3BAA1\nsidebar-tab-divider: #CDC2A6\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: #2D2A23\nsidebar-tiddler-link-foreground-hover: #433F35\nsidebar-tiddler-link-foreground: #706A58\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #A6A193\ntab-background-selected: #E9E0C7\ntab-background: #A6A193\ntab-border-selected: #C3BAA1\ntab-border: #C3BAA1\ntab-divider: #CDC2A6\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #2D2A23\ntable-border: #9D998E\ntable-footer-background: #8A8885\ntable-header-background: #B0AA98\ntag-background: #706A58\ntag-foreground: #E3D7B7\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #9D947B\ntiddler-controls-foreground-selected: #706A58\ntiddler-controls-foreground: #C3BAA1\ntiddler-editor-background: #E9E0C7\ntiddler-editor-border-image: #A6A193\ntiddler-editor-border: #A6A193\ntiddler-editor-fields-even: #D6CBAA\ntiddler-editor-fields-odd: #C3BAA1\ntiddler-info-background: #E3D7B7\ntiddler-info-border: #BAB29C\ntiddler-info-tab-background: #E9E0C7\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #867F69\ntiddler-title-foreground: #374464\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #8A8885\nvery-muted-foreground: #CDC2A6\nwikilist-background: <<colour page-background>>\nwikilist-item: #CDC2A6\nwikilist-info: #161512\nwikilist-title: #433F35\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: #706A58\nwikilist-button-open: #7db66a\nwikilist-button-open-hover: #56a556\nwikilist-button-reveal: #5a6c9e\nwikilist-button-reveal-hover: #454591\nwikilist-button-remove: #bc5972\nwikilist-button-remove-hover: #814040\nwikilist-toolbar-background: #CDC2A6\nwikilist-toolbar-foreground: #2D2A23\nwikilist-droplink-dragover: rgba(255,192,192,0.5)\nwikilist-button-background: #A6A193\nwikilist-button-foreground: #161512\n"
        },
        "$:/palettes/GruvboxDark": {
            "title": "$:/palettes/GruvboxDark",
            "name": "Gruvbox Dark",
            "description": "Retro groove color scheme",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "license": "https://github.com/morhetz/gruvbox",
            "text": "alert-background: #cc241d\nalert-border: #cc241d\nalert-highlight: #d79921\nalert-muted-foreground: #504945\nbackground: #3c3836\nblockquote-bar: <<colour muted-foreground>>\nbutton-foreground: <<colour page-background>>\ncode-background: #504945\ncode-border: #504945\ncode-foreground: #fb4934\ndiff-delete-background: #fb4934\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #b8bb26\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #fb4934\ndownload-background: #b8bb26\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #665c54\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #ebdbb2\ndropdown-tab-background: #665c54\ndropzone-background: #98971a\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #d3869b\nexternal-link-foreground: #8ec07c\nforeground: #fbf1c7\nmenubar-background: #504945\nmenubar-foreground: <<colour foreground>>\nmessage-background: #83a598\nmessage-border: #83a598\nmessage-foreground: #3c3836\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #504945\nmodal-footer-background: #3c3836\nmodal-footer-border: #3c3836\nmodal-header-border: #3c3836\nmuted-foreground: #d5c4a1\nnotification-background: <<colour primary>>\nnotification-border: <<colour primary>>\npage-background: #282828\npre-background: #504945\npre-border: #504945\nprimary: #d79921\nselect-tag-background: #665c54\nselect-tag-foreground: <<colour foreground>>\nselection-background: #458588\nselection-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour page-background>>\nsidebar-controls-foreground-hover: #7c6f64\nsidebar-controls-foreground: #504945\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #fbf1c7\nsidebar-muted-foreground-hover: #7c6f64\nsidebar-muted-foreground: #504945\nsidebar-tab-background-selected: #bdae93\nsidebar-tab-background: #3c3836\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #bdae93\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #282828\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #458588\nsidebar-tiddler-link-foreground: #98971a\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #B48EAD\ntab-background-selected: #ebdbb2\ntab-background: #665c54\ntab-border-selected: #665c54\ntab-border: #665c54\ntab-divider: #bdae93\ntab-foreground-selected: #282828\ntab-foreground: #ebdbb2\ntable-border: #7c6f64\ntable-footer-background: #665c54\ntable-header-background: #504945\ntag-background: #d3869b\ntag-foreground: #282828\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #7c6f64\ntiddler-controls-foreground-selected: <<colour primary>>\ntiddler-controls-foreground: #665c54\ntiddler-editor-background: #32302f\ntiddler-editor-border-image: #282828\ntiddler-editor-border: #282828\ntiddler-editor-fields-even: #504945\ntiddler-editor-fields-odd: #7c6f64\ntiddler-info-background: #32302f\ntiddler-info-border: #ebdbb2\ntiddler-info-tab-background: #ebdbb2\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #7c6f64\ntiddler-title-foreground: #a89984\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #504945\nvery-muted-foreground: #bdae93\nwikilist-background: <<colour page-background>>\nwikilist-button-background: #acacac\nwikilist-button-foreground: <<colour button-foreground>>\nwikilist-item: <<colour background>>\nwikilist-toolbar-background: <<colour background>>\nwikilist-toolbar-foreground: <<colour foreground>>\nwikilist-title: <<colour foreground>>\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: <<colour muted-foreground>>\nwikilist-button-open-hover: <<colour primary>>\nwikilist-button-open: <<colour dropzone-background>>\nwikilist-button-remove: <<colour dirty-indicator>>\nwikilist-button-remove-hover: <<colour alert-background>>\nwikilist-droplink-dragover: <<colour dropzone-background>>\nwikilist-button-reveal: <<colour sidebar-tiddler-link-foreground-hover>>\nwikilist-button-reveal-hover: <<colour message-background>>\n"
        },
        "$:/palettes/Nord": {
            "title": "$:/palettes/Nord",
            "name": "Nord",
            "description": "An arctic, north-bluish color palette.",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "license": "MIT, arcticicestudio, https://github.com/arcticicestudio/nord/blob/develop/LICENSE.md",
            "text": "alert-background: #D08770\nalert-border: #D08770\nalert-highlight: #B48EAD\nalert-muted-foreground: #4C566A\nbackground: #3b4252\nblockquote-bar: <<colour muted-foreground>>\nbutton-foreground: <<colour page-background>>\ncode-background: #2E3440\ncode-border: #2E3440\ncode-foreground: #BF616A\ndiff-delete-background: #BF616A\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #A3BE8C\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #BF616A\ndownload-background: #A3BE8C\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #ECEFF4\ndropdown-tab-background: #4C566A\ndropzone-background: #A3BE8C\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #5E81AC\nexternal-link-foreground: #8FBCBB\nforeground: #d8dee9\nmenubar-background: #2E3440\nmenubar-foreground: #d8dee9\nmessage-background: #2E3440\nmessage-border: #2E3440\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #3b4252\nmodal-footer-background: #3b4252\nmodal-footer-border: #3b4252\nmodal-header-border: #3b4252\nmuted-foreground: #4C566A\nnotification-background: <<colour primary>>\nnotification-border: #EBCB8B\npage-background: #2e3440\npre-background: #2E3440\npre-border: #2E3440\nprimary: #5E81AC\nselect-tag-background: #3b4252\nselect-tag-foreground: <<colour foreground>>\nselection-background: #5E81AC\nselection-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour page-background>>\nsidebar-controls-foreground-hover: #D8DEE9\nsidebar-controls-foreground: #4C566A\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #D8DEE9\nsidebar-muted-foreground-hover: #4C566A\nsidebar-muted-foreground: #4C566A\nsidebar-tab-background-selected: #ECEFF4\nsidebar-tab-background: #4C566A\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #4C566A\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #4C566A\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #A3BE8C\nsidebar-tiddler-link-foreground: #81A1C1\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #B48EAD\ntab-background-selected: #ECEFF4\ntab-background: #4C566A\ntab-border-selected: #4C566A\ntab-border: #4C566A\ntab-divider: #4C566A\ntab-foreground-selected: #4C566A\ntab-foreground: #D8DEE9\ntable-border: #4C566A\ntable-footer-background: #2e3440\ntable-header-background: #2e3440\ntag-background: #A3BE8C\ntag-foreground: #4C566A\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: \ntiddler-controls-foreground-selected: #EBCB8B\ntiddler-controls-foreground: #4C566A\ntiddler-editor-background: #2e3440\ntiddler-editor-border-image: #2e3440\ntiddler-editor-border: #3b4252\ntiddler-editor-fields-even: #2e3440\ntiddler-editor-fields-odd: #2e3440\ntiddler-info-background: #2e3440\ntiddler-info-border: #2e3440\ntiddler-info-tab-background: #2e3440\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #4C566A\ntiddler-title-foreground: #81A1C1\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #2d3038\nvery-muted-foreground: #2d3038\nwikilist-background: <<colour page-background>>\nwikilist-toolbar-background: <<colour background>>\nwikilist-item: <<colour background>>\nwikilist-title: <<colour foreground>>\nwikilist-info: <<colour muted-foreground>>\nwikilist-button-open: #A3BE8C\nwikilist-button-open-hover: #A3BE8C\nwikilist-button-reveal: #81A1C1\nwikilist-button-reveal-hover: #81A1C1\nwikilist-button-remove: #B48EAD\nwikilist-button-remove-hover: #B48EAD\n"
        },
        "$:/palettes/Rocker": {
            "title": "$:/palettes/Rocker",
            "name": "Rocker",
            "description": "A dark theme",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #000\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #cc0000\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.0)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #000\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #ffbb99\nsidebar-tiddler-link-foreground: #cc0000\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffbb99\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #cc0000\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/SolarFlare": {
            "title": "$:/palettes/SolarFlare",
            "name": "Solar Flare",
            "description": "Warm, relaxing earth colours",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": ": Background Tones\n\nbase03: #002b36\nbase02: #073642\n\n: Content Tones\n\nbase01: #586e75\nbase00: #657b83\nbase0: #839496\nbase1: #93a1a1\n\n: Background Tones\n\nbase2: #eee8d5\nbase3: #fdf6e3\n\n: Accent Colors\n\nyellow: #b58900\norange: #cb4b16\nred: #dc322f\nmagenta: #d33682\nviolet: #6c71c4\nblue: #268bd2\ncyan: #2aa198\ngreen: #859900\n\n: Additional Tones (RA)\n\nbase10: #c0c4bb\nviolet-muted: #7c81b0\nblue-muted: #4e7baa\n\nyellow-hot: #ffcc44\norange-hot: #eb6d20\nred-hot: #ff2222\nblue-hot: #2298ee\ngreen-hot: #98ee22\n\n: Palette\n\n: Do not use colour macro for background and foreground\nbackground: #fdf6e3\n    download-foreground: <<colour background>>\n    dragger-foreground: <<colour background>>\n    dropdown-background: <<colour background>>\n    modal-background: <<colour background>>\n    sidebar-foreground-shadow: <<colour background>>\n    tiddler-background: <<colour background>>\n    tiddler-border: <<colour background>>\n    tiddler-link-background: <<colour background>>\n    tab-background-selected: <<colour background>>\n        dropdown-tab-background-selected: <<colour tab-background-selected>>\nforeground: #657b83\n    dragger-background: <<colour foreground>>\n    tab-foreground: <<colour foreground>>\n        tab-foreground-selected: <<colour tab-foreground>>\n            sidebar-tab-foreground-selected: <<colour tab-foreground-selected>>\n        sidebar-tab-foreground: <<colour tab-foreground>>\n    sidebar-button-foreground: <<colour foreground>>\n    sidebar-controls-foreground: <<colour foreground>>\n    sidebar-foreground: <<colour foreground>>\n: base03\n: base02\n: base01\n    alert-muted-foreground: <<colour base01>>\n: base00\n    code-foreground: <<colour base00>>\n    message-foreground: <<colour base00>>\n    tag-foreground: <<colour base00>>\n: base0\n    sidebar-tiddler-link-foreground: <<colour base0>>\n: base1\n    muted-foreground: <<colour base1>>\n        blockquote-bar: <<colour muted-foreground>>\n        dropdown-border: <<colour muted-foreground>>\n        sidebar-muted-foreground: <<colour muted-foreground>>\n        tiddler-title-foreground: <<colour muted-foreground>>\n            site-title-foreground: <<colour tiddler-title-foreground>>\n: base2\n    modal-footer-background: <<colour base2>>\n    page-background: <<colour base2>>\n        modal-backdrop: <<colour page-background>>\n        notification-background: <<colour page-background>>\n        code-background: <<colour page-background>>\n            code-border: <<colour code-background>>\n        pre-background: <<colour page-background>>\n            pre-border: <<colour pre-background>>\n        sidebar-tab-background-selected: <<colour page-background>>\n    table-header-background: <<colour base2>>\n    tag-background: <<colour base2>>\n    tiddler-editor-background: <<colour base2>>\n    tiddler-info-background: <<colour base2>>\n    tiddler-info-tab-background: <<colour base2>>\n    tab-background: <<colour base2>>\n        dropdown-tab-background: <<colour tab-background>>\n: base3\n    alert-background: <<colour base3>>\n    message-background: <<colour base3>>\n: yellow\n: orange\n: red\n: magenta\n    alert-highlight: <<colour magenta>>\n: violet\n    external-link-foreground: <<colour violet>>\n: blue\n: cyan\n: green\n: base10\n    tiddler-controls-foreground: <<colour base10>>\n: violet-muted\n    external-link-foreground-visited: <<colour violet-muted>>\n: blue-muted\n    primary: <<colour blue-muted>>\n        download-background: <<colour primary>>\n        tiddler-link-foreground: <<colour primary>>\n\nalert-border: #b99e2f\ndirty-indicator: #ff0000\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nmessage-border: #cfd6e6\nmodal-border: #999999\nselect-tag-background:\nselect-tag-foreground:\nsidebar-controls-foreground-hover:\nsidebar-muted-foreground-hover:\nsidebar-tab-background: #ded8c5\nsidebar-tiddler-link-foreground-hover:\nstatic-alert-foreground: #aaaaaa\ntab-border: #cccccc\n    modal-footer-border: <<colour tab-border>>\n    modal-header-border: <<colour tab-border>>\n    notification-border: <<colour tab-border>>\n    sidebar-tab-border: <<colour tab-border>>\n    tab-border-selected: <<colour tab-border>>\n        sidebar-tab-border-selected: <<colour tab-border-selected>>\ntab-divider: #d8d8d8\n    sidebar-tab-divider: <<colour tab-divider>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-border: #dddddd\ntiddler-subtitle-foreground: #c0c0c0\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/SolarizedDark": {
            "title": "$:/palettes/SolarizedDark",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "description": "Precision dark colors for machines and people",
            "license": "MIT, Ethan Schoonover, https://github.com/altercation/solarized/blob/master/LICENSE",
            "name": "SolarizedDark",
            "text": "alert-background: #073642\nalert-border: #93a1a1\nalert-highlight: #d33682\nalert-muted-foreground: #d33682\nbackground: #073642\nblockquote-bar: #d33682\nbutton-background: #073642\nbutton-border: #586e75\nbutton-foreground: #93a1a1\ncode-background: #073642\ncode-border: #586e75\ncode-foreground: #93a1a1\ndirty-indicator: inherit\ndownload-background: #859900\ndownload-foreground: #073642\ndragger-background: #073642\ndragger-foreground: #839496\ndropdown-background: #073642\ndropdown-border: #93a1a1\ndropdown-tab-background: #002b36\ndropdown-tab-background-selected: #073642\ndropzone-background: #859900\nexternal-link-background: inherit\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-foreground: #268bd2\nexternal-link-foreground-hover:\nexternal-link-foreground-visited: #268bd2\nforeground: #839496\nmessage-background: #002b36\nmessage-border: #586e75\nmessage-foreground: #839496\nmodal-backdrop: #657b83\nmodal-background: #002b36\nmodal-border: #586e75\nmodal-footer-background: #073642\nmodal-footer-border: #586e75\nmodal-header-border: #586e75\nmuted-foreground: #93a1a1\nnotification-background: #002b36\nnotification-border: #586e75\npage-background: #073642\npre-background: inherit\npre-border: #657b83\nprimary: #859900\nselect-tag-background: #002b36\nselect-tag-foreground: #839496\nsidebar-button-foreground: #93a1a1\nsidebar-controls-foreground: #93a1a1\nsidebar-controls-foreground-hover: #eee8d5\nsidebar-foreground: #93a1a1\nsidebar-foreground-shadow: transparent\nsidebar-muted-foreground: #839496\nsidebar-muted-foreground-hover: #93a1a1\nsidebar-tab-background: #002b36\nsidebar-tab-background-selected: #073642\nsidebar-tab-border: #073642\nsidebar-tab-border-selected: #839496\nsidebar-tab-divider: #002b36\nsidebar-tab-foreground: #657b83\nsidebar-tab-foreground-selected: #93a1a1\nsidebar-tiddler-link-foreground: #2aa198\nsidebar-tiddler-link-foreground-hover: #eee8d5\nsite-title-foreground: #d33682\nstatic-alert-foreground: #93a1a1\ntab-background: #073642\ntab-background-selected: #002b36\ntab-border: #586e75\ntab-border-selected: #93a1a1\ntab-divider: #93a1a1\ntab-foreground: #839496\ntab-foreground-selected: #93a1a1\ntable-border: #586e75\ntable-footer-background: #073642\ntable-header-background: #073642\ntag-background: #b58900\ntag-foreground: #002b36\ntiddler-background: #002b36\ntiddler-border: #586e75\ntiddler-controls-foreground: inherit\ntiddler-controls-foreground-hover: #d33682\ntiddler-controls-foreground-selected: #2aa198\ntiddler-editor-background: #002b36\ntiddler-editor-border: #073642\ntiddler-editor-border-image: #002b36\ntiddler-editor-fields-even: #002b36\ntiddler-editor-fields-odd: #073642\ntiddler-info-background: #073642\ntiddler-info-border: #657b83\ntiddler-info-tab-background: #002b36\ntiddler-link-background: #002b36\ntiddler-link-foreground: #2aa198\ntiddler-subtitle-foreground: #839496\ntiddler-title-foreground: #d33682\ntoolbar-cancel-button: #839496\ntoolbar-close-button: #839496\ntoolbar-delete-button: #dc322f\ntoolbar-done-button: #839496\ntoolbar-edit-button: #839496\ntoolbar-info-button: #839496\ntoolbar-new-button: #839496\ntoolbar-options-button: #839496\ntoolbar-save-button: inherit\nuntagged-background: #586e75\nvery-muted-foreground: #586e75\n"
        },
        "$:/palettes/SolarizedLight": {
            "title": "$:/palettes/SolarizedLight",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "description": "Precision colors for machines and people",
            "license": "MIT, Ethan Schoonover, https://github.com/altercation/solarized/blob/master/LICENSE",
            "name": "SolarizedLight",
            "text": "alert-background: #eee8d5\nalert-border: #586e75\nalert-highlight: #d33682\nalert-muted-foreground: #d33682\nbackground: #eee8d5\nblockquote-bar: #d33682\nbutton-background: #eee8d5\nbutton-border: #93a1a1\nbutton-foreground: #586e75\ncode-background: #eee8d5\ncode-border: #93a1a1\ncode-foreground: #586e75\ndirty-indicator: inherit\ndownload-background: #859900\ndownload-foreground: #eee8d5\ndragger-background: #eee8d5\ndragger-foreground: #657b83\ndropdown-background: #eee8d5\ndropdown-border: #586e75\ndropdown-tab-background: #fdf6e3\ndropdown-tab-background-selected: #eee8d5\ndropzone-background: #859900\nexternal-link-background: inherit\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-foreground: #268bd2\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #268bd2\nforeground: #657b83\nmessage-background: #fdf6e3\nmessage-border: #93a1a1\nmessage-foreground: #657b83\nmodal-backdrop: #839496\nmodal-background: #fdf6e3\nmodal-border: #93a1a1\nmodal-footer-background: #eee8d5\nmodal-footer-border: #93a1a1\nmodal-header-border: #93a1a1\nmuted-foreground: #586e75\nnotification-background: #fdf6e3\nnotification-border: #93a1a1\npage-background: #eee8d5\npre-background: #eee8d5\npre-border: #839496\nprimary: #859900\nselect-tag-background: #fdf6e3\nselect-tag-foreground: #657b83\nsidebar-button-foreground: #586e75\nsidebar-controls-foreground: #586e75\nsidebar-controls-foreground-hover: #d33682\nsidebar-foreground: #586e75\nsidebar-foreground-shadow: transparent\nsidebar-muted-foreground: #657b83\nsidebar-muted-foreground-hover: #586e75\nsidebar-tab-background: #fdf6e3\nsidebar-tab-background-selected: #eee8d5\nsidebar-tab-border: #eee8d5\nsidebar-tab-border-selected: #657b83\nsidebar-tab-divider: #fdf6e3\nsidebar-tab-foreground: #839496\nsidebar-tab-foreground-selected: #586e75\nsidebar-tiddler-link-foreground: #2aa198\nsidebar-tiddler-link-foreground-hover: #002b36\nsite-title-foreground: #d33682\nstatic-alert-foreground: #586e75\ntab-background: #eee8d5\ntab-background-selected: #fdf6e3\ntab-border: #93a1a1\ntab-border-selected: #586e75\ntab-divider: #586e75\ntab-foreground: #657b83\ntab-foreground-selected: #586e75\ntable-border: #93a1a1\ntable-footer-background: #eee8d5\ntable-header-background: #eee8d5\ntag-background: #b58900\ntag-foreground: #fdf6e3\ntiddler-background: #fdf6e3\ntiddler-border: #93a1a1\ntiddler-controls-foreground: inherit\ntiddler-controls-foreground-hover: #d33682\ntiddler-controls-foreground-selected: #2aa198\ntiddler-editor-background: #fdf6e3\ntiddler-editor-border: #eee8d5\ntiddler-editor-border-image: #fdf6e3\ntiddler-editor-fields-even: #fdf6e3\ntiddler-editor-fields-odd: #eee8d5\ntiddler-info-background: #eee8d5\ntiddler-info-border: #839496\ntiddler-info-tab-background: #fdf6e3\ntiddler-link-background: #fdf6e3\ntiddler-link-foreground: #2aa198\ntiddler-subtitle-foreground: #657b83\ntiddler-title-foreground: #d33682\ntoolbar-cancel-button: #657b83\ntoolbar-close-button: #657b83\ntoolbar-delete-button: #dc322f\ntoolbar-done-button: #657b83\ntoolbar-edit-button: #657b83\ntoolbar-info-button: #657b83\ntoolbar-new-button: #657b83\ntoolbar-options-button: #657b83\ntoolbar-save-button: inherit\nuntagged-background: #586e75\nvery-muted-foreground: #93a1a1\n"
        },
        "$:/palettes/SpartanDay": {
            "title": "$:/palettes/SpartanDay",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "description": "Cold, spartan day colors",
            "name": "Spartan Day",
            "text": "alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #FAFAFA\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherit\nbutton-border: <<colour tag-background>>\ncode-background: #ececec\ncode-border: #ececec\ncode-foreground: \ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #FFFFFF\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #F5F5F5\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: \nexternal-link-foreground: \nforeground: rgba(0, 0, 0, 0.87)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(0, 0, 0, 0.54)\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour very-muted-foreground>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(0, 0, 0, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #f4f4f4\npre-background: #ececec\npre-border: #ececec\nprimary: #3949ab\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #aeaeae\nsidebar-controls-foreground: #c6c6c6\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground-hover: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground: rgba(0, 0, 0, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: transparent\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(0, 0, 0, 0.87)\nsidebar-tab-foreground: rgba(0, 0, 0, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(0, 0, 0, 0.87)\nsidebar-tiddler-link-foreground: rgba(0, 0, 0, 0.54)\nsite-title-foreground: rgba(0, 0, 0, 0.87)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: transparent\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(0, 0, 0, 0.87)\ntab-foreground: rgba(0, 0, 0, 0.54)\ntable-border: #d8d8d8\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: #f9f9f9\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: #e8e7e7\ntiddler-editor-fields-even: rgba(0, 0, 0, 0.1)\ntiddler-editor-fields-odd: rgba(0, 0, 0, 0.04)\ntiddler-info-background: #F5F5F5\ntiddler-info-border: #F5F5F5\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #000000\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: rgba(0, 0, 0, 0.12)\n"
        },
        "$:/palettes/SpartanNight": {
            "title": "$:/palettes/SpartanNight",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "description": "Dark spartan colors",
            "name": "Spartan Night",
            "text": "alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #303030\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherit\nbutton-border: <<colour tag-background>>\ncode-background: <<colour pre-background>>\ncode-border: <<colour pre-border>>\ncode-foreground: rgba(255, 255, 255, 0.54)\ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #424242\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #050505\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: #7c318c\nexternal-link-foreground: #9e3eb3\nforeground: rgba(255, 255, 255, 0.7)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(255, 255, 255, 0.54)\nmodal-backdrop: <<colour page-background>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour background>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(255, 255, 255, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #212121\npre-background: #2a2a2a\npre-border: transparent\nprimary: #5656f3\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #494949\nsidebar-controls-foreground: #5d5d5d\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground-hover: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground: rgba(255, 255, 255, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: transparent\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(255, 255, 255, 0.87)\nsidebar-tab-foreground: rgba(255, 255, 255, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(255, 255, 255, 0.7)\nsidebar-tiddler-link-foreground: rgba(255, 255, 255, 0.54)\nsite-title-foreground: rgba(255, 255, 255, 0.7)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: transparent\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(255, 255, 255, 0.87)\ntab-foreground: rgba(255, 255, 255, 0.54)\ntable-border: #3a3a3a\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: rgb(55,55,55)\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: rgba(255, 255, 255, 0.08)\ntiddler-editor-fields-even: rgba(255, 255, 255, 0.1)\ntiddler-editor-fields-odd: rgba(255, 255, 255, 0.04)\ntiddler-info-background: #454545\ntiddler-info-border: #454545\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #FFFFFF\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: rgba(255, 255, 255, 0.12)\n"
        },
        "$:/palettes/Twilight": {
            "title": "$:/palettes/Twilight",
            "tags": "$:/tags/Palette",
            "author": "Thomas Elmiger",
            "type": "application/x-tiddler-dictionary",
            "name": "Twilight",
            "description": "Delightful, soft darkness.",
            "text": "alert-background: rgb(255, 255, 102)\nalert-border: rgb(232, 232, 125)\nalert-highlight: rgb(255, 51, 51)\nalert-muted-foreground: rgb(224, 82, 82)\nbackground: rgb(38, 38, 38)\nblockquote-bar: rgba(240, 196, 117, 0.7)\nbutton-background: rgb(63, 63, 63)\nbutton-border: rgb(127, 127, 127)\nbutton-foreground: rgb(179, 179, 179)\ncode-background: rgba(0,0,0,0.03)\ncode-border: rgba(0,0,0,0.08)\ncode-foreground: rgb(255, 94, 94)\ndiff-delete-background: #ffc9c9\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #aaefad\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: rgb(255, 94, 94)\ndownload-background: #19a974\ndownload-foreground: rgb(38, 38, 38)\ndragger-background: rgb(179, 179, 179)\ndragger-foreground: rgb(38, 38, 38)\ndropdown-background: rgb(38, 38, 38)\ndropdown-border: rgb(255, 255, 255)\ndropdown-tab-background: rgba(0,0,0,.1)\ndropdown-tab-background-selected: rgba(255,255,255,1)\ndropzone-background: #9eebcf\nexternal-link-background: inherit\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-foreground: rgb(179, 179, 255)\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: rgb(153, 153, 255)\nforeground: rgb(179, 179, 179)\nmessage-background: <<colour tag-foreground>>\nmessage-border: #96ccff\nmessage-foreground: <<colour tag-background>>\nmodal-backdrop: rgb(179, 179, 179)\nmodal-background: rgb(38, 38, 38)\nmodal-border: rgba(0,0,0,.5)\nmodal-footer-background: #f4f4f4\nmodal-footer-border: rgba(0,0,0,.1)\nmodal-header-border: rgba(0,0,0,.2)\nmuted-foreground: rgb(255, 255, 255)\nnotification-background: <<colour tag-foreground>>\nnotification-border: <<colour tag-background>>\npage-background: rgb(26, 26, 26)\npre-background: rgb(25, 25, 25)\npre-border: rgba(0,0,0,.2)\nprimary: rgb(255, 201, 102)\nselect-tag-background: \nselect-tag-foreground: \nsidebar-button-foreground: rgb(179, 179, 179)\nsidebar-controls-foreground: rgb(153, 153, 153)\nsidebar-controls-foreground-hover: <<colour tiddler-controls-foreground-hover>>\nsidebar-foreground: rgb(141, 141, 141)\nsidebar-foreground-shadow: transparent\nsidebar-muted-foreground: rgba(0, 0, 0, 0.5)\nsidebar-muted-foreground-hover: rgb(141, 141, 141)\nsidebar-tab-background: rgba(141, 141, 141, 0.2)\nsidebar-tab-background-selected: rgb(26, 26, 26)\nsidebar-tab-border: rgb(127, 127, 127)\nsidebar-tab-border-selected: rgb(127, 127, 127)\nsidebar-tab-divider: rgb(127, 127, 127)\nsidebar-tab-foreground: rgb(179, 179, 179)\nsidebar-tab-foreground-selected: rgb(179, 179, 179)\nsidebar-tiddler-link-foreground: rgb(179, 179, 179)\nsidebar-tiddler-link-foreground-hover: rgb(115, 115, 115)\nsite-title-foreground: rgb(255, 201, 102)\nstatic-alert-foreground: rgba(0,0,0,.3)\ntab-background: rgba(0,0,0,0.125)\ntab-background-selected: rgb(38, 38, 38)\ntab-border: rgb(255, 201, 102)\ntab-border-selected: rgb(255, 201, 102)\ntab-divider: rgb(255, 201, 102)\ntab-foreground: rgb(179, 179, 179)\ntab-foreground-selected: rgb(179, 179, 179)\ntable-border: rgba(255,255,255,.3)\ntable-footer-background: rgba(0,0,0,.4)\ntable-header-background: rgba(0,0,0,.1)\ntag-background: rgb(255, 201, 102)\ntag-foreground: rgb(25, 25, 25)\ntiddler-background: rgb(38, 38, 38)\ntiddler-border: rgba(240, 196, 117, 0.7)\ntiddler-controls-foreground: rgb(128, 128, 128)\ntiddler-controls-foreground-hover: rgba(255, 255, 255, 0.8)\ntiddler-controls-foreground-selected: rgba(255, 255, 255, 0.9)\ntiddler-editor-background: rgb(33, 33, 33)\ntiddler-editor-border: rgb(63, 63, 63)\ntiddler-editor-border-image: rgb(25, 25, 25)\ntiddler-editor-fields-even: rgb(33, 33, 33)\ntiddler-editor-fields-odd: rgb(28, 28, 28)\ntiddler-info-background: rgb(43, 43, 43)\ntiddler-info-border: rgb(25, 25, 25)\ntiddler-info-tab-background: rgb(43, 43, 43)\ntiddler-link-background: rgb(38, 38, 38)\ntiddler-link-foreground: rgb(204, 204, 255)\ntiddler-subtitle-foreground: rgb(255, 255, 255)\ntiddler-title-foreground: rgb(255, 192, 76)\ntoolbar-cancel-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-done-button: \ntoolbar-edit-button: \ntoolbar-info-button: \ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \nuntagged-background: rgb(255, 255, 255)\nvery-muted-foreground: rgba(240, 196, 117, 0.7)\n"
        },
        "$:/palettes/Vanilla": {
            "title": "$:/palettes/Vanilla",
            "name": "Vanilla",
            "description": "Pale and unobtrusive",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndiff-delete-background: #ffc9c9\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #aaefad\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #f4f4f4\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselection-background:\nselection-foreground:\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #aaaaaa\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #f4f4f4\nsidebar-tab-background: #e0e0e0\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: #e4e4e4\nsidebar-tab-foreground-selected:\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #999999\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\nwikilist-background: #e5e5e5\nwikilist-item: #fff\nwikilist-info: #000\nwikilist-title: #666\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: #aaa\nwikilist-button-open: #4fb82b\nwikilist-button-open-hover: green\nwikilist-button-reveal: #5778d8\nwikilist-button-reveal-hover: blue\nwikilist-button-remove: #d85778\nwikilist-button-remove-hover: red\nwikilist-toolbar-background: #d3d3d3\nwikilist-toolbar-foreground: #888\nwikilist-droplink-dragover: rgba(255,192,192,0.5)\nwikilist-button-background: #acacac\nwikilist-button-foreground: #000\n"
        },
        "$:/core/readme": {
            "title": "$:/core/readme",
            "text": "This plugin contains TiddlyWiki's core components, comprising:\n\n* JavaScript code modules\n* Icons\n* Templates needed to create TiddlyWiki's user interface\n* British English (''en-GB'') translations of the localisable strings used by the core\n"
        },
        "$:/library/sjcl.js/license": {
            "title": "$:/library/sjcl.js/license",
            "type": "text/plain",
            "text": "SJCL is open. You can use, modify and redistribute it under a BSD\nlicense or under the GNU GPL, version 2.0.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/BSD-2-Clause\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n1. Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\nnotice, this list of conditions and the following disclaimer in the\ndocumentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\nIS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\nTO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\nPARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/GPL-2.0\n\nThe Stanford Javascript Crypto Library (hosted here on GitHub) is a\nproject by the Stanford Computer Security Lab to build a secure,\npowerful, fast, small, easy-to-use, cross-browser library for\ncryptography in Javascript.\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University.\n\nThis program is free software; you can redistribute it and/or modify it\nunder the terms of the GNU General Public License as published by the\nFree Software Foundation; either version 2 of the License, or (at your\noption) any later version.\n\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\nPublic License for more details.\n\nYou should have received a copy of the GNU General Public License along\nwith this program; if not, write to the Free Software Foundation, Inc.,\n59 Temple Place, Suite 330, Boston, MA 02111-1307 USA"
        },
        "$:/core/templates/MOTW.html": {
            "title": "$:/core/templates/MOTW.html",
            "text": "\\rules only filteredtranscludeinline transcludeinline entity\n<!-- The following comment is called a MOTW comment and is necessary for the TiddlyIE Internet Explorer extension -->\n<!-- saved from url=(0021)https://tiddlywiki.com -->&#13;&#10;"
        },
        "$:/core/templates/alltiddlers.template.html": {
            "title": "$:/core/templates/alltiddlers.template.html",
            "type": "text/vnd.tiddlywiki-html",
            "text": "<!-- This template is provided for backwards compatibility with older versions of TiddlyWiki -->\n\n<$set name=\"exportFilter\" value=\"[!is[system]sort[title]]\">\n\n{{$:/core/templates/exporters/StaticRiver}}\n\n</$set>\n"
        },
        "$:/core/templates/canonical-uri-external-image": {
            "title": "$:/core/templates/canonical-uri-external-image",
            "text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external images.\n\nChange the `./images/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./images/<$view field=\"title\" format=\"doubleurlencoded\"/>"
        },
        "$:/core/templates/canonical-uri-external-raw": {
            "title": "$:/core/templates/canonical-uri-external-raw",
            "text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external raw files that are stored in the same directory\n\n-->\n<$view field=\"title\" format=\"doubleurlencoded\"/>"
        },
        "$:/core/templates/canonical-uri-external-text": {
            "title": "$:/core/templates/canonical-uri-external-text",
            "text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external text files.\n\nChange the `./text/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./text/<$view field=\"title\" format=\"doubleurlencoded\"/>.tid"
        },
        "$:/core/templates/css-tiddler": {
            "title": "$:/core/templates/css-tiddler",
            "text": "<!--\n\nThis template is used for saving CSS tiddlers as a style tag with data attributes representing the tiddler fields.\n\n-->`<style`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/css\">`<$view field=\"text\" format=\"text\" />`</style>`"
        },
        "$:/core/templates/exporters/CsvFile": {
            "title": "$:/core/templates/exporters/CsvFile",
            "tags": "$:/tags/Exporter",
            "description": "{{$:/language/Exporters/CsvFile}}",
            "extension": ".csv",
            "text": "<$macrocall $name=\"csvtiddlers\" filter=<<exportFilter>> format=\"quoted-comma-sep\" $output=\"text/raw\"/>\n"
        },
        "$:/core/templates/exporters/JsonFile": {
            "title": "$:/core/templates/exporters/JsonFile",
            "tags": "$:/tags/Exporter",
            "description": "{{$:/language/Exporters/JsonFile}}",
            "extension": ".json",
            "text": "<$macrocall $name=\"jsontiddlers\" filter=<<exportFilter>> $output=\"text/raw\"/>\n"
        },
        "$:/core/templates/exporters/StaticRiver": {
            "title": "$:/core/templates/exporters/StaticRiver",
            "tags": "$:/tags/Exporter",
            "description": "{{$:/language/Exporters/StaticRiver}}",
            "extension": ".html",
            "text": "\\define tv-wikilink-template() #$uri_encoded$\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n<section class=\"tc-story-river tc-static-story-river\">\n{{$:/core/templates/exporters/StaticRiver/Content||$:/core/templates/html-tiddler}}\n</section>\n</body>\n</html>\n"
        },
        "$:/core/templates/exporters/StaticRiver/Content": {
            "title": "$:/core/templates/exporters/StaticRiver/Content",
            "text": "\\define renderContent()\n{{{ $(exportFilter)$ ||$:/core/templates/static-tiddler}}}\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<<renderContent>>\n"
        },
        "$:/core/templates/exporters/TidFile": {
            "title": "$:/core/templates/exporters/TidFile",
            "tags": "$:/tags/Exporter",
            "description": "{{$:/language/Exporters/TidFile}}",
            "extension": ".tid",
            "condition": "[<count>compare:lte[1]]",
            "text": "\\define renderContent()\n{{{ $(exportFilter)$ +[limit[1]] ||$:/core/templates/tid-tiddler}}}\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<<renderContent>>"
        },
        "$:/core/save/all-external-js": {
            "title": "$:/core/save/all-external-js",
            "text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[prefix[$:/temp/]] -[prefix[$:/HistoryList]] -[status[pending]plugin-type[import]] -[[$:/core]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5-external-js.html}}\n"
        },
        "$:/core/templates/tiddlywiki5.js": {
            "title": "$:/core/templates/tiddlywiki5.js",
            "text": "\\rules only filteredtranscludeinline transcludeinline codeinline\n\n/*\n{{ $:/core/copyright.txt ||$:/core/templates/plain-text-tiddler}}\n`*/\n`<!--~~ Library modules ~~-->\n{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/plain-text-tiddler}}}\n<!--~~ Boot prefix ~~-->\n{{ $:/boot/bootprefix.js ||$:/core/templates/plain-text-tiddler}}\n<!--~~ Core plugin ~~-->\n{{$:/core/templates/tiddlywiki5.js/tiddlers}}\n<!--~~ Boot kernel ~~-->\n{{ $:/boot/boot.js ||$:/core/templates/plain-text-tiddler}}\n"
        },
        "$:/core/templates/tiddlywiki5.js/tiddlers": {
            "title": "$:/core/templates/tiddlywiki5.js/tiddlers",
            "text": "`\n$tw.preloadTiddlerArray(`<$text text=<<jsontiddlers \"[[$:/core]]\">>/>`);\n`\n"
        },
        "$:/core/templates/tiddlywiki5-external-js.html": {
            "title": "$:/core/templates/tiddlywiki5-external-js.html",
            "text": "\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n{{$:/core/templates/MOTW.html}}<html lang=\"`<$text text={{{ [{$:/language}get[name]] }}}/>`\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<!--~~ Raw markup for the top of the head section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/TopHead]] ||$:/core/templates/raw-static-tiddler}}}\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\"/>\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"{{$:/core/copyright.txt}}\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/core/wiki/rawmarkup]] [all[shadows+tiddlers]tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}\n</head>\n<body class=\"tc-body\">\n<!--~~ Raw markup for the top of the body section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/TopBody]] ||$:/core/templates/raw-static-tiddler}}}\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n{{$:/core/templates/static.area}}\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n{{$:/core/templates/store.area.template.html}}\n<!--~~ Raw markup for the bottom of the body section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/BottomBody]] ||$:/core/templates/raw-static-tiddler}}}\n</body>\n<script src=\"%24%3A%2Fcore%2Ftemplates%2Ftiddlywiki5.js\" onerror=\"alert('Error: Cannot load tiddlywiki.js');\"></script>\n</html>\n"
        },
        "$:/core/templates/html-div-skinny-tiddler": {
            "title": "$:/core/templates/html-div-skinny-tiddler",
            "text": "<!--\n\nThis template is a variant of $:/core/templates/html-div-tiddler used for saving skinny tiddlers (with no text field)\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre></pre>\n</div>`\n"
        },
        "$:/core/templates/html-div-tiddler": {
            "title": "$:/core/templates/html-div-tiddler",
            "text": "<!--\n\nThis template is used for saving tiddlers as an HTML DIV tag with attributes representing the tiddler fields.\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre>`<$view field=\"text\" format=\"htmlencoded\" />`</pre>\n</div>`\n"
        },
        "$:/core/templates/html-tiddler": {
            "title": "$:/core/templates/html-tiddler",
            "text": "<!--\n\nThis template is used for saving tiddlers as raw HTML\n\n--><$view field=\"text\" format=\"htmlwikified\" />"
        },
        "$:/core/templates/javascript-tiddler": {
            "title": "$:/core/templates/javascript-tiddler",
            "text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields.\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\">`<$view field=\"text\" format=\"text\" />`</script>`"
        },
        "$:/core/templates/json-tiddler": {
            "title": "$:/core/templates/json-tiddler",
            "text": "<!--\n\nThis template is used for saving tiddlers as raw JSON\n\n--><$text text=<<jsontiddler>>/>"
        },
        "$:/core/templates/module-tiddler": {
            "title": "$:/core/templates/module-tiddler",
            "text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields. The body of the tiddler is wrapped in a call to the `$tw.modules.define` function in order to define the body of the tiddler as a module\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\" data-module=\"yes\">$tw.modules.define(\"`<$view field=\"title\" format=\"jsencoded\" />`\",\"`<$view field=\"module-type\" format=\"jsencoded\" />`\",function(module,exports,require) {`<$view field=\"text\" format=\"text\" />`});\n</script>`"
        },
        "$:/core/templates/plain-text-tiddler": {
            "title": "$:/core/templates/plain-text-tiddler",
            "text": "<$view field=\"text\" format=\"text\" />"
        },
        "$:/core/templates/raw-static-tiddler": {
            "title": "$:/core/templates/raw-static-tiddler",
            "text": "<!--\n\nThis template is used for saving tiddlers as static HTML\n\n--><$view field=\"text\" format=\"plainwikified\" />"
        },
        "$:/core/save/all": {
            "title": "$:/core/save/all",
            "text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[prefix[$:/temp/]] -[prefix[$:/HistoryList]] -[status[pending]plugin-type[import]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
        },
        "$:/core/save/empty": {
            "title": "$:/core/save/empty",
            "text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
        },
        "$:/core/save/lazy-all": {
            "title": "$:/core/save/lazy-all",
            "text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] \n\\end\n\\define skinnySaveTiddlerFilter()\n[!is[system]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
        },
        "$:/core/save/lazy-images": {
            "title": "$:/core/save/lazy-images",
            "text": "\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] -[!is[system]is[image]] +[sort[title]] \n\\end\n\\define skinnySaveTiddlerFilter()\n[is[image]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
        },
        "$:/core/templates/server/static.sidebar.wikitext": {
            "title": "$:/core/templates/server/static.sidebar.wikitext",
            "text": "\\whitespace trim\n<div class=\"tc-sidebar-scrollable\" style=\"overflow: auto;\">\n<div class=\"tc-sidebar-header\">\n<h1 class=\"tc-site-title\">\n<$transclude tiddler=\"$:/SiteTitle\"/>\n</h1>\n<div class=\"tc-site-subtitle\">\n<$transclude tiddler=\"$:/SiteSubtitle\"/>\n</div>\n<h2>\n</h2>\n<div class=\"tc-sidebar-lists\">\n<$list filter={{$:/DefaultTiddlers}}>\n<div class=\"tc-menu-list-subitem\">\n<$link><$text text=<<currentTiddler>>/></$link>\n</div>\n</$list>\n</div>\n<!-- Currently disabled the recent list as it is unweildy when the responsive narrow view kicks in\n<h2>\n{{$:/language/SideBar/Recent/Caption}}\n</h2>\n<div class=\"tc-sidebar-lists\">\n<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n</div>\n</div>\n</div>\n-->\n"
        },
        "$:/core/templates/server/static.tiddler.html": {
            "title": "$:/core/templates/server/static.tiddler.html",
            "text": "\\whitespace trim\n\\define tv-wikilink-template() $uri_encoded$\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content={{$:/core/templates/version}} />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"%24%3A%2Fcore%2Ftemplates%2Fstatic.template.css\">\n<title><$view field=\"caption\" format=\"plainwikified\"><$view field=\"title\"/></$view>: <$view tiddler=\"$:/core/wiki/title\" format=\"plainwikified\"/></title>\n</head>\n<body class=\"tc-body\">\n<$transclude tiddler=\"$:/core/templates/server/static.sidebar.wikitext\" mode=\"inline\"/>\n<section class=\"tc-story-river\">\n<div class=\"tc-tiddler-frame\">\n<$transclude tiddler=\"$:/core/templates/server/static.tiddler.wikitext\" mode=\"inline\"/>\n</div>\n</section>\n</body>\n</html>"
        },
        "$:/core/templates/server/static.tiddler.wikitext": {
            "title": "$:/core/templates/server/static.tiddler.wikitext",
            "text": "\\whitespace trim\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<h2><$text text=<<currentTiddler>>/></h2>\n</div>\n</div>\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}}>\n<$view field=\"modifier\"/>\n</$link> <$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n<div class=\"tc-tags-wrapper\">\n<$list filter=\"[all[current]tags[]sort[title]]\">\n<a href={{{ [<currentTiddler>encodeuricomponent[]] }}}>\n<$macrocall $name=\"tag-pill\" tag=<<currentTiddler>>/>\n</a>\n</$list>\n</div>\n<div class=\"tc-tiddler-body\">\n<$transclude mode=\"block\"/>\n</div>\n"
        },
        "$:/core/templates/single.tiddler.window": {
            "title": "$:/core/templates/single.tiddler.window",
            "text": "\\whitespace trim\n\\define containerClasses()\ntc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$vars\n\ttv-config-toolbar-icons={{$:/config/Toolbar/Icons}}\n\ttv-config-toolbar-text={{$:/config/Toolbar/Text}}\n\ttv-config-toolbar-class={{$:/config/Toolbar/ButtonClass}}\n\ttv-show-missing-links={{$:/config/MissingLinks}}\n\tstoryviewTitle={{$:/view}}\n\tlanguageTitle={{{ [{$:/language}get[name]] }}}>\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n\n<$transclude mode=\"block\"/>\n\n</$navigator>\n\n</div>\n\n</$vars>\n"
        },
        "$:/core/templates/split-recipe": {
            "title": "$:/core/templates/split-recipe",
            "text": "<$list filter=\"[!is[system]]\">\ntiddler: <$view field=\"title\" format=\"urlencoded\"/>.tid\n</$list>\n"
        },
        "$:/core/templates/static-tiddler": {
            "title": "$:/core/templates/static-tiddler",
            "text": "<a name=<<currentTiddler>>>\n<$transclude tiddler=\"$:/core/ui/ViewTemplate\"/>\n</a>"
        },
        "$:/core/templates/static.area": {
            "title": "$:/core/templates/static.area",
            "text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawStaticContent]!has[draft.of]] ||$:/core/templates/raw-static-tiddler}}}\n{{$:/core/templates/static.content||$:/core/templates/html-tiddler}}\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\nThis file contains an encrypted ~TiddlyWiki. Enable ~JavaScript and enter the decryption password when prompted.\n</$reveal>\n<!-- ensure splash screen isn't shown when JS is disabled -->\n`<style>\n.tc-remove-when-wiki-loaded {display: none;}\n</style>`\n"
        },
        "$:/core/templates/static.content": {
            "title": "$:/core/templates/static.content",
            "text": "<!-- For Google, and people without JavaScript-->\nThis [[TiddlyWiki|https://tiddlywiki.com]] contains the following tiddlers:\n\n<ul>\n<$list filter=<<saveTiddlerFilter>>>\n<li><$view field=\"title\" format=\"text\"></$view></li>\n</$list>\n</ul>\n"
        },
        "$:/core/templates/static.template.css": {
            "title": "$:/core/templates/static.template.css",
            "text": "{{$:/boot/boot.css||$:/core/templates/plain-text-tiddler}}\n\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n"
        },
        "$:/core/templates/static.template.html": {
            "title": "$:/core/templates/static.template.html",
            "type": "text/vnd.tiddlywiki-html",
            "text": "\\define tv-wikilink-template() static/$uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n{{$:/core/ui/PageTemplate||$:/core/templates/html-tiddler}}\n</body>\n</html>\n"
        },
        "$:/core/templates/static.tiddler.html": {
            "title": "$:/core/templates/static.tiddler.html",
            "text": "\\define tv-wikilink-template() $uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n`<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"static.css\">\n<title>`<$view field=\"caption\"><$view field=\"title\"/></$view>: {{$:/core/wiki/title}}`</title>\n</head>\n<body class=\"tc-body\">\n`{{$:/StaticBanner||$:/core/templates/html-tiddler}}`\n<section class=\"tc-story-river tc-static-story-river\">\n`<$view tiddler=\"$:/core/ui/ViewTemplate\" format=\"htmlwikified\"/>`\n</section>\n</body>\n</html>\n`\n"
        },
        "$:/core/templates/store.area.template.html": {
            "title": "$:/core/templates/store.area.template.html",
            "text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n`<div id=\"storeArea\" style=\"display:none;\">`\n<$list filter=<<saveTiddlerFilter>> template=\"$:/core/templates/html-div-tiddler\"/>\n<$list filter={{{ [<skinnySaveTiddlerFilter>] }}} template=\"$:/core/templates/html-div-skinny-tiddler\"/>\n`</div>`\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n`<!--~~ Encrypted tiddlers ~~-->`\n`<pre id=\"encryptedStoreArea\" type=\"text/plain\" style=\"display:none;\">`\n<$encrypt filter=<<saveTiddlerFilter>>/>\n`</pre>`\n</$reveal>"
        },
        "$:/core/templates/tid-tiddler": {
            "title": "$:/core/templates/tid-tiddler",
            "text": "<!--\n\nThis template is used for saving tiddlers in TiddlyWeb *.tid format\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>`\n`<$view field=\"text\" format=\"text\" />"
        },
        "$:/core/templates/tiddler-metadata": {
            "title": "$:/core/templates/tiddler-metadata",
            "text": "<!--\n\nThis template is used for saving tiddler metadata *.meta files\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>"
        },
        "$:/core/templates/tiddlywiki5.html": {
            "title": "$:/core/templates/tiddlywiki5.html",
            "text": "<$set name=\"saveTiddlerAndShadowsFilter\" filter=\"[subfilter<saveTiddlerFilter>] [subfilter<saveTiddlerFilter>plugintiddlers[]]\">\n`<!doctype html>\n`{{$:/core/templates/MOTW.html}}`<html lang=\"`<$text text={{{ [{$:/language}get[name]] }}}/>`\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<!--~~ Raw markup for the top of the head section ~~-->\n`{{{ [<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/TopHead]] ||$:/core/templates/raw-static-tiddler}}}`\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\"/>\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"`{{$:/core/copyright.txt}}`\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>`{{$:/core/wiki/title}}`</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/core/wiki/rawmarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}`\n</head>\n<body class=\"tc-body\">\n<!--~~ Raw markup for the top of the body section ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/TopBody]] ||$:/core/templates/raw-static-tiddler}}}`\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n`{{$:/boot/boot.css||$:/core/templates/css-tiddler}}`\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n`{{$:/core/templates/static.area}}`\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n`{{$:/core/templates/store.area.template.html}}`\n<!--~~ Library modules ~~-->\n<div id=\"libraryModules\" style=\"display:none;\">\n`{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/javascript-tiddler}}}`\n</div>\n<!--~~ Boot kernel prologue ~~-->\n<div id=\"bootKernelPrefix\" style=\"display:none;\">\n`{{ $:/boot/bootprefix.js ||$:/core/templates/javascript-tiddler}}`\n</div>\n<!--~~ Boot kernel ~~-->\n<div id=\"bootKernel\" style=\"display:none;\">\n`{{ $:/boot/boot.js ||$:/core/templates/javascript-tiddler}}`\n</div>\n<!--~~ Raw markup for the bottom of the body section ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/BottomBody]] ||$:/core/templates/raw-static-tiddler}}}`\n</body>\n</html>`\n"
        },
        "$:/core/templates/version": {
            "title": "$:/core/templates/version",
            "text": "<<version>>"
        },
        "$:/core/templates/wikified-tiddler": {
            "title": "$:/core/templates/wikified-tiddler",
            "text": "<$transclude />"
        },
        "$:/core/ui/AboveStory/tw2-plugin-check": {
            "title": "$:/core/ui/AboveStory/tw2-plugin-check",
            "tags": "$:/tags/AboveStory",
            "text": "\\define lingo-base() $:/language/AboveStory/ClassicPlugin/\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]limit[1]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n<ul>\n\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]]\">\n\n<li>\n\n<$link><$view field=\"title\"/></$link>\n\n</li>\n\n</$list>\n\n</ul>\n\n</div>\n\n</$list>\n"
        },
        "$:/core/ui/Actions/new-image": {
            "title": "$:/core/ui/Actions/new-image",
            "tags": "$:/tags/Actions",
            "description": "create a new image tiddler",
            "text": "\\define get-type()\nimage/$(imageType)$\n\\end\n\\define get-tags() $(textFieldTags)$ $(tagsFieldTags)$\n<$vars imageType={{$:/config/NewImageType}} textFieldTags={{$:/config/NewJournal/Tags}} tagsFieldTags={{$:/config/NewJournal/Tags!!tags}}>\n<$action-sendmessage $message=\"tm-new-tiddler\" type=<<get-type>> tags=<<get-tags>>/>\n</$vars>\n"
        },
        "$:/core/ui/Actions/new-journal": {
            "title": "$:/core/ui/Actions/new-journal",
            "tags": "$:/tags/Actions",
            "description": "create a new journal tiddler",
            "text": "\\define get-tags() $(textFieldTags)$ $(tagsFieldTags)$\n<$vars journalTitleTemplate={{$:/config/NewJournal/Title}} textFieldTags={{$:/config/NewJournal/Tags}} tagsFieldTags={{$:/config/NewJournal/Tags!!tags}} journalText={{$:/config/NewJournal/Text}}>\n<$wikify name=\"journalTitle\" text=\"\"\"<$macrocall $name=\"now\" format=<<journalTitleTemplate>>/>\"\"\">\n<$reveal type=\"nomatch\" state=<<journalTitle>> text=\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<get-tags>> text={{{ [<journalTitle>get[]] }}}/>\n</$reveal>\n<$reveal type=\"match\" state=<<journalTitle>> text=\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<get-tags>> text=<<journalText>>/>\n</$reveal>\n</$wikify>\n</$vars>\n"
        },
        "$:/core/ui/Actions/new-tiddler": {
            "title": "$:/core/ui/Actions/new-tiddler",
            "tags": "$:/tags/Actions",
            "description": "create a new empty tiddler",
            "text": "\\define get-tags() $(textFieldTags)$ $(tagsFieldTags)$\n<$vars textFieldTags={{$:/config/NewTiddler/Tags}} tagsFieldTags={{$:/config/NewTiddler/Tags!!tags}}>\n<$action-sendmessage $message=\"tm-new-tiddler\" tags=<<get-tags>>/>\n</$vars>\n"
        },
        "$:/core/ui/AdvancedSearch/Filter": {
            "title": "$:/core/ui/AdvancedSearch/Filter",
            "tags": "$:/tags/AdvancedSearch",
            "caption": "{{$:/language/Search/Filter/Caption}}",
            "text": "\\define lingo-base() $:/language/Search/\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab--1498284803\" tag=\"$:/tags/AdvancedSearch\" beforeafter=\"$beforeafter$\" defaultState=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define cancel-search-actions() <$list filter=\"[{$:/temp/advancedsearch/input}!match{$:/temp/advancedsearch}]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[[$:/temp/advancedsearch]] [[$:/temp/advancedsearch/input]] [[$:/temp/advancedsearch/selected-item]]\" />\"\"\"><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/advancedsearch}}/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/></$list>\n\n\\define input-accept-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\"\"\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\n\n\\define input-accept-variant-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{  [<__tiddler__>get[text]] }}}/></$list></$list>\"\"\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{  [<__tiddler__>get[text]] }}}/></$list></$list>\n\n<<lingo Filter/Hint>>\n\n<div class=\"tc-search tc-advanced-search\">\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">>>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=\"$:/temp/advancedsearch/input\" storeTitle=\"$:/temp/advancedsearch\" \n\t\trefreshTitle=\"$:/temp/advancedsearch/refresh\" selectionStateTitle=\"$:/temp/advancedsearch/selected-item\" type=\"search\" \n\t\ttag=\"input\" focus={{$:/config/Search/AutoFocus}} configTiddlerFilter=\"[[$:/temp/advancedsearch]]\" firstSearchFilterField=\"text\" \n\t\tinputAcceptActions=<<input-accept-actions>> inputAcceptVariantActions=<<input-accept-variant-actions>> \n\t\tinputCancelActions=<<cancel-search-actions>>/>\n</$keyboard>\n</$keyboard>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch/FilterButton]!has[draft.of]]\"><$transclude/></$list>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\n<div class=\"tc-search-results\">\n<<lingo Filter/Matches>>\n<$list filter={{$:/temp/advancedsearch}}>\n<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[[$:/temp/advancedsearch/selected-item]get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n</div>\n</$set>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear": {
            "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear",
            "tags": "$:/tags/AdvancedSearch/FilterButton",
            "text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<<cancel-search-actions>>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\".tc-advanced-search input\"\"\" />\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete": {
            "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete",
            "tags": "$:/tags/AdvancedSearch/FilterButton",
            "text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button popup=<<qualify \"$:/state/filterDeleteDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/delete-button}}\n</$button>\n</$reveal>\n\n<$reveal state=<<qualify \"$:/state/filterDeleteDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<div class=\"tc-dropdown-item-plain\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\nAre you sure you wish to delete <<resultCount>> tiddler(s)?\n</$set>\n</div>\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn\">\n<$action-deletetiddler $filter={{$:/temp/advancedsearch}}/>\nDelete these tiddlers\n</$button>\n</div>\n</div>\n</div>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown": {
            "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown",
            "tags": "$:/tags/AdvancedSearch/FilterButton",
            "text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/filterDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</span>\n\n<$reveal state=<<qualify \"$:/state/filterDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$linkcatcher actions=\"\"\"<$action-setfield $tiddler=\"$:/temp/advancedsearch\" text=<<navigateTo>>/><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text=<<navigateTo>>/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/><$action-sendmessage $message=\"tm-focus-selector\" $param='.tc-advanced-search input' />\"\"\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Filter]]\"><$link to={{!!filter}}><$transclude field=\"description\"/></$link>\n</$list>\n</div>\n</div>\n</$linkcatcher>\n</$set>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Filter/FilterButtons/export": {
            "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/export",
            "tags": "$:/tags/AdvancedSearch/FilterButton",
            "text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$macrocall $name=\"exportButton\" exportFilter={{$:/temp/advancedsearch}} lingoBase=\"$:/language/Buttons/ExportTiddlers/\"/>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Shadows": {
            "title": "$:/core/ui/AdvancedSearch/Shadows",
            "tags": "$:/tags/AdvancedSearch",
            "caption": "{{$:/language/Search/Shadows/Caption}}",
            "first-search-filter": "[all[shadows]search<userInput>sort[title]limit[250]] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]]",
            "text": "\\define lingo-base() $:/language/Search/\n\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab--1498284803\" tag=\"$:/tags/AdvancedSearch\" beforeafter=\"$beforeafter$\" defaultState=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define cancel-search-actions() <$list filter=\"[{$:/temp/advancedsearch}!match{$:/temp/advancedsearch/input}]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[[$:/temp/advancedsearch]] [[$:/temp/advancedsearch/input]] [[$:/temp/advancedsearch/selected-item]]\" />\"\"\"><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/advancedsearch}}/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/></$list><$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\".tc-advanced-search input\"\"\"/>\n\n\\define input-accept-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\"\"\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\n\n\\define input-accept-variant-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{  [<__tiddler__>get[text]] }}}/></$list></$list>\"\"\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{  [<__tiddler__>get[text]] }}}/></$list></$list>\n\n<<lingo Shadows/Hint>>\n\n<div class=\"tc-search\">\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">>>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=\"$:/temp/advancedsearch/input\" storeTitle=\"$:/temp/advancedsearch\"\n\t\trefreshTitle=\"$:/temp/advancedsearch/refresh\" selectionStateTitle=\"$:/temp/advancedsearch/selected-item\" type=\"search\"\n\t\ttag=\"input\" focus={{$:/config/Search/AutoFocus}} configTiddlerFilter=\"[[$:/core/ui/AdvancedSearch/Shadows]]\"\n\t\tinputCancelActions=<<cancel-search-actions>> inputAcceptActions=<<input-accept-actions>> \n\t\tinputAcceptVariantActions=<<input-accept-variant-actions>>  filterMinLength={{$:/config/Search/MinLength}}/>\n</$keyboard>\n</$keyboard>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<<cancel-search-actions>>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[all[shadows]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo Shadows/Matches>>\n\n<$list filter=\"[all[shadows]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]]\">\n<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[[$:/temp/advancedsearch/selected-item]get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Standard": {
            "title": "$:/core/ui/AdvancedSearch/Standard",
            "tags": "$:/tags/AdvancedSearch",
            "caption": "{{$:/language/Search/Standard/Caption}}",
            "text": "\\define lingo-base() $:/language/Search/\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab--1498284803\" tag=\"$:/tags/AdvancedSearch\" beforeafter=\"$beforeafter$\" defaultState=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define next-search-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab/search-results/advancedsearch\" tag=\"$:/tags/SearchResults\" beforeafter=\"$beforeafter$\" defaultState={{$:/config/SearchResults/Default}} actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/standard/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define cancel-search-actions() <$list filter=\"[{$:/temp/advancedsearch}!match{$:/temp/advancedsearch/input}]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[[$:/temp/advancedsearch]] [[$:/temp/advancedsearch/input]] [[$:/temp/advancedsearch/selected-item]]\" />\"\"\"><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/advancedsearch}}/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/></$list><$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\".tc-advanced-search input\"\"\"/>\n\n\\define input-accept-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\"\"\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\n\n\\define input-accept-variant-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{  [<__tiddler__>get[text]] }}}/></$list></$list>\"\"\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{  [<__tiddler__>get[text]] }}}/></$list></$list>\n\n<<lingo Standard/Hint>>\n\n<div class=\"tc-search\">\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">>>\n<$keyboard key=\"shift-alt-Right\" actions=<<next-search-tab>>>\n<$keyboard key=\"shift-alt-Left\" actions=<<next-search-tab \"before\">>>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=\"$:/temp/advancedsearch/input\" storeTitle=\"$:/temp/advancedsearch\"\n\t\trefreshTitle=\"$:/temp/advancedsearch/refresh\" selectionStateTitle=\"$:/temp/advancedsearch/selected-item\" type=\"search\"\n\t\ttag=\"input\" focus={{$:/config/Search/AutoFocus}} inputCancelActions=<<cancel-search-actions>> \n\t\tinputAcceptActions=<<input-accept-actions>> inputAcceptVariantActions=<<input-accept-variant-actions>> \n\t\tconfigTiddlerFilter=\"[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]\"\n\t\tfilterMinLength={{$:/config/Search/MinLength}}/>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<<cancel-search-actions>>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$vars userInput={{{ [[$:/temp/advancedsearch]get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}} searchListState=\"$:/temp/advancedsearch/selected-item\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude/>\n</$list>\n\"\"\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}} actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/standard/currentTab\" text=<<currentTab>>/>\"\"\" explicitState=\"$:/state/tab/search-results/advancedsearch\" />\n</$list>\n</$vars>\n</$list>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/System": {
            "title": "$:/core/ui/AdvancedSearch/System",
            "tags": "$:/tags/AdvancedSearch",
            "caption": "{{$:/language/Search/System/Caption}}",
            "first-search-filter": "[is[system]search<userInput>sort[title]limit[250]] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]] -[[$:/temp/advancedsearch/selected-item]]",
            "text": "\\define lingo-base() $:/language/Search/\n\\define set-next-input-tab(beforeafter:\"after\",stateTitle,tag,defaultState,currentTabTiddler) <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab--1498284803\" tag=\"$:/tags/AdvancedSearch\" beforeafter=\"$beforeafter$\" defaultState=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define cancel-search-actions() <$list filter=\"[{$:/temp/advancedsearch}!match{$:/temp/advancedsearch/input}]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[[$:/temp/advancedsearch]] [[$:/temp/advancedsearch/input]] [[$:/temp/advancedsearch/selected-item]]\" />\"\"\"><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/advancedsearch}}/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/></$list><$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\".tc-advanced-search input\"\"\"/>\n\n\\define input-accept-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\"\"\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\n\n\\define input-accept-variant-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{  [<__tiddler__>get[text]] }}}/></$list></$list>\"\"\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{  [<__tiddler__>get[text]] }}}/></$list></$list>\n\n<<lingo System/Hint>>\n\n<div class=\"tc-search\">\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">>>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=\"$:/temp/advancedsearch/input\" storeTitle=\"$:/temp/advancedsearch\"\n\t\trefreshTitle=\"$:/temp/advancedsearch/refresh\" selectionStateTitle=\"$:/temp/advancedsearch/selected-item\"\n\t\ttype=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}} configTiddlerFilter=\"[[$:/core/ui/AdvancedSearch/System]]\"\n\t\tinputCancelActions=<<cancel-search-actions>> inputAcceptActions=<<input-accept-actions>> \n\t\tinputAcceptVariantActions=<<input-accept-variant-actions>> filterMinLength={{$:/config/Search/MinLength}}/>\n</$keyboard>\n</$keyboard>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<<cancel-search-actions>>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[is[system]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]] -[[$:/temp/advancedsearch/selected-item]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo System/Matches>>\n\n<$list filter=\"[is[system]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]] -[[$:/temp/advancedsearch/selected-item]]\">\n<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[[$:/temp/advancedsearch/selected-item]get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
        },
        "$:/AdvancedSearch": {
            "title": "$:/AdvancedSearch",
            "icon": "$:/core/images/advanced-search-button",
            "color": "#bbb",
            "text": "<div class=\"tc-advanced-search\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch]!has[draft.of]]\" default=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=<<currentTab>>/>\"\"\" explicitState=\"$:/state/tab--1498284803\"/>\n</div>\n"
        },
        "$:/core/ui/AlertTemplate": {
            "title": "$:/core/ui/AlertTemplate",
            "text": "<div class=\"tc-alert\">\n<div class=\"tc-alert-toolbar\">\n<$button class=\"tc-btn-invisible\"><$action-deletetiddler $tiddler=<<currentTiddler>>/>{{$:/core/images/cancel-button}}</$button>\n</div>\n<div class=\"tc-alert-subtitle\">\n<$wikify name=\"format\" text=<<lingo Tiddler/DateFormat>>>\n<$view field=\"component\"/> - <$view field=\"modified\" format=\"date\" template=<<format>>/> <$reveal type=\"nomatch\" state=\"!!count\" text=\"\"><span class=\"tc-alert-highlight\">({{$:/language/Count}}: <$view field=\"count\"/>)</span></$reveal>\n</$wikify>\n</div>\n<div class=\"tc-alert-body\">\n\n<$transclude/>\n\n</div>\n</div>\n"
        },
        "$:/core/ui/BinaryWarning": {
            "title": "$:/core/ui/BinaryWarning",
            "text": "\\define lingo-base() $:/language/BinaryWarning/\n<<lingo Prompt>>\n"
        },
        "$:/core/ui/Components/plugin-info": {
            "title": "$:/core/ui/Components/plugin-info",
            "text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define popup-state-macro()\n$(qualified-state)$-$(currentTiddler)$\n\\end\n\n\\define tabs-state-macro()\n$(popup-state)$-$(pluginInfoType)$\n\\end\n\n\\define plugin-icon-title()\n$(currentTiddler)$/icon\n\\end\n\n\\define plugin-disable-title()\n$:/config/Plugins/Disabled/$(currentTiddler)$\n\\end\n\n\\define plugin-table-body(type,disabledMessage,default-popup-state)\n<div class=\"tc-plugin-info-chunk tc-plugin-info-toggle\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/chevron-right}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-icon\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<plugin-icon-title>>>\n<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\n</$transclude>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-description\">\n<h1>\n''<$text text={{{ [<currentTiddler>get[name]] ~[<currentTiddler>split[/]last[1]] }}}/>'': <$view field=\"description\"><$view field=\"title\"/></$view> $disabledMessage$\n</h1>\n<h2>\n<$view field=\"title\"/>\n</h2>\n<h2>\n<div><em><$view field=\"version\"/></em></div>\n</h2>\n</div>\n\\end\n\n\\define plugin-info(type,default-popup-state)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info tc-plugin-info-disabled\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\" disabledMessage:\"<$macrocall $name='lingo' title='Disabled/Status'/>\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>> default=\"\"\"$default-popup-state$\"\"\">\n<div class=\"tc-plugin-info-dropdown\">\n<div class=\"tc-plugin-info-dropdown-body\">\n<$list filter=\"[all[current]] -[[$:/core]]\">\n<div style=\"float:right;\">\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"yes\" tooltip={{$:/language/ControlPanel/Plugins/Disable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Disable/Caption}}>\n<<lingo Disable/Caption>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"no\" tooltip={{$:/language/ControlPanel/Plugins/Enable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Enable/Caption}}>\n<<lingo Enable/Caption>>\n</$button>\n</$reveal>\n</div>\n</$list>\n<$set name=\"tabsList\" filter=\"[<currentTiddler>list[]] contents\">\n<$macrocall $name=\"tabs\" state=<<tabs-state-macro>> tabsList=<<tabsList>> default={{{ [enlist<tabsList>] }}} template=\"$:/core/ui/PluginInfo\"/>\n</$set>\n</div>\n</div>\n</$reveal>\n</$set>\n\\end\n\n<$macrocall $name=\"plugin-info\" type=<<plugin-type>> default-popup-state=<<default-popup-state>>/>\n"
        },
        "$:/core/ui/Components/tag-link": {
            "title": "$:/core/ui/Components/tag-link",
            "text": "<$link>\n<$set name=\"backgroundColor\" value={{!!color}}>\n<span style=<<tag-styles>> class=\"tc-tag-label\">\n<$view field=\"title\" format=\"text\"/>\n</span>\n</$set>\n</$link>"
        },
        "$:/core/ui/ControlPanel/Advanced": {
            "title": "$:/core/ui/ControlPanel/Advanced",
            "tags": "$:/tags/ControlPanel/Info",
            "caption": "{{$:/language/ControlPanel/Advanced/Caption}}",
            "text": "{{$:/language/ControlPanel/Advanced/Hint}}\n\n<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Advanced]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/TiddlerFields\" explicitState=\"$:/state/tab--959111941\"/>\n</div>\n"
        },
        "$:/core/ui/ControlPanel/Appearance": {
            "title": "$:/core/ui/ControlPanel/Appearance",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Appearance/Caption}}",
            "text": "{{$:/language/ControlPanel/Appearance/Hint}}\n\n<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Appearance]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Theme\" explicitState=\"$:/state/tab--1963855381\"/>\n</div>\n"
        },
        "$:/core/ui/ControlPanel/Basics": {
            "title": "$:/core/ui/ControlPanel/Basics",
            "tags": "$:/tags/ControlPanel/Info",
            "caption": "{{$:/language/ControlPanel/Basics/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Basics/\n\n\\define show-filter-count(filter)\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $value=\"\"\"$filter$\"\"\"/>\n<$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" $value=\"\"\"$filter$\"\"\"/>\n<$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/>\n<$action-setfield $tiddler=\"$:/state/tab--1498284803\" $value=\"$:/core/ui/AdvancedSearch/Filter\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=\".tc-advanced-search input\"/>\n''<$count filter=\"\"\"$filter$\"\"\"/>''\n{{$:/core/images/advanced-search-button}}\n</$button>\n\\end\n\n|<<lingo Version/Prompt>> |''<<version>>'' |\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/status/UserName\"><<lingo Username/Prompt>></$link> |<$edit-text tiddler=\"$:/status/UserName\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/AnimationDuration\"><<lingo AnimDuration/Prompt>></$link> |<$edit-text tiddler=\"$:/config/AnimationDuration\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\" class=\"tc-edit-texteditor\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n|<$link to=\"$:/language/DefaultNewTiddlerTitle\"><<lingo NewTiddler/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/language/DefaultNewTiddlerTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Title\"><<lingo NewJournal/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/config/NewJournal/Title\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Text\"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler=\"$:/config/NewJournal/Text\" tag=\"textarea\" class=\"tc-edit-texteditor\" default=\"\"/> |\n|<$link to=\"$:/config/NewTiddler/Tags\"><<lingo NewTiddler/Tags/Prompt>></$link> |<$vars currentTiddler=\"$:/config/NewTiddler/Tags\" tagField=\"text\">{{||$:/core/ui/EditTemplate/tags}}<$list filter=\"[<currentTiddler>tags[]] +[limit[1]]\" variable=\"ignore\"><$button tooltip={{$:/language/ControlPanel/Basics/RemoveTags/Hint}}><<lingo RemoveTags>><$action-listops $tiddler=<<currentTiddler>> $field=\"text\" $subfilter={{{ [<currentTiddler>get[tags]] }}}/><$action-setfield $tiddler=<<currentTiddler>> tags=\"\"/></$button></$list></$vars> |\n|<$link to=\"$:/config/NewJournal/Tags\"><<lingo NewJournal/Tags/Prompt>></$link> |<$vars currentTiddler=\"$:/config/NewJournal/Tags\" tagField=\"text\">{{||$:/core/ui/EditTemplate/tags}}<$list filter=\"[<currentTiddler>tags[]] +[limit[1]]\" variable=\"ignore\"><$button tooltip={{$:/language/ControlPanel/Basics/RemoveTags/Hint}}><<lingo RemoveTags>><$action-listops $tiddler=<<currentTiddler>> $field=\"text\" $subfilter={{{ [<currentTiddler>get[tags]] }}}/><$action-setfield $tiddler=<<currentTiddler>> tags=\"\"/></$button></$list></$vars> |\n|<$link to=\"$:/config/AutoFocus\"><<lingo AutoFocus/Prompt>></$link> |{{$:/snippets/minifocusswitcher}} |\n|<<lingo Language/Prompt>> |{{$:/snippets/minilanguageswitcher}} |\n|<<lingo Tiddlers/Prompt>> |<<show-filter-count \"[!is[system]sort[title]]\">> |\n|<<lingo Tags/Prompt>> |<<show-filter-count \"[tags[]sort[title]]\">> |\n|<<lingo SystemTiddlers/Prompt>> |<<show-filter-count \"[is[system]sort[title]]\">> |\n|<<lingo ShadowTiddlers/Prompt>> |<<show-filter-count \"[all[shadows]sort[title]]\">> |\n|<<lingo OverriddenShadowTiddlers/Prompt>> |<<show-filter-count \"[is[tiddler]is[shadow]sort[title]]\">> |\n"
        },
        "$:/core/ui/ControlPanel/EditorTypes": {
            "title": "$:/core/ui/ControlPanel/EditorTypes",
            "tags": "$:/tags/ControlPanel/Advanced",
            "caption": "{{$:/language/ControlPanel/EditorTypes/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/EditorTypes/\n\n<<lingo Hint>>\n\n<table>\n<tbody>\n<tr>\n<th><<lingo Type/Caption>></th>\n<th><<lingo Editor/Caption>></th>\n</tr>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/config/EditorTypeMappings/]sort[title]]\">\n<tr>\n<td>\n<$link>\n<$list filter=\"[all[current]removeprefix[$:/config/EditorTypeMappings/]]\">\n<$text text={{!!title}}/>\n</$list>\n</$link>\n</td>\n<td>\n<$view field=\"text\"/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/ControlPanel/Info": {
            "title": "$:/core/ui/ControlPanel/Info",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Info/Caption}}",
            "text": "{{$:/language/ControlPanel/Info/Hint}}\n\n<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Info]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Basics\" explicitState=\"$:/state/tab--2112689675\"/>\n</div>\n"
        },
        "$:/core/ui/ControlPanel/KeyboardShortcuts": {
            "title": "$:/core/ui/ControlPanel/KeyboardShortcuts",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/KeyboardShortcuts/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/KeyboardShortcuts/\n\n\\define new-shortcut(title)\n<div class=\"tc-dropdown-item-plain\">\n<$edit-shortcut tiddler=\"$title$\" placeholder={{$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt}} focus=\"true\" style=\"width:auto;\"/> <$button>\n<<lingo Add/Caption>>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"[{$title$}]\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"$title$\"\n/>\n</$button>\n</div>\n\\end\n\n\\define shortcut-list-item(caption)\n<td>\n</td>\n<td style=\"text-align:right;font-size:0.7em;\">\n<<lingo Platform/$caption$>>\n</td>\n<td>\n<div style=\"position:relative;\">\n<$button popup=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> class=\"tc-btn-invisible\">\n{{$:/core/images/edit-button}}\n</$button>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutTitle)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\n<$reveal state=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown tc-popup-keep\">\n<$list filter=\"[list[$(shortcutTitle)$!!text]sort[title]]\" variable=\"shortcut\" emptyMessage=\"\"\"\n<div class=\"tc-dropdown-item-plain\">\n//<<lingo NoShortcuts/Caption>>//\n</div>\n\"\"\">\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint}}>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"+[remove<shortcut>]\"\n/>\n<small>{{$:/core/images/close-button}}</small>\n</$button>\n<kbd>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts=<<shortcut>>/>\n</kbd>\n</div>\n</$list>\n<hr/>\n<$macrocall $name=\"new-shortcut\" title=<<qualify \"$:/state/new-shortcut/$(shortcutTitle)$\">>/>\n</div>\n</div>\n</$reveal>\n</div>\n</td>\n\\end\n\n\\define shortcut-list(caption,prefix)\n<tr>\n<$list filter=\"[[$prefix$$(shortcutName)$]]\" variable=\"shortcutTitle\">\n<<shortcut-list-item \"$caption$\">>\n</$list>\n</tr>\n\\end\n\n\\define shortcut-editor()\n<<shortcut-list \"All\" \"$:/config/shortcuts/\">>\n<<shortcut-list \"Mac\" \"$:/config/shortcuts-mac/\">>\n<<shortcut-list \"NonMac\" \"$:/config/shortcuts-not-mac/\">>\n<<shortcut-list \"Linux\" \"$:/config/shortcuts-linux/\">>\n<<shortcut-list \"NonLinux\" \"$:/config/shortcuts-not-linux/\">>\n<<shortcut-list \"Windows\" \"$:/config/shortcuts-windows/\">>\n<<shortcut-list \"NonWindows\" \"$:/config/shortcuts-not-windows/\">>\n\\end\n\n\\define shortcut-preview()\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutPrefix)$$(shortcutName)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\\end\n\n\\define shortcut-item-inner()\n<tr>\n<td>\n<$reveal type=\"nomatch\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"open\"\n/>\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"close\"\n/>\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n''<$text text=<<shortcutName>>/>''\n</td>\n<td>\n<$transclude tiddler=\"$:/config/ShortcutInfo/$(shortcutName)$\"/>\n</td>\n<td>\n<$list filter=\"$:/config/shortcuts/ $:/config/shortcuts-mac/ $:/config/shortcuts-not-mac/ $:/config/shortcuts-linux/ $:/config/shortcuts-not-linux/ $:/config/shortcuts-windows/ $:/config/shortcuts-not-windows/\" variable=\"shortcutPrefix\">\n<<shortcut-preview>>\n</$list>\n</td>\n</tr>\n<$set name=\"dropdownState\" value={{$(dropdownStateTitle)$}}>\n<$list filter=\"[<dropdownState>match[open]]\" variable=\"listItem\">\n<<shortcut-editor>>\n</$list>\n</$set>\n\\end\n\n\\define shortcut-item()\n<$set name=\"dropdownStateTitle\" value=<<qualify \"$:/state/dropdown/keyboardshortcut/$(shortcutName)$\">>>\n<<shortcut-item-inner>>\n</$set>\n\\end\n\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]removeprefix[$:/config/ShortcutInfo/]]\" variable=\"shortcutName\">\n<<shortcut-item>>\n</$list>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/ControlPanel/LoadedModules": {
            "title": "$:/core/ui/ControlPanel/LoadedModules",
            "tags": "$:/tags/ControlPanel/Advanced",
            "caption": "{{$:/language/ControlPanel/LoadedModules/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/\n<<lingo LoadedModules/Hint>>\n\n{{$:/snippets/modules}}\n"
        },
        "$:/core/ui/ControlPanel/Modals/AddPlugins": {
            "title": "$:/core/ui/ControlPanel/Modals/AddPlugins",
            "subtitle": "{{$:/core/images/download-button}} {{$:/language/ControlPanel/Plugins/Add/Caption}}",
            "text": "\\define install-plugin-actions()\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url={{!!url}} title={{$(assetInfo)$!!original-title}}/>\n<$set name=\"url\" value={{!!url}}>\n<$set name=\"currentTiddler\" value=<<assetInfo>>>\n<$list filter=\"[enlist{!!dependents}] [{!!parent-plugin}] +[sort[name]]\" variable=\"dependency\">\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url=<<url>> title=<<dependency>>/>\n</$list>\n</$set>\n</$set>\n\\end\n\n\\define install-plugin-button()\n<div>\n<$set name=\"libraryVersion\" value={{{ [<assetInfo>get[version]] }}}>\n<$set name=\"installedVersion\" value={{{ [<assetInfo>get[original-title]get[version]] }}}>\n<$set name=\"reinstall-type\" value={{{ [<libraryVersion>compare:version:eq<installedVersion>then[tc-reinstall]] [<libraryVersion>compare:version:gt<installedVersion>then[tc-reinstall-upgrade]] [<libraryVersion>compare:version:lt<installedVersion>then[tc-reinstall-downgrade]] }}}>\n<$button actions=<<install-plugin-actions>> class={{{ [<assetInfo>get[original-title]has[version]then<reinstall-type>] tc-btn-invisible tc-install-plugin +[join[ ]] }}}>\n{{$:/core/images/download-button}}\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"ignore\" emptyMessage=\"{{$:/language/ControlPanel/Plugins/Install/Caption}}\">\n<$list filter=\"[<libraryVersion>compare:version:gt<installedVersion>]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$list filter=\"[<libraryVersion>compare:version:lt<installedVersion>]\" variable=\"ignore\" emptyMessage=\"{{$:/language/ControlPanel/Plugins/Reinstall/Caption}}\">\n{{$:/language/ControlPanel/Plugins/Downgrade/Caption}}\n</$list>\n\"\"\">\n{{$:/language/ControlPanel/Plugins/Update/Caption}}\n</$list>\n</$list>\n</$button>\n<div>\n</div>\n<$reveal stateTitle=<<assetInfo>> stateField=\"requires-reload\" type=\"match\" text=\"yes\">{{$:/language/ControlPanel/Plugins/PluginWillRequireReload}}</$reveal>\n</$set>\n</$set>\n</$set>\n</div>\n\\end\n\n\\define popup-state-macro()\n$:/state/add-plugin-info/$(connectionTiddler)$/$(assetInfo)$\n\\end\n\n\\define display-plugin-info(type)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<div class=\"tc-plugin-info\">\n<div class=\"tc-plugin-info-chunk tc-plugin-info-toggle\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/chevron-right}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-icon\">\n<$list filter=\"[<assetInfo>has[icon]]\" emptyMessage=\"\"\"<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\"\"\">\n<img src={{$(assetInfo)$!!icon}}/>\n</$list>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-description\">\n<h1><strong><$text text={{{ [<assetInfo>get[name]] ~[<assetInfo>get[original-title]split[/]last[1]] }}}/></strong>: <$view tiddler=<<assetInfo>> field=\"description\"/></h1>\n<h2><$view tiddler=<<assetInfo>> field=\"original-title\"/></h2>\n<div><em><$view tiddler=<<assetInfo>> field=\"version\"/></em></div>\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"installedVersion\"><div><em>{{$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint}}</em></div></$list>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-buttons\">\n<<install-plugin-button>>\n</div>\n</div>\n<$set name=\"original-title\" value={{{ [<assetInfo>get[original-title]] }}}>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>>>\n<div class=\"tc-plugin-info-dropdown\">\n<$list filter=\"[enlist{!!dependents}] [<currentTiddler>get[parent-plugin]] +[limit[1]] ~[<assetInfo>get[original-title]!is[tiddler]]\" variable=\"ignore\">\n<div class=\"tc-plugin-info-dropdown-message\">\n<$list filter=\"[<assetInfo>get[original-title]!is[tiddler]]\">\n{{$:/language/ControlPanel/Plugins/NotInstalled/Hint}}\n</$list>\n<$set name=\"currentTiddler\" value=<<assetInfo>>>\n<$list filter=\"[enlist{!!dependents}] [<currentTiddler>get[parent-plugin]] +[limit[1]]\" variable=\"ignore\">\n<div>\n{{$:/language/ControlPanel/Plugins/AlsoRequires}}\n<$list filter=\"[enlist{!!dependents}] [{!!parent-plugin}] +[sort[name]]\" variable=\"dependency\">\n<$text text=<<dependency>>/>\n</$list>\n</div>\n</$list>\n</$set>\n</div>\n</$list>\n<div class=\"tc-plugin-info-dropdown-body\">\n<$transclude tiddler=<<assetInfo>> field=\"readme\" mode=\"block\"/>\n</div>\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>limit[1]]\" variable=\"ignore\">\n<div class=\"tc-plugin-info-sub-plugins\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>sort[name]]\" variable=\"assetInfo\">\n<<display-plugin-info \"$type$\">>\n</$list>\n</div>\n</$list>\n</div>\n</$reveal>\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>limit[1]]\" variable=\"ignore\">\n<$reveal type=\"nomatch\" text=\"yes\" state=<<popup-state>> tag=\"div\" class=\"tc-plugin-info-sub-plugin-indicator\">\n<$wikify name=\"count\" text=\"\"\"<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>]\"/>\"\"\">\n<$button class=\"tc-btn-invisible\" set=<<popup-state>> setTo=\"yes\">\n{{$:/language/ControlPanel/Plugins/SubPluginPrompt}}\n</$button>\n</$wikify>\n</$reveal>\n</$list>\n</$set>\n</$set>\n\\end\n\n\\define load-plugin-library-button()\n<$list filter=\"[<currentTiddler>get[enabled]else[yes]match[yes]]\" variable=\"ignore\">\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-load-plugin-library\" url={{!!url}} infoTitlePrefix=\"$:/temp/RemoteAssetInfo/\"/>\n{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Plugins/OpenPluginLibrary}}\n</$button>\n</$list>\n\\end\n\n\\define display-server-assets(type)\n{{$:/language/Search/Search}}: <$edit-text tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" default=\"\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n<div class=\"tc-plugin-library-listing\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]search:author,description,original-title,readme,title{$:/temp/RemoteAssetSearch/$(currentTiddler)$}sort[name]]\" variable=\"assetInfo\">\n<$list filter=\"[[$:/temp/RemoteAssetSearch/$(currentTiddler)$]has[text]] ~[<assetInfo>!has[parent-plugin]]\" variable=\"ignore\"><!-- Hide sub-plugins if we're not searching -->\n<<display-plugin-info \"$type$\">>\n</$list>\n</$list>\n</div>\n\\end\n\n\\define display-server-connection()\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/ServerConnection]suffix{!!url}]\" variable=\"connectionTiddler\" emptyMessage=<<load-plugin-library-button>>>\n\n<$set name=\"transclusion\" value=<<connectionTiddler>>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Add/Updates]] [[$:/core/ui/ControlPanel/Plugins/Add/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Add/Themes]] [[$:/core/ui/ControlPanel/Plugins/Add/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Add/Plugins\">>\n\n</$set>\n\n</$list>\n\\end\n\n\\define close-library-button()\n<$reveal type='nomatch' state='$:/temp/ServerConnection/$(PluginLibraryURL)$' text=''>\n<$button class='tc-btn-big-green'>\n<$action-sendmessage $message=\"tm-unload-plugin-library\" url={{!!url}}/>\n{{$:/core/images/chevron-left}} {{$:/language/ControlPanel/Plugins/ClosePluginLibrary}}\n<$action-deletetiddler $filter=\"[prefix[$:/temp/ServerConnection/$(PluginLibraryURL)$]][prefix[$:/temp/RemoteAssetInfo/$(PluginLibraryURL)$]]\"/>\n</$button>\n</$reveal>\n\\end\n\n\\define plugin-library-listing()\n<div class=\"tc-tab-set\">\n<$set name=\"defaultTab\" value={{{ [all[tiddlers+shadows]tag[$:/tags/PluginLibrary]] }}}>\n<div class=\"tc-tab-buttons\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<$button set=<<qualify \"$:/state/addplugins/tab\">> setTo=<<currentTiddler>> default=<<defaultTab>> selectedClass=\"tc-tab-selected\">\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude field=\"caption\"/>\n</$set>\n</$button>\n</$list>\n</div>\n<div class=\"tc-tab-divider\"/>\n<div class=\"tc-tab-content\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<$reveal type=\"match\" state=<<qualify \"$:/state/addplugins/tab\">> text=<<currentTiddler>> default=<<defaultTab>>>\n<h2><$link><$transclude field=\"caption\"><$view field=\"title\"/></$transclude></$link></h2>\n//<$view field=\"url\"/>//\n<$transclude mode=\"block\"/>\n<$set name=PluginLibraryURL value={{!!url}}>\n<<close-library-button>>\n</$set>\n<<display-server-connection>>\n</$reveal>\n</$list>\n</div>\n</$set>\n</div>\n\\end\n\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<div>\n<<plugin-library-listing>>\n</div>\n"
        },
        "$:/core/ui/ControlPanel/Palette": {
            "title": "$:/core/ui/ControlPanel/Palette",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ControlPanel/Palette/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Palette/\n\n{{$:/snippets/paletteswitcher}}\n\n<$reveal type=\"nomatch\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"yes\"><<lingo ShowEditor/Caption>></$button>\n\n</$reveal>\n\n<$reveal type=\"match\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"no\"><<lingo HideEditor/Caption>></$button>\n{{$:/PaletteManager}}\n\n</$reveal>\n\n"
        },
        "$:/core/ui/ControlPanel/Parsing": {
            "title": "$:/core/ui/ControlPanel/Parsing",
            "tags": "$:/tags/ControlPanel/Advanced",
            "caption": "{{$:/language/ControlPanel/Parsing/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Parsing/\n\n\\define toggle(Type)\n<$checkbox\ntiddler=\"\"\"$:/config/WikiParserRules/$Type$/$(rule)$\"\"\"\nfield=\"text\"\nchecked=\"enable\"\nunchecked=\"disable\"\ndefault=\"enable\">\n<<rule>>\n</$checkbox>\n\\end\n\n\\define rules(type,Type)\n<$list filter=\"[wikiparserrules[$type$]]\" variable=\"rule\">\n<dd><<toggle $Type$>></dd>\n</$list>\n\\end\n\n<<lingo Hint>>\n\n<dl>\n<dt><<lingo Pragma/Caption>></dt>\n<<rules pragma Pragma>>\n<dt><<lingo Inline/Caption>></dt>\n<<rules inline Inline>>\n<dt><<lingo Block/Caption>></dt>\n<<rules block Block>>\n</dl>"
        },
        "$:/core/ui/ControlPanel/Plugins/Add/Languages": {
            "title": "$:/core/ui/ControlPanel/Plugins/Add/Languages",
            "caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[language]]\"/>)",
            "text": "<<display-server-assets language>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Add/Plugins": {
            "title": "$:/core/ui/ControlPanel/Plugins/Add/Plugins",
            "caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}}  (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[plugin]]\"/>)",
            "text": "<<display-server-assets plugin>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Add/Themes": {
            "title": "$:/core/ui/ControlPanel/Plugins/Add/Themes",
            "caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}}  (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[theme]]\"/>)",
            "text": "<<display-server-assets theme>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Add/Updates": {
            "title": "$:/core/ui/ControlPanel/Plugins/Add/Updates",
            "caption": "<$importvariables filter=\"$:/core/ui/ControlPanel/Plugins/Add/Updates\">{{$:/language/ControlPanel/Plugins/Updates/Caption}} (<<update-count>>)</$importvariables>",
            "text": "\\define each-updateable-plugin(body)\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}sort[title]]\" variable=\"assetInfo\">\n<$set name=\"libraryVersion\" value={{{ [<assetInfo>get[version]] }}}>\n<$list filter=\"[<assetInfo>get[original-title]has[version]!version<libraryVersion>]\" variable=\"ignore\">\n<$set name=\"installedVersion\" value={{{ [<assetInfo>get[original-title]get[version]] }}}>\n<$list filter=\"[<installedversion>!match<libraryVersion>]\" variable=\"ignore\">\n$body$\n</$list>\n</$set>\n</$list>\n</$set>\n</$list>\n\\end\n\n\\define update-all-actions()\n<$macrocall $name=\"each-updateable-plugin\" body=\"\"\"\n<<install-plugin-actions>>\n\"\"\"/>\n\\end\n\n\\define update-count()\n<$wikify name=\"count-filter\" text=<<each-updateable-plugin \"&#91;&#91;<$text text=<<assetInfo>>/>]]\">>><$count filter=<<count-filter>>/></$wikify>\n\\end\n\n<$button actions=<<update-all-actions>> class=\"tc-btn-invisible tc-install-plugin tc-reinstall-upgrade\">\n{{$:/core/images/download-button}} {{||$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption}}\n</$button>\n\n<div class=\"tc-plugin-library-listing\">\n<$macrocall $name=\"each-updateable-plugin\" body=\"\"\"\n<$macrocall $name=\"display-plugin-info\" type={{{ [<assetInfo>get[original-plugin-type]] }}}/>\n\"\"\"/>\n</div>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/AddPlugins": {
            "title": "$:/core/ui/ControlPanel/Plugins/AddPlugins",
            "text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n<$button message=\"tm-modal\" param=\"$:/core/ui/ControlPanel/Modals/AddPlugins\" tooltip={{$:/language/ControlPanel/Plugins/Add/Hint}} class=\"tc-btn-big-green tc-primary-btn\">\n{{$:/core/images/download-button}} <<lingo Add/Caption>>\n</$button>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Installed/Languages": {
            "title": "$:/core/ui/ControlPanel/Plugins/Installed/Languages",
            "caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[language]]\"/>)",
            "text": "<<plugin-table language>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Installed/Plugins": {
            "title": "$:/core/ui/ControlPanel/Plugins/Installed/Plugins",
            "caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[plugin]]\"/>)",
            "text": "<<plugin-table plugin>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Installed/Themes": {
            "title": "$:/core/ui/ControlPanel/Plugins/Installed/Themes",
            "caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[theme]]\"/>)",
            "text": "<<plugin-table theme>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins": {
            "title": "$:/core/ui/ControlPanel/Plugins",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define plugin-table(type)\n<$set name=\"plugin-type\" value=\"\"\"$type$\"\"\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n<$list filter=\"[!has[draft.of]plugin-type[$type$]sort[name]]\" emptyMessage=<<lingo \"Empty/Hint\">> template=\"$:/core/ui/Components/plugin-info\"/>\n</$set>\n</$set>\n\\end\n\n{{$:/core/ui/ControlPanel/Plugins/AddPlugins}}\n\n<<lingo Installed/Hint>>\n\n<$macrocall $name=\"tabs\" tabsList=\"[[$:/core/ui/ControlPanel/Plugins/Installed/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Installed/Themes]] [[$:/core/ui/ControlPanel/Plugins/Installed/Languages]]\" default=\"$:/core/ui/ControlPanel/Plugins/Installed/Plugins\" explicitState=\"$:/state/tab--86143343\"/>\n"
        },
        "$:/core/ui/ControlPanel/Saving/DownloadSaver": {
            "title": "$:/core/ui/ControlPanel/Saving/DownloadSaver",
            "tags": "$:/tags/ControlPanel/Saving",
            "caption": "{{$:/language/ControlPanel/Saving/DownloadSaver/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Saving/DownloadSaver/\n\n<<lingo Hint>>\n\n!! <$link to=\"$:/config/DownloadSaver/AutoSave\"><<lingo AutoSave/Hint>></$link>\n\n<$checkbox tiddler=\"$:/config/DownloadSaver/AutoSave\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <<lingo AutoSave/Description>> </$checkbox>\n"
        },
        "$:/core/ui/ControlPanel/Saving/General": {
            "title": "$:/core/ui/ControlPanel/Saving/General",
            "tags": "$:/tags/ControlPanel/Saving",
            "caption": "{{$:/language/ControlPanel/Saving/General/Caption}}",
            "list-before": "",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n{{$:/language/ControlPanel/Saving/General/Hint}}\n\n!! <$link to=\"$:/config/AutoSave\"><<lingo AutoSave/Caption>></$link>\n\n<<lingo AutoSave/Hint>>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"yes\"> <<lingo AutoSave/Enabled/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"no\"> <<lingo AutoSave/Disabled/Description>> </$radio>\n"
        },
        "$:/core/ui/ControlPanel/Saving/GitHub": {
            "title": "$:/core/ui/ControlPanel/Saving/GitHub",
            "tags": "$:/tags/ControlPanel/Saving",
            "caption": "{{$:/language/ControlPanel/Saving/GitService/GitHub/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~GitHub\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/GitHub/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo GitHub/Password>> |<$password name=\"github\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/GitHub/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/GitHub/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/GitHub/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/GitHub/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/GitHub/ServerURL\" default=\"https://api.github.com\" tag=\"input\"/> |"
        },
        "$:/core/ui/ControlPanel/Saving/GitLab": {
            "title": "$:/core/ui/ControlPanel/Saving/GitLab",
            "tags": "$:/tags/ControlPanel/Saving",
            "caption": "{{$:/language/ControlPanel/Saving/GitService/GitLab/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~GitLab\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/GitLab/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo GitLab/Password>> |<$password name=\"gitlab\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/GitLab/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/GitLab/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/GitLab/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/GitLab/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/GitLab/ServerURL\" default=\"https://gitlab.com/api/v4\" tag=\"input\"/> |"
        },
        "$:/core/ui/ControlPanel/Saving/TiddlySpot": {
            "title": "$:/core/ui/ControlPanel/Saving/TiddlySpot",
            "tags": "$:/tags/ControlPanel/Saving",
            "caption": "{{$:/language/ControlPanel/Saving/TiddlySpot/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Saving/TiddlySpot/\n\n\\define siteURL(path)\nhttp://$(userName)$.tiddlyspot.com/$path$/\n\\end\n\\define siteLink(path)\n<$reveal type=\"nomatch\" state=\"$:/UploadName\" text=\"\">\n<$set name=\"userName\" value={{$:/UploadName}}>\n<$reveal type=\"match\" state=\"$:/UploadURL\" text=\"\">\n<<siteURL $path$>>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/UploadURL\" text=\"\">\n<$macrocall $name=resolvePath source={{$:/UploadBackupDir}} root={{$:/UploadURL}}>>\n</$reveal>\n</$set>\n</$reveal>\n\\end\n\n<div class=\"tc-message-box\">\n\n<<lingo ReadOnly>>\n\n</div>\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/UploadName\" default=\"\" tag=\"input\"/> |\n|<<lingo Password>> |<$password name=\"upload\"/> |\n|<<lingo Backups>> |<<siteLink backup>> |\n|<<lingo ControlPanel>> |<<siteLink controlpanel>> |\n\n''<<lingo Advanced/Heading>>''\n\n|<<lingo ServerURL>>  |<$edit-text tiddler=\"$:/UploadURL\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/UploadFilename\" default=\"index.html\" tag=\"input\"/> |\n|<<lingo UploadDir>> |<$edit-text tiddler=\"$:/UploadDir\" default=\".\" tag=\"input\"/> |\n|<<lingo BackupDir>> |<$edit-text tiddler=\"$:/UploadBackupDir\" default=\".\" tag=\"input\"/> |\n\n<<lingo TiddlySpot/Hint>>\n"
        },
        "$:/core/ui/ControlPanel/Saving/Gitea": {
            "title": "$:/core/ui/ControlPanel/Saving/Gitea",
            "tags": "$:/tags/ControlPanel/Saving",
            "caption": "{{$:/language/ControlPanel/Saving/GitService/Gitea/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~Gitea\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/Gitea/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo Gitea/Password>> |<$password name=\"Gitea\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/Gitea/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/Gitea/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/Gitea/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/Gitea/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/Gitea/ServerURL\" default=\"https://gitea/api/v1\" tag=\"input\"/> |\n"
        },
        "$:/core/ui/ControlPanel/Saving": {
            "title": "$:/core/ui/ControlPanel/Saving",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Saving/Caption}}",
            "text": "{{$:/language/ControlPanel/Saving/Hint}}\n\n<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Saving]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Saving/General\" explicitState=\"$:/state/tab-2065006209\"/>\n</div>\n"
        },
        "$:/core/buttonstyles/Borderless": {
            "title": "$:/core/buttonstyles/Borderless",
            "tags": "$:/tags/ToolbarButtonStyle",
            "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless}}",
            "text": "tc-btn-invisible"
        },
        "$:/core/buttonstyles/Boxed": {
            "title": "$:/core/buttonstyles/Boxed",
            "tags": "$:/tags/ToolbarButtonStyle",
            "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed}}",
            "text": "tc-btn-boxed"
        },
        "$:/core/buttonstyles/Rounded": {
            "title": "$:/core/buttonstyles/Rounded",
            "tags": "$:/tags/ToolbarButtonStyle",
            "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded}}",
            "text": "tc-btn-rounded"
        },
        "$:/core/ui/ControlPanel/Settings/CamelCase": {
            "title": "$:/core/ui/ControlPanel/Settings/CamelCase",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/CamelCase/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/CamelCase/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/WikiParserRules/Inline/wikilink\" field=\"text\" checked=\"enable\" unchecked=\"disable\" default=\"enable\"> <$link to=\"$:/config/WikiParserRules/Inline/wikilink\"><<lingo Description>></$link> </$checkbox>\n"
        },
        "$:/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab": {
            "title": "$:/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab",
            "caption": "{{$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption}}",
            "tags": "$:/tags/ControlPanel/Settings",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultMoreSidebarTab/\n\n<$link to=\"$:/config/DefaultMoreSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultMoreSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n"
        },
        "$:/core/ui/ControlPanel/Settings/DefaultSidebarTab": {
            "title": "$:/core/ui/ControlPanel/Settings/DefaultSidebarTab",
            "caption": "{{$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption}}",
            "tags": "$:/tags/ControlPanel/Settings",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultSidebarTab/\n\n<$link to=\"$:/config/DefaultSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n"
        },
        "$:/core/ui/ControlPanel/Settings/EditorToolbar": {
            "title": "$:/core/ui/ControlPanel/Settings/EditorToolbar",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/EditorToolbar/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/EditorToolbar/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/TextEditor/EnableToolbar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/TextEditor/EnableToolbar\"><<lingo Description>></$link> </$checkbox>\n\n"
        },
        "$:/core/ui/ControlPanel/Settings/InfoPanelMode": {
            "title": "$:/core/ui/ControlPanel/Settings/InfoPanelMode",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/InfoPanelMode/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/InfoPanelMode/\n<$link to=\"$:/config/TiddlerInfo/Mode\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"popup\"> <<lingo Popup/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"sticky\"> <<lingo Sticky/Description>> </$radio>\n"
        },
        "$:/core/ui/ControlPanel/Settings/LinkToBehaviour": {
            "title": "$:/core/ui/ControlPanel/Settings/LinkToBehaviour",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/LinkToBehaviour/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/LinkToBehaviour/\n\n<$link to=\"$:/config/Navigation/openLinkFromInsideRiver\"><<lingo \"InsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromInsideRiver\">\n  <option value=\"above\"><<lingo \"OpenAbove\">></option>\n  <option value=\"below\"><<lingo \"OpenBelow\">></option>\n  <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n  <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n\n<$link to=\"$:/config/Navigation/openLinkFromOutsideRiver\"><<lingo \"OutsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromOutsideRiver\">\n  <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n  <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n"
        },
        "$:/core/ui/ControlPanel/Settings/MissingLinks": {
            "title": "$:/core/ui/ControlPanel/Settings/MissingLinks",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/MissingLinks/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/MissingLinks/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/MissingLinks\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/MissingLinks\"><<lingo Description>></$link> </$checkbox>\n\n"
        },
        "$:/core/ui/ControlPanel/Settings/NavigationAddressBar": {
            "title": "$:/core/ui/ControlPanel/Settings/NavigationAddressBar",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/NavigationAddressBar/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationAddressBar/\n\n<$link to=\"$:/config/Navigation/UpdateAddressBar\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permaview\"> <<lingo Permaview/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permalink\"> <<lingo Permalink/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
        },
        "$:/core/ui/ControlPanel/Settings/NavigationHistory": {
            "title": "$:/core/ui/ControlPanel/Settings/NavigationHistory",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/NavigationHistory/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationHistory/\n<$link to=\"$:/config/Navigation/UpdateHistory\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
        },
        "$:/core/ui/ControlPanel/Settings/NavigationPermalinkviewMode": {
            "title": "$:/core/ui/ControlPanel/Settings/NavigationPermalinkviewMode",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationPermalinkviewMode/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Navigation/Permalinkview/CopyToClipboard\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Navigation/Permalinkview/CopyToClipboard\"><<lingo CopyToClipboard/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Navigation/Permalinkview/UpdateAddressBar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Navigation/Permalinkview/UpdateAddressBar\"><<lingo UpdateAddressBar/Description>></$link> </$checkbox>\n"
        },
        "$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation": {
            "title": "$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/PerformanceInstrumentation/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Performance/Instrumentation\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Performance/Instrumentation\"><<lingo Description>></$link> </$checkbox>\n"
        },
        "$:/core/ui/ControlPanel/Settings/TitleLinks": {
            "title": "$:/core/ui/ControlPanel/Settings/TitleLinks",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/TitleLinks/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/TitleLinks/\n<$link to=\"$:/config/Tiddlers/TitleLinks\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
        },
        "$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle": {
            "title": "$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtonStyle/\n<$link to=\"$:/config/Toolbar/ButtonClass\"><<lingo \"Hint\">></$link>\n\n<$select tiddler=\"$:/config/Toolbar/ButtonClass\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ToolbarButtonStyle]]\">\n<option value={{!!text}}>{{!!caption}}</option>\n</$list>\n</$select>\n"
        },
        "$:/core/ui/ControlPanel/Settings/ToolbarButtons": {
            "title": "$:/core/ui/ControlPanel/Settings/ToolbarButtons",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtons/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtons/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Icons\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Toolbar/Icons\"><<lingo Icons/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Text\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Toolbar/Text\"><<lingo Text/Description>></$link> </$checkbox>\n"
        },
        "$:/core/ui/ControlPanel/Settings": {
            "title": "$:/core/ui/ControlPanel/Settings",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Settings/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n<<lingo Hint>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings]]\">\n\n<div style=\"border-top:1px solid #eee;\">\n\n!! <$link><$transclude field=\"caption\"/></$link>\n\n<$transclude/>\n\n</div>\n\n</$list>\n"
        },
        "$:/core/ui/ControlPanel/StoryView": {
            "title": "$:/core/ui/ControlPanel/StoryView",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ControlPanel/StoryView/Caption}}",
            "text": "{{$:/snippets/viewswitcher}}\n"
        },
        "$:/core/ui/ControlPanel/Stylesheets": {
            "title": "$:/core/ui/ControlPanel/Stylesheets",
            "tags": "$:/tags/ControlPanel/Advanced",
            "caption": "{{$:/language/ControlPanel/Stylesheets/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo Stylesheets/Hint>>\n\n{{$:/snippets/peek-stylesheets}}\n"
        },
        "$:/core/ui/ControlPanel/Theme": {
            "title": "$:/core/ui/ControlPanel/Theme",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ControlPanel/Theme/Caption}}",
            "text": "{{$:/snippets/themeswitcher}}\n"
        },
        "$:/core/ui/ControlPanel/TiddlerFields": {
            "title": "$:/core/ui/ControlPanel/TiddlerFields",
            "tags": "$:/tags/ControlPanel/Advanced",
            "caption": "{{$:/language/ControlPanel/TiddlerFields/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo TiddlerFields/Hint>>\n\n{{$:/snippets/allfields}}"
        },
        "$:/core/ui/ControlPanel/Toolbars/EditToolbar": {
            "title": "$:/core/ui/ControlPanel/Toolbars/EditToolbar",
            "tags": "$:/tags/ControlPanel/Toolbars",
            "caption": "{{$:/language/ControlPanel/Toolbars/EditToolbar/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>"
        },
        "$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate": {
            "title": "$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate",
            "text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"><$transclude tiddler={{!!icon}}/></span> <$transclude field=\"caption\"/> -- <i class=\"tc-muted\"><$transclude field=\"description\"/></i>\n</$draggable>\n"
        },
        "$:/core/ui/ControlPanel/Toolbars/EditorToolbar": {
            "title": "$:/core/ui/ControlPanel/Toolbars/EditorToolbar",
            "tags": "$:/tags/ControlPanel/Toolbars",
            "caption": "{{$:/language/ControlPanel/Toolbars/EditorToolbar/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditorToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditorToolbar/Hint}}\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditorToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate\"/>\n"
        },
        "$:/core/ui/ControlPanel/Toolbars/ItemTemplate": {
            "title": "$:/core/ui/ControlPanel/Toolbars/ItemTemplate",
            "text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"> <$transclude field=\"caption\"/> <i class=\"tc-muted\">-- <$transclude field=\"description\"/></i></span>\n</$draggable>\n"
        },
        "$:/core/ui/ControlPanel/Toolbars/PageControls": {
            "title": "$:/core/ui/ControlPanel/Toolbars/PageControls",
            "tags": "$:/tags/ControlPanel/Toolbars",
            "caption": "{{$:/language/ControlPanel/Toolbars/PageControls/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/PageControlButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/PageControls/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/PageControls\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/ControlPanel/Toolbars/ViewToolbar": {
            "title": "$:/core/ui/ControlPanel/Toolbars/ViewToolbar",
            "tags": "$:/tags/ControlPanel/Toolbars",
            "caption": "{{$:/language/ControlPanel/Toolbars/ViewToolbar/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/ViewToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/ViewToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/ViewToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/ControlPanel/Toolbars": {
            "title": "$:/core/ui/ControlPanel/Toolbars",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ControlPanel/Toolbars/Caption}}",
            "text": "{{$:/language/ControlPanel/Toolbars/Hint}}\n\n<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Toolbars]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Toolbars/ViewToolbar\" class=\"tc-vertical\" explicitState=\"$:/state/tabs/controlpanel/toolbars-1345989671\"/>\n</div>\n"
        },
        "$:/ControlPanel": {
            "title": "$:/ControlPanel",
            "icon": "$:/core/images/options-button",
            "color": "#bbb",
            "text": "<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Info\" explicitState=\"$:/state/tab-1749438307\"/>\n</div>\n"
        },
        "$:/core/ui/DefaultSearchResultList": {
            "title": "$:/core/ui/DefaultSearchResultList",
            "tags": "$:/tags/SearchResults",
            "caption": "{{$:/language/Search/DefaultResults/Caption}}",
            "first-search-filter": "[!is[system]search:title<userInput>sort[title]limit[250]]",
            "second-search-filter": "[!is[system]search<userInput>sort[title]limit[250]]",
            "text": "\\define searchResultList()\n//<small>{{$:/language/Search/Matches/Title}}</small>//\n\n<$list filter=\"[<userInput>minlength[1]]\" variable=\"ignore\">\n<$list filter={{{ [<configTiddler>get[first-search-filter]] }}}>\n<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[<searchListState>get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n</$list>\n\n//<small>{{$:/language/Search/Matches/All}}</small>//\n\n<$list filter=\"[<userInput>minlength[1]]\" variable=\"ignore\">\n<$list filter={{{ [<configTiddler>get[second-search-filter]] }}}>\n<span class={{{[<currentTiddler>addsuffix[-secondaryList]] -[<searchListState>get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n</$list>\n\n\\end\n<<searchResultList>>\n"
        },
        "$:/core/ui/EditTemplate/body/preview/diffs-current": {
            "title": "$:/core/ui/EditTemplate/body/preview/diffs-current",
            "tags": "$:/tags/EditPreview",
            "caption": "differences from current",
            "list-after": "$:/core/ui/EditTemplate/body/preview/output",
            "text": "<$list filter=\"[<currentTiddler>!is[image]]\" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>\n\n<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle={{!!draft.of}} destTiddlerTitle=<<currentTiddler>>/>\n\n</$list>\n\n"
        },
        "$:/core/ui/EditTemplate/body/preview/diffs-shadow": {
            "title": "$:/core/ui/EditTemplate/body/preview/diffs-shadow",
            "tags": "$:/tags/EditPreview",
            "caption": "differences from shadow (if any)",
            "list-after": "$:/core/ui/EditTemplate/body/preview/output",
            "text": "<$list filter=\"[<currentTiddler>!is[image]]\" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>\n\n<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle={{{ [{!!draft.of}shadowsource[]] }}} sourceSubTiddlerTitle={{!!draft.of}} destTiddlerTitle=<<currentTiddler>>/>\n\n</$list>\n\n"
        },
        "$:/core/ui/EditTemplate/body/preview/output": {
            "title": "$:/core/ui/EditTemplate/body/preview/output",
            "tags": "$:/tags/EditPreview",
            "caption": "{{$:/language/EditTemplate/Body/Preview/Type/Output}}",
            "text": "\\import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!has[draft.of]]\n<$set name=\"tv-tiddler-preview\" value=\"yes\">\n\n<$transclude />\n\n</$set>\n"
        },
        "$:/state/showeditpreview": {
            "title": "$:/state/showeditpreview",
            "text": "no"
        },
        "$:/core/ui/EditTemplate/body/editor": {
            "title": "$:/core/ui/EditTemplate/body/editor",
            "text": "<$edit\n\n  field=\"text\"\n  class=\"tc-edit-texteditor tc-edit-texteditor-body\"\n  placeholder={{$:/language/EditTemplate/Body/Placeholder}}\n  tabindex={{$:/config/EditTabIndex}}\n  focus={{{ [{$:/config/AutoFocus}match[text]then[true]] ~[[false]] }}}\n  cancelPopups=\"yes\"\n\n><$set\n\n  name=\"targetTiddler\"\n  value=<<currentTiddler>>\n\n><$list\n\n  filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]]\"\n\n><$reveal\n\n  type=\"nomatch\"\n  state=<<config-visibility-title>>\n  text=\"hide\"\n  class=\"tc-text-editor-toolbar-item-wrapper\"\n\n><$transclude\n\n  tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\"\n  mode=\"inline\"\n\n/></$reveal></$list></$set></$edit>\n"
        },
        "$:/core/ui/EditTemplate/body/toolbar/button": {
            "title": "$:/core/ui/EditTemplate/body/toolbar/button",
            "text": "\\define toolbar-button-icon()\n<$list\n\n  filter=\"[all[current]!has[custom-icon]]\"\n  variable=\"no-custom-icon\"\n\n><$transclude\n\n  tiddler={{!!icon}}\n\n/></$list>\n\\end\n\n\\define toolbar-button-tooltip()\n{{!!description}}<$macrocall $name=\"displayshortcuts\" $output=\"text/plain\" shortcuts={{!!shortcuts}} prefix=\"` - [\" separator=\"] [\" suffix=\"]`\"/>\n\\end\n\n\\define toolbar-button()\n<$list\n\n  filter={{!!condition}}\n  variable=\"list-condition\"\n\n><$wikify\n\n  name=\"tooltip-text\"\n  text=<<toolbar-button-tooltip>>\n  mode=\"inline\"\n  output=\"text\"\n\n><$list\n\n  filter=\"[all[current]!has[dropdown]]\"\n  variable=\"no-dropdown\"\n\n><$button\n\n  class=\"tc-btn-invisible $(buttonClasses)$\"\n  tooltip=<<tooltip-text>>\n  actions={{!!actions}}\n\n><span\n\n  data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n  tiddler=<<currentTiddler>>\n  field=\"text\"\n\n/></$button></$list><$list\n\n  filter=\"[all[current]has[dropdown]]\"\n  variable=\"dropdown\"\n\n><$set\n\n  name=\"dropdown-state\"\n  value=<<qualify \"$:/state/EditorToolbarDropdown\">>\n\n><$button\n\n  popup=<<dropdown-state>>\n  class=\"tc-popup-keep tc-btn-invisible $(buttonClasses)$\"\n  selectedClass=\"tc-selected\"\n  tooltip=<<tooltip-text>>\n  actions={{!!actions}}\n\n><span\n\n  data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n  tiddler=<<currentTiddler>>\n  field=\"text\"\n\n/></$button><$reveal\n\n  state=<<dropdown-state>>\n  type=\"popup\"\n  position=\"below\"\n  animate=\"yes\"\n  tag=\"span\"\n\n><div\n\n  class=\"tc-drop-down tc-popup-keep\"\n\n><$transclude\n\n  tiddler={{!!dropdown}}\n  mode=\"block\"\n\n/></div></$reveal></$set></$list></$wikify></$list>\n\\end\n\n\\define toolbar-button-outer()\n<$set\n\n  name=\"buttonClasses\"\n  value={{!!button-classes}}\n\n><<toolbar-button>></$set>\n\\end\n\n<<toolbar-button-outer>>"
        },
        "$:/core/ui/EditTemplate/body": {
            "title": "$:/core/ui/EditTemplate/body",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/EditTemplate/Body/\n\\define config-visibility-title()\n$:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$\n\\end\n<$list filter=\"[all[current]has[_canonical_uri]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo External/Hint>>\n\n<a href={{!!_canonical_uri}}><$text text={{!!_canonical_uri}}/></a>\n\n<$edit-text field=\"_canonical_uri\" class=\"tc-edit-fields\" tabindex={{$:/config/EditTabIndex}} cancelPopups=\"yes\"></$edit-text>\n\n</div>\n\n</$list>\n\n<$list filter=\"[all[current]!has[_canonical_uri]]\">\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\">\n\n<div class=\"tc-tiddler-preview\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n<div class=\"tc-tiddler-preview-preview\">\n\n<$transclude tiddler={{$:/state/editpreviewtype}} mode=\"inline\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/preview/output\" mode=\"inline\"/>\n\n</$transclude>\n\n</div>\n\n</div>\n\n</$reveal>\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n</$reveal>\n\n</$list>\n"
        },
        "$:/core/ui/EditTemplate/controls": {
            "title": "$:/core/ui/EditTemplate/controls",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define config-title()\n$:/config/EditToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title tc-tiddler-edit-title\">\n<$view field=\"title\"/>\n<span class=\"tc-tiddler-controls tc-titlebar\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$transclude tiddler=<<listItem>>/></$reveal></$list></span>\n<div style=\"clear: both;\"></div>\n</div>\n"
        },
        "$:/core/ui/EditTemplate/fields": {
            "title": "$:/core/ui/EditTemplate/fields",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/EditTemplate/\n\\define config-title()\n$:/config/EditTemplateFields/Visibility/$(currentField)$\n\\end\n\n\\define config-filter()\n[[hide]] -[title{$(config-title)$}]\n\\end\n\n\\define current-tiddler-new-field-selector()\n[data-tiddler-title=\"$(currentTiddlerCSSescaped)$\"] .tc-edit-field-add-name-wrapper input\n\\end\n\n\\define new-field-actions()\n<$action-sendmessage $message=\"tm-add-field\" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $filter=\"[<newFieldNameTiddler>] [<newFieldValueTiddler>] [<storeTitle>] [<searchListState>]\"/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=<<current-tiddler-new-field-selector>>/>\n\\end\n\n\\define delete-state-tiddlers() <$action-deletetiddler $filter=\"[<newFieldNameTiddler>] [<storeTitle>] [<searchListState>]\"/>\n\n\\define cancel-search-actions-inner()\n<$list filter=\"[<storeTitle>has[text]] [<newFieldNameTiddler>has[text]]\" variable=\"ignore\" emptyMessage=\"\"\"<<cancel-delete-tiddler-actions \"cancel\">>\"\"\">\n<<delete-state-tiddlers>>\n</$list>\n\\end\n\n\\define cancel-search-actions()\n<$set name=\"userInput\" value={{{ [<storeTitle>get[text]] }}}>\n<$list filter=\"[<newFieldNameTiddler>get[text]!match<userInput>]\" emptyMessage=\"\"\"<<cancel-search-actions-inner>>\"\"\">\n<$action-setfield $tiddler=<<newFieldNameTiddler>> text=<<userInput>>/><$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/>\n</$list>\n</$set>\n\\end\n\n\\define new-field()\n<$vars name={{{ [<newFieldNameTiddler>get[text]] }}}>\n<$reveal type=\"nomatch\" text=\"\" default=<<name>>>\n<$button tooltip=<<lingo Fields/Add/Button/Hint>>>\n<$action-sendmessage $message=\"tm-add-field\"\n$name=<<name>>\n$value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $filter=\"[<newFieldNameTiddler>] [<newFieldValueTiddler>] [<storeTitle>] [<searchListState>]\"/>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" text=\"\" default=<<name>>>\n<$button>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n</$vars>\n\\end\n\\whitespace trim\n\n<div class=\"tc-edit-fields\">\n<table class={{{ [all[current]fields[]] :filter[lookup[$:/config/EditTemplateFields/Visibility/]!match[hide]] +[count[]!match[0]] +[then[tc-edit-fields]] ~[[tc-edit-fields tc-edit-fields-small]] }}}>\n<tbody>\n<$list filter=\"[all[current]fields[]] +[sort[title]]\" variable=\"currentField\" storyview=\"pop\">\n<$list filter=<<config-filter>> variable=\"temp\">\n<tr class=\"tc-edit-field\">\n<td class=\"tc-edit-field-name\">\n<$text text=<<currentField>>/>:</td>\n<td class=\"tc-edit-field-value\">\n<$keyboard key=\"((delete-field))\" actions=\"\"\"<$action-deletefield $field=<<currentField>>/><$set name=\"currentTiddlerCSSescaped\" value={{{ [<currentTiddler>escapecss[]] }}}><$action-sendmessage $message=\"tm-focus-selector\" $param=<<current-tiddler-new-field-selector>>/></$set>\"\"\">\n<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} tabindex={{$:/config/EditTabIndex}} cancelPopups=\"yes\"/>\n</$keyboard>\n</td>\n<td class=\"tc-edit-field-remove\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>\n<$action-deletefield $field=<<currentField>>/><$set name=\"currentTiddlerCSSescaped\" value={{{ [<currentTiddler>escapecss[]] }}}><$action-sendmessage $message=\"tm-focus-selector\" $param=<<current-tiddler-new-field-selector>>/></$set>\n{{$:/core/images/delete-button}}\n</$button>\n</td>\n</tr>\n</$list>\n</$list>\n</tbody>\n</table>\n</div>\n\n<$fieldmangler>\n<div class=\"tc-edit-field-add\">\n<em class=\"tc-edit tc-big-gap-right\">\n<<lingo Fields/Add/Prompt>>\n</em>\n<$vars refreshTitle=<<qualify \"$:/temp/fieldname/refresh\">> storeTitle=<<newFieldNameInputTiddler>> searchListState=<<newFieldNameSelectionTiddler>>>\n<div class=\"tc-edit-field-add-name-wrapper\">\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<newFieldNameTiddler>> storeTitle=<<storeTitle>> refreshTitle=<<refreshTitle>>\n\t\tselectionStateTitle=<<searchListState>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}}\n\t\tfocusPopup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-edit-texteditor tc-popup-handle\" tabindex={{$:/config/EditTabIndex}}\n\t\tfocus={{{ [{$:/config/AutoFocus}match[fields]then[true]] ~[[false]] }}} cancelPopups=\"yes\"\n\t\tconfigTiddlerFilter=\"[[$:/config/EditMode/fieldname-filter]]\" inputCancelActions=<<cancel-search-actions>> />\n<$button popup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown tc-small-gap\" tooltip={{$:/language/EditTemplate/Field/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Field/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/field-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$linkcatcher to=<<newFieldNameTiddler>>>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/User>>\n</div>\n<$set name=\"newFieldName\" value={{{ [<storeTitle>get[text]] }}}>\n<$list filter=\"[!is[shadow]!is[system]fields[]search:title<newFieldName>sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type\"  variable=\"currentField\">\n<$list filter=\"[<currentField>addsuffix[-primaryList]] -[<searchListState>get[text]]\" emptyMessage=\"\"\"<$link to=<<currentField>> class=\"tc-list-item-selected\"><$text text=<<currentField>>/></$link>\"\"\">\n<$link to=<<currentField>>>\n<$text text=<<currentField>>/>\n</$link>\n</$list>\n</$list>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/System>>\n</div>\n<$list filter=\"[fields[]search:title<newFieldName>sort[]] -[!is[shadow]!is[system]fields[]]\" variable=\"currentField\">\n<$list filter=\"[<currentField>addsuffix[-secondaryList]] -[<searchListState>get[text]]\" emptyMessage=\"\"\"<$link to=<<currentField>> class=\"tc-list-item-selected\"><$text text=<<currentField>>/></$link>\"\"\">\n<$link to=<<currentField>>>\n<$text text=<<currentField>>/>\n</$link>\n</$list>\n</$list>\n</$set>\n</$linkcatcher>\n</$set>\n</div>\n</$reveal>\n</div>\n<span class=\"tc-edit-field-add-value tc-small-gap-right\">\n<$set name=\"currentTiddlerCSSescaped\" value={{{ [<currentTiddler>escapecss[]] }}}>\n<$keyboard key=\"((add-field))\" actions=<<new-field-actions>>>\n<$edit-text tiddler=<<newFieldValueTiddler>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class=\"tc-edit-texteditor\" tabindex={{$:/config/EditTabIndex}} cancelPopups=\"yes\"/>\n</$keyboard>\n</$set>\n</span>\n<span class=\"tc-edit-field-add-button\">\n<$macrocall $name=\"new-field\"/>\n</span>\n</$vars>\n</div>\n</$fieldmangler>\n"
        },
        "$:/core/ui/EditTemplate/shadow": {
            "title": "$:/core/ui/EditTemplate/shadow",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/EditTemplate/Shadow/\n\\define pluginLinkBody()\n<$link to=\"\"\"$(pluginTitle)$\"\"\">\n<$text text=\"\"\"$(pluginTitle)$\"\"\"/>\n</$link>\n\\end\n<$list filter=\"[all[current]get[draft.of]is[shadow]!is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>\n\n<$list filter=\"[all[current]get[draft.of]is[shadow]is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo OverriddenWarning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>"
        },
        "$:/core/ui/EditTemplate/tags": {
            "title": "$:/core/ui/EditTemplate/tags",
            "tags": "$:/tags/EditTemplate",
            "text": "\\whitespace trim\n\n\\define lingo-base() $:/language/EditTemplate/\n\n\\define tag-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-body-inner(colour,fallbackTarget,colourA,colourB,icon,tagField:\"tags\")\n\\whitespace trim\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<span style=<<tag-styles>> class=\"tc-tag-label tc-tag-list-item\">\n<$transclude tiddler=\"\"\"$icon$\"\"\"/><$view field=\"title\" format=\"text\" />\n<$button class=\"tc-btn-invisible tc-remove-tag-button\"><$action-listops $tiddler=<<saveTiddler>> $field=<<__tagField__>> $subfilter=\"-[{!!title}]\"/>{{$:/core/images/close-button}}</$button>\n</span>\n</$vars>\n\\end\n\n\\define tag-body(colour,palette,icon,tagField:\"tags\")\n<$macrocall $name=\"tag-body-inner\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} icon=\"\"\"$icon$\"\"\" tagField=<<__tagField__>>/>\n\\end\n\n\\define edit-tags-template(tagField:\"tags\")\n\\whitespace trim\n<div class=\"tc-edit-tags\">\n<$list filter=\"[list[!!$tagField$]sort[title]]\" storyview=\"pop\">\n<$macrocall $name=\"tag-body\" colour={{!!color}} palette={{$:/palette}} icon={{!!icon}} tagField=<<__tagField__>>/>\n</$list>\n<$vars tabIndex={{$:/config/EditTabIndex}} cancelPopups=\"yes\">\n<$macrocall $name=\"tag-picker\" tagField=<<__tagField__>>/>\n</$vars>\n</div>\n\\end\n<$set name=\"saveTiddler\" value=<<currentTiddler>>>\n<$macrocall $name=\"edit-tags-template\" tagField=<<tagField>>/>\n</$set>\n"
        },
        "$:/core/ui/EditTemplate/title": {
            "title": "$:/core/ui/EditTemplate/title",
            "tags": "$:/tags/EditTemplate",
            "text": "<$edit-text field=\"draft.title\" class=\"tc-titlebar tc-edit-texteditor\" focus={{{ [{$:/config/AutoFocus}match[title]then[true]] ~[[false]] }}} tabindex={{$:/config/EditTabIndex}} cancelPopups=\"yes\"/>\n\n<$vars pattern=\"\"\"[\\|\\[\\]{}]\"\"\" bad-chars=\"\"\"`| [ ] { }`\"\"\">\n\n<$list filter=\"[all[current]regexp:draft.title<pattern>]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/BadCharacterWarning}}\n\n</div>\n\n</$list>\n\n</$vars>\n\n<$reveal state=\"!!draft.title\" type=\"nomatch\" text={{!!draft.of}} tag=\"div\">\n\n<$list filter=\"[{!!draft.title}!is[missing]]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/Exists/Prompt}}\n\n</div>\n\n</$list>\n\n<$list filter=\"[{!!draft.of}!is[missing]]\" variable=\"listItem\">\n\n<$vars fromTitle={{!!draft.of}} toTitle={{!!draft.title}}>\n\n<$checkbox tiddler=\"$:/config/RelinkOnRename\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> {{$:/language/EditTemplate/Title/Relink/Prompt}}</$checkbox>\n\n<$list filter=\"[title<fromTitle>backlinks[]limit[1]]\" variable=\"listItem\">\n\n<$vars stateTiddler=<<qualify \"$:/state/edit/references\">> >\n\n<$reveal type=\"nomatch\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"show\" class=\"tc-btn-invisible\">{{$:/core/images/right-arrow}} \n<<lingo EditTemplate/Title/References/Prompt>></$button>\n</$reveal>\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"hide\" class=\"tc-btn-invisible\">{{$:/core/images/down-arrow}} \n<<lingo EditTemplate/Title/References/Prompt>></$button>\n</$reveal>\n\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$tiddler tiddler=<<fromTitle>> >\n<$transclude tiddler=\"$:/core/ui/TiddlerInfo/References\"/>\n</$tiddler>\n</$reveal>\n\n</$vars>\n\n</$list>\n\n</$vars>\n\n</$list>\n\n</$reveal>\n"
        },
        "$:/core/ui/EditTemplate/type": {
            "title": "$:/core/ui/EditTemplate/type",
            "tags": "$:/tags/EditTemplate",
            "first-search-filter": "[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]sort[description]sort[group-sort]removeprefix[$:/language/Docs/Types/]search<userInput>]",
            "text": "\\define lingo-base() $:/language/EditTemplate/\n\\define input-cancel-actions() <$list filter=\"[<storeTitle>get[text]] [<currentTiddler>get[type]] +[limit[1]]\" emptyMessage=\"\"\"<<cancel-delete-tiddler-actions \"cancel\">>\"\"\"><$action-sendmessage $message=\"tm-remove-field\" $param=\"type\"/><$action-deletetiddler $filter=\"[<typeInputTiddler>] [<refreshTitle>] [<typeSelectionTiddler>]\"/></$list>\n\\whitespace trim\n<$set name=\"refreshTitle\" value=<<qualify \"$:/temp/type-search/refresh\">>>\n<div class=\"tc-edit-type-selector-wrapper\">\n<em class=\"tc-edit tc-big-gap-right\"><<lingo Type/Prompt>></em>\n<div class=\"tc-type-selector-dropdown-wrapper\">\n<div class=\"tc-type-selector\"><$fieldmangler>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<currentTiddler>> storeTitle=<<typeInputTiddler>> refreshTitle=<<refreshTitle>> selectionStateTitle=<<typeSelectionTiddler>> field=\"type\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Type/Placeholder}} focusPopup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-edit-typeeditor tc-edit-texteditor tc-popup-handle\" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[type]then[true]] ~[[false]] }}} cancelPopups=\"yes\" configTiddlerFilter=\"[[$:/core/ui/EditTemplate/type]]\" inputCancelActions=<<input-cancel-actions>>/><$button popup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown tc-small-gap\" tooltip={{$:/language/EditTemplate/Type/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Type/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button><$button message=\"tm-remove-field\" param=\"type\" class=\"tc-btn-invisible tc-btn-icon\" tooltip={{$:/language/EditTemplate/Type/Delete/Hint}} aria-label={{$:/language/EditTemplate/Type/Delete/Caption}}>{{$:/core/images/delete-button}}<$action-deletetiddler $filter=\"[<storeTitle>] [<refreshTitle>] [<selectionStateTitle>]\"/></$button>\n</$fieldmangler></div>\n\n<div class=\"tc-block-dropdown-wrapper\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$reveal state=<<qualify \"$:/state/popup/type-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$linkcatcher to=\"!!type\">\n<$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]each[group]sort[group-sort]]'>\n<div class=\"tc-dropdown-item\">\n<$text text={{!!group}}/>\n</div>\n<$set name=\"userInput\" value={{{ [<typeInputTiddler>get[text]] }}}>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]group{!!group}] +[sort[description]] +[removeprefix[$:/language/Docs/Types/]] +[search<userInput>]\"><span class={{{ [<currentTiddler>addsuffix[-primaryList]] -[<typeSelectionTiddler>get[text]] +[then[]else[tc-list-item-selected]] }}}><$link to={{{ [<currentTiddler>addprefix[$:/language/Docs/Types/]get[name]] }}}><$view tiddler={{{ [<currentTiddler>addprefix[$:/language/Docs/Types/]] }}} field=\"description\"/> (<$view tiddler={{{ [<currentTiddler>addprefix[$:/language/Docs/Types/]] }}} field=\"name\"/>)</$link></span>\n</$list>\n</$set>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n</$set>\n</div>\n</div>\n</div>\n</$set>\n"
        },
        "$:/core/ui/EditTemplate": {
            "title": "$:/core/ui/EditTemplate",
            "text": "\\define delete-edittemplate-state-tiddlers() <$action-deletetiddler $filter=\"[<newFieldNameTiddler>] [<newFieldValueTiddler>] [<newFieldNameInputTiddler>] [<newFieldNameSelectionTiddler>] [<newTagNameTiddler>] [<newTagNameInputTiddler>] [<newTagNameSelectionTiddler>] [<typeInputTiddler>] [<typeSelectionTiddler>]\"/>\n\\define save-tiddler-actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{{ [<newTagNameTiddler>get[text]] }}}/>\n<$action-sendmessage $message=\"tm-add-field\" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<<delete-edittemplate-state-tiddlers>>\n<$action-sendmessage $message=\"tm-save-tiddler\"/>\n\\end\n\\define cancel-delete-tiddler-actions(message)\n<<delete-edittemplate-state-tiddlers>>\n<$action-sendmessage $message=\"tm-$message$-tiddler\"/>\n\\end\n<div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-edit-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}>\n<$fieldmangler>\n<$vars storyTiddler=<<currentTiddler>> newTagNameTiddler=<<qualify \"$:/temp/NewTagName\">> newFieldNameTiddler=<<qualify \"$:/temp/NewFieldName\">> newFieldValueTiddler=<<qualify \"$:/temp/NewFieldValue\">> newFieldNameInputTiddler=<<qualify \"$:/temp/NewFieldName/input\">> newFieldNameSelectionTiddler=<<qualify \"$:/temp/NewFieldName/selected-item\">> newTagNameInputTiddler=<<qualify \"$:/temp/NewTagName/input\">> newTagNameSelectionTiddler=<<qualify \"$:/temp/NewTagName/selected-item\">> typeInputTiddler=<<qualify \"$:/temp/Type/input\">> typeSelectionTiddler=<<qualify \"$:/temp/Type/selected-item\">>>\n<$keyboard key=\"((cancel-edit-tiddler))\" actions=<<cancel-delete-tiddler-actions \"cancel\">>>\n<$keyboard key=\"((save-tiddler))\" actions=<<save-tiddler-actions>>>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditTemplate]!has[draft.of]]\" variable=\"listItem\">\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n<$transclude tiddler=<<listItem>>/>\n</$set>\n</$list>\n</$keyboard>\n</$keyboard>\n</$vars>\n</$fieldmangler>\n</div>\n"
        },
        "$:/core/ui/Buttons/cancel": {
            "title": "$:/core/ui/Buttons/cancel",
            "tags": "$:/tags/EditToolbar",
            "caption": "{{$:/core/images/cancel-button}} {{$:/language/Buttons/Cancel/Caption}}",
            "description": "{{$:/language/Buttons/Cancel/Hint}}",
            "text": "\\whitespace trim\n<$button actions=<<cancel-delete-tiddler-actions \"cancel\">> tooltip={{$:/language/Buttons/Cancel/Hint}} aria-label={{$:/language/Buttons/Cancel/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/cancel-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Cancel/Caption}}/></span>\n</$list>\n</$button>\n"
        },
        "$:/core/ui/Buttons/delete": {
            "title": "$:/core/ui/Buttons/delete",
            "tags": "$:/tags/EditToolbar $:/tags/ViewToolbar",
            "caption": "{{$:/core/images/delete-button}} {{$:/language/Buttons/Delete/Caption}}",
            "description": "{{$:/language/Buttons/Delete/Hint}}",
            "text": "\\whitespace trim\n<$button actions=<<cancel-delete-tiddler-actions \"delete\">> tooltip={{$:/language/Buttons/Delete/Hint}} aria-label={{$:/language/Buttons/Delete/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/delete-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Delete/Caption}}/></span>\n</$list>\n</$button>\n"
        },
        "$:/core/ui/Buttons/save": {
            "title": "$:/core/ui/Buttons/save",
            "tags": "$:/tags/EditToolbar",
            "caption": "{{$:/core/images/done-button}} {{$:/language/Buttons/Save/Caption}}",
            "description": "{{$:/language/Buttons/Save/Hint}}",
            "text": "\\define save-tiddler-button()\n\\whitespace trim\n<$fieldmangler><$button tooltip={{$:/language/Buttons/Save/Hint}} aria-label={{$:/language/Buttons/Save/Caption}} class=<<tv-config-toolbar-class>>>\n<<save-tiddler-actions>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/done-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Save/Caption}}/></span>\n</$list>\n</$button></$fieldmangler>\n\\end\n<<save-tiddler-button>>\n"
        },
        "$:/core/ui/EditorToolbar/bold": {
            "title": "$:/core/ui/EditorToolbar/bold",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/bold",
            "caption": "{{$:/language/Buttons/Bold/Caption}}",
            "description": "{{$:/language/Buttons/Bold/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((bold))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"''\"\n\tsuffix=\"''\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/clear-dropdown": {
            "title": "$:/core/ui/EditorToolbar/clear-dropdown",
            "text": "''{{$:/language/Buttons/Clear/Hint}}''\n\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"clear\"\n\tcolour=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n\n</div>\n"
        },
        "$:/core/ui/EditorToolbar/clear": {
            "title": "$:/core/ui/EditorToolbar/clear",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/erase",
            "caption": "{{$:/language/Buttons/Clear/Caption}}",
            "description": "{{$:/language/Buttons/Clear/Hint}}",
            "condition": "[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]",
            "dropdown": "$:/core/ui/EditorToolbar/clear-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/editor-height-dropdown": {
            "title": "$:/core/ui/EditorToolbar/editor-height-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/EditorHeight/\n''<<lingo Hint>>''\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"auto\"> {{$:/core/images/auto-height}} <<lingo Caption/Auto>></$radio>\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"fixed\"> {{$:/core/images/fixed-height}} <<lingo Caption/Fixed>> <$edit-text tag=\"input\" tiddler=\"$:/config/TextEditor/EditorHeight/Height\" default=\"100px\"/></$radio>\n"
        },
        "$:/core/ui/EditorToolbar/editor-height": {
            "title": "$:/core/ui/EditorToolbar/editor-height",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/fixed-height",
            "custom-icon": "yes",
            "caption": "{{$:/language/Buttons/EditorHeight/Caption}}",
            "description": "{{$:/language/Buttons/EditorHeight/Hint}}",
            "condition": "[<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/]] [<targetTiddler>get[type]match[application/javascript]] [<targetTiddler>get[type]match[application/json]] [<targetTiddler>get[type]match[application/x-tiddler-dictionary]] [<targetTiddler>get[type]match[image/svg+xml]] +[first[]]",
            "dropdown": "$:/core/ui/EditorToolbar/editor-height-dropdown",
            "text": "<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n{{$:/core/images/fixed-height}}\n</$reveal>\n<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n{{$:/core/images/auto-height}}\n</$reveal>\n"
        },
        "$:/core/ui/EditorToolbar/excise-dropdown": {
            "title": "$:/core/ui/EditorToolbar/excise-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/Excise/\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<<lingo Caption/NewTitle>> <$edit-text tag=\"input\" tiddler=\"$config-title$/new-title\" default=\"\" focus=\"true\"/>\n\n<$set name=\"new-title\" value={{$config-title$/new-title}}>\n<$list filter=\"\"\"[<new-title>is[tiddler]]\"\"\">\n<div class=\"tc-error\">\n<<lingo Caption/TiddlerExists>>\n</div>\n</$list>\n</$set>\n\n<$checkbox tiddler=\"\"\"$config-title$/tagnew\"\"\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"false\"> <<lingo Caption/Tag>></$checkbox>\n\n<<lingo Caption/Replace>> <$select tiddler=\"\"\"$config-title$/type\"\"\" default=\"transclude\">\n<option value=\"link\"><<lingo Caption/Replace/Link>></option>\n<option value=\"transclude\"><<lingo Caption/Replace/Transclusion>></option>\n<option value=\"macro\"><<lingo Caption/Replace/Macro>></option>\n</$select>\n\n<$reveal state=\"\"\"$config-title$/type\"\"\" type=\"match\" text=\"macro\">\n<<lingo Caption/MacroName>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/macro-title\"\"\" default=\"translink\"/>\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"excise\"\n\ttitle={{$config-title$/new-title}}\n\ttype={{$config-title$/type}}\n\tmacro={{$config-title$/macro-title}}\n\ttagnew={{$config-title$/tagnew}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"$config-title$/new-title\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Excise>>\n</$button>\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Excise/\">>/>\n"
        },
        "$:/core/ui/EditorToolbar/excise": {
            "title": "$:/core/ui/EditorToolbar/excise",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/excise",
            "caption": "{{$:/language/Buttons/Excise/Caption}}",
            "description": "{{$:/language/Buttons/Excise/Hint}}",
            "condition": "[<targetTiddler>type[]] [<targetTiddler>type[text/vnd.tiddlywiki]] +[first[]]",
            "shortcuts": "((excise))",
            "dropdown": "$:/core/ui/EditorToolbar/excise-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/heading-1": {
            "title": "$:/core/ui/EditorToolbar/heading-1",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-1",
            "caption": "{{$:/language/Buttons/Heading1/Caption}}",
            "description": "{{$:/language/Buttons/Heading1/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "button-classes": "tc-text-editor-toolbar-item-start-group",
            "shortcuts": "((heading-1))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/heading-2": {
            "title": "$:/core/ui/EditorToolbar/heading-2",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-2",
            "caption": "{{$:/language/Buttons/Heading2/Caption}}",
            "description": "{{$:/language/Buttons/Heading2/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((heading-2))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"2\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/heading-3": {
            "title": "$:/core/ui/EditorToolbar/heading-3",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-3",
            "caption": "{{$:/language/Buttons/Heading3/Caption}}",
            "description": "{{$:/language/Buttons/Heading3/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((heading-3))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"3\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/heading-4": {
            "title": "$:/core/ui/EditorToolbar/heading-4",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-4",
            "caption": "{{$:/language/Buttons/Heading4/Caption}}",
            "description": "{{$:/language/Buttons/Heading4/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((heading-4))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"4\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/heading-5": {
            "title": "$:/core/ui/EditorToolbar/heading-5",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-5",
            "caption": "{{$:/language/Buttons/Heading5/Caption}}",
            "description": "{{$:/language/Buttons/Heading5/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((heading-5))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"5\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/heading-6": {
            "title": "$:/core/ui/EditorToolbar/heading-6",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-6",
            "caption": "{{$:/language/Buttons/Heading6/Caption}}",
            "description": "{{$:/language/Buttons/Heading6/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((heading-6))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"6\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/italic": {
            "title": "$:/core/ui/EditorToolbar/italic",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/italic",
            "caption": "{{$:/language/Buttons/Italic/Caption}}",
            "description": "{{$:/language/Buttons/Italic/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((italic))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"//\"\n\tsuffix=\"//\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/line-width-dropdown": {
            "title": "$:/core/ui/EditorToolbar/line-width-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/LineWidth/\n\n\\define toolbar-line-width-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(line-width)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/LineWidth\"\n\t$value=\"$(line-width)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; margin: 4px calc(80px - $(line-width)$); background-color: #000; width: calc(100px + $(line-width)$ * 2); height: $(line-width)$; border-radius: 120px; vertical-align: middle;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(line-width)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/LineWidth\" type=\"match\" text=\"\"\"$(line-width)$\"\"\" tag=\"span\">\n\n<$entity entity=\"&nbsp;\"/>\n\n<$entity entity=\"&#x2713;\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/LineWidths}} variable=\"line-width\">\n\n<<toolbar-line-width-inner>>\n\n</$list>\n"
        },
        "$:/core/ui/EditorToolbar/line-width": {
            "title": "$:/core/ui/EditorToolbar/line-width",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/line-width",
            "caption": "{{$:/language/Buttons/LineWidth/Caption}}",
            "description": "{{$:/language/Buttons/LineWidth/Hint}}",
            "condition": "[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]",
            "dropdown": "$:/core/ui/EditorToolbar/line-width-dropdown",
            "text": "<$text text={{$:/config/BitmapEditor/LineWidth}}/>\n"
        },
        "$:/core/ui/EditorToolbar/link-dropdown": {
            "title": "$:/core/ui/EditorToolbar/link-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/Link/\n\n\\define add-link-actions()\n<$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"make-link\" text={{$(linkTiddler)$}} />\n<$action-deletetiddler $filter=\"[<dropdown-state>] [<searchTiddler>] [<linkTiddler>] [<storeTitle>] [<searchListState>]\"/>\n\\end\n\n\\define get-focus-selector() [data-tiddler-title=\"$(cssEscapedTitle)$\"] .tc-create-wikitext-link input\n\n\\define cancel-search-actions-inner()\n<$set name=\"userInput\" value={{{ [<storeTitle>get[text]] }}}><$list filter=\"[<searchTiddler>get[text]!match<userInput>]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[<searchTiddler>] [<linkTiddler>] [<storeTitle>] [<searchListState>]\"/>\"\"\"><$action-setfield $tiddler=<<searchTiddler>> text=<<userInput>>/><$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/></$list></$set>\n\\end\n\n\\define cancel-search-actions() <$list filter=\"[<storeTitle>!has[text]] +[<searchTiddler>!has[text]]\" emptyMessage=\"\"\"<<cancel-search-actions-inner>>\"\"\"><$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"wrap-selection\" prefix=\"\" suffix=\"\"/></$list>\n\n\\define external-link()\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\" actions=<<add-link-actions>>>\n{{$:/core/images/chevron-right}}\n</$button>\n\\end\n\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab/search-results/sidebar\" tag=\"$:/tags/SearchResults\" beforeafter=\"$beforeafter$\" defaultState={{$:/config/SearchResults/Default}} actions=\"\"\"<$action-setfield $tiddler=\"$:/state/search/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<$vars searchTiddler=\"\"\"$config-title$/search\"\"\" linkTiddler=\"\"\"$config-title$/link\"\"\" linktext=\"\" searchListState=<<qualify \"$:/temp/link-search/selected-item\">> refreshTitle=<<qualify \"$:/temp/link-search/refresh\">> storeTitle=<<qualify \"$:/temp/link-search/input\">>>\n\n<$vars linkTiddler=<<searchTiddler>>>\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">> class=\"tc-create-wikitext-link\">\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<searchTiddler>> storeTitle=<<storeTitle>>\n\t\tselectionStateTitle=<<searchListState>> refreshTitle=<<refreshTitle>> type=\"search\" filterMinLength=\"1\"\n\t\ttag=\"input\" focus=\"true\" class=\"tc-popup-handle\" inputCancelActions=<<cancel-search-actions>> \n\t\tinputAcceptActions=<<add-link-actions>> placeholder={{$:/language/Search/Search}} default=\"\" \n\t\tconfigTiddlerFilter=\"[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]\" />\n</$keyboard>\n</$keyboard>\n<$reveal tag=\"span\" state=<<storeTitle>> type=\"nomatch\" text=\"\">\n<<external-link>>\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\">\n<<cancel-search-actions>><$set name=\"cssEscapedTitle\" value={{{ [<storyTiddler>escapecss[]] }}}><$action-sendmessage $message=\"tm-focus-selector\" $param=<<get-focus-selector>>/></$set>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</$vars>\n\n<$reveal tag=\"div\" state=<<storeTitle>> type=\"nomatch\" text=\"\">\n\n<$linkcatcher actions=<<add-link-actions>> to=<<linkTiddler>>>\n\n<$vars userInput={{{ [<storeTitle>get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}}>\n\n{{$:/core/ui/SearchResults}}\n\n</$vars>\n\n</$linkcatcher>\n\n</$reveal>\n\n</$vars>\n\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Link/\">>/>\n"
        },
        "$:/core/ui/EditorToolbar/link": {
            "title": "$:/core/ui/EditorToolbar/link",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/link",
            "caption": "{{$:/language/Buttons/Link/Caption}}",
            "description": "{{$:/language/Buttons/Link/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "button-classes": "tc-text-editor-toolbar-item-start-group",
            "shortcuts": "((link))",
            "dropdown": "$:/core/ui/EditorToolbar/link-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/linkify": {
            "title": "$:/core/ui/EditorToolbar/linkify",
            "caption": "{{$:/language/Buttons/Linkify/Caption}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "description": "{{$:/language/Buttons/Linkify/Hint}}",
            "icon": "$:/core/images/linkify",
            "list-before": "$:/core/ui/EditorToolbar/mono-block",
            "shortcuts": "((linkify))",
            "tags": "$:/tags/EditorToolbar",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"[[\"\n\tsuffix=\"]]\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/list-bullet": {
            "title": "$:/core/ui/EditorToolbar/list-bullet",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/list-bullet",
            "caption": "{{$:/language/Buttons/ListBullet/Caption}}",
            "description": "{{$:/language/Buttons/ListBullet/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((list-bullet))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"*\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/list-number": {
            "title": "$:/core/ui/EditorToolbar/list-number",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/list-number",
            "caption": "{{$:/language/Buttons/ListNumber/Caption}}",
            "description": "{{$:/language/Buttons/ListNumber/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((list-number))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/mono-block": {
            "title": "$:/core/ui/EditorToolbar/mono-block",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/mono-block",
            "caption": "{{$:/language/Buttons/MonoBlock/Caption}}",
            "description": "{{$:/language/Buttons/MonoBlock/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "button-classes": "tc-text-editor-toolbar-item-start-group",
            "shortcuts": "((mono-block))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n```\"\n\tsuffix=\"```\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/mono-line": {
            "title": "$:/core/ui/EditorToolbar/mono-line",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/mono-line",
            "caption": "{{$:/language/Buttons/MonoLine/Caption}}",
            "description": "{{$:/language/Buttons/MonoLine/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((mono-line))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"`\"\n\tsuffix=\"`\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/more-dropdown": {
            "title": "$:/core/ui/EditorToolbar/more-dropdown",
            "text": "\\define config-title()\n$:/config/EditorToolbarButtons/Visibility/$(toolbarItem)$\n\\end\n\n\\define conditional-button()\n<$list filter={{$(toolbarItem)$!!condition}} variable=\"condition\">\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\" mode=\"inline\"/> <$transclude tiddler=<<toolbarItem>> field=\"description\"/>\n</$list>\n\\end\n\n<div class=\"tc-text-editor-toolbar-more\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]] -[[$:/core/ui/EditorToolbar/more]]\">\n<$reveal type=\"match\" state=<<config-visibility-title>> text=\"hide\" tag=\"div\">\n<<conditional-button>>\n</$reveal>\n</$list>\n</div>\n"
        },
        "$:/core/ui/EditorToolbar/more": {
            "title": "$:/core/ui/EditorToolbar/more",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/down-arrow",
            "caption": "{{$:/language/Buttons/More/Caption}}",
            "description": "{{$:/language/Buttons/More/Hint}}",
            "condition": "[<targetTiddler>]",
            "dropdown": "$:/core/ui/EditorToolbar/more-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/opacity-dropdown": {
            "title": "$:/core/ui/EditorToolbar/opacity-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/Opacity/\n\n\\define toolbar-opacity-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(opacity)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Opacity\"\n\t$value=\"$(opacity)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(current-paint-colour)$; opacity: $(opacity)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(opacity)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/Opacity\" type=\"match\" text=\"\"\"$(opacity)$\"\"\" tag=\"span\">\n\n<$entity entity=\"&nbsp;\"/>\n\n<$entity entity=\"&#x2713;\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n\\define toolbar-opacity()\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/Opacities}} variable=\"opacity\">\n\n<<toolbar-opacity-inner>>\n\n</$list>\n\\end\n\n<$set name=\"current-paint-colour\" value={{$:/config/BitmapEditor/Colour}}>\n\n<$set name=\"current-opacity\" value={{$:/config/BitmapEditor/Opacity}}>\n\n<<toolbar-opacity>>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/EditorToolbar/opacity": {
            "title": "$:/core/ui/EditorToolbar/opacity",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/opacity",
            "caption": "{{$:/language/Buttons/Opacity/Caption}}",
            "description": "{{$:/language/Buttons/Opacity/Hint}}",
            "condition": "[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]",
            "dropdown": "$:/core/ui/EditorToolbar/opacity-dropdown",
            "text": "<$text text={{$:/config/BitmapEditor/Opacity}}/>\n"
        },
        "$:/core/ui/EditorToolbar/paint-dropdown": {
            "title": "$:/core/ui/EditorToolbar/paint-dropdown",
            "text": "''{{$:/language/Buttons/Paint/Hint}}''\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Colour\"\n\t$value=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"
        },
        "$:/core/ui/EditorToolbar/paint": {
            "title": "$:/core/ui/EditorToolbar/paint",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/paint",
            "caption": "{{$:/language/Buttons/Paint/Caption}}",
            "description": "{{$:/language/Buttons/Paint/Hint}}",
            "condition": "[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]",
            "dropdown": "$:/core/ui/EditorToolbar/paint-dropdown",
            "text": "\\define toolbar-paint()\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(colour-picker-value)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\\end\n<$set name=\"colour-picker-value\" value={{$:/config/BitmapEditor/Colour}}>\n<<toolbar-paint>>\n</$set>\n"
        },
        "$:/core/ui/EditorToolbar/picture-dropdown": {
            "title": "$:/core/ui/EditorToolbar/picture-dropdown",
            "text": "\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n''{{$:/language/Buttons/Picture/Hint}}''\n\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext=<<replacement-text>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"
        },
        "$:/core/ui/EditorToolbar/picture": {
            "title": "$:/core/ui/EditorToolbar/picture",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/picture",
            "caption": "{{$:/language/Buttons/Picture/Caption}}",
            "description": "{{$:/language/Buttons/Picture/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((picture))",
            "dropdown": "$:/core/ui/EditorToolbar/picture-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/preview-type-dropdown": {
            "title": "$:/core/ui/EditorToolbar/preview-type-dropdown",
            "text": "\\define preview-type-button()\n<$button tag=\"a\">\n\n<$action-setfield $tiddler=\"$:/state/editpreviewtype\" $value=\"$(previewType)$\"/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<previewType>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<previewType>> field=\"title\" mode=\"inline\"/>\n\n</$transclude> \n\n<$reveal tag=\"span\" state=\"$:/state/editpreviewtype\" type=\"match\" text=<<previewType>> default=\"$:/core/ui/EditTemplate/body/preview/output\">\n\n<$entity entity=\"&nbsp;\"/>\n\n<$entity entity=\"&#x2713;\"/>\n\n</$reveal>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]]\" variable=\"previewType\">\n\n<<preview-type-button>>\n\n</$list>\n"
        },
        "$:/core/ui/EditorToolbar/preview-type": {
            "title": "$:/core/ui/EditorToolbar/preview-type",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/chevron-down",
            "caption": "{{$:/language/Buttons/PreviewType/Caption}}",
            "description": "{{$:/language/Buttons/PreviewType/Hint}}",
            "condition": "[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]butfirst[]limit[1]]",
            "button-classes": "tc-text-editor-toolbar-item-adjunct",
            "dropdown": "$:/core/ui/EditorToolbar/preview-type-dropdown"
        },
        "$:/core/ui/EditorToolbar/preview": {
            "title": "$:/core/ui/EditorToolbar/preview",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/preview-open",
            "custom-icon": "yes",
            "caption": "{{$:/language/Buttons/Preview/Caption}}",
            "description": "{{$:/language/Buttons/Preview/Hint}}",
            "condition": "[<targetTiddler>]",
            "button-classes": "tc-text-editor-toolbar-item-start-group",
            "shortcuts": "((preview))",
            "text": "<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-open}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"no\"/>\n</$reveal>\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-closed}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"yes\"/>\n</$reveal>\n"
        },
        "$:/core/ui/EditorToolbar/quote": {
            "title": "$:/core/ui/EditorToolbar/quote",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/quote",
            "caption": "{{$:/language/Buttons/Quote/Caption}}",
            "description": "{{$:/language/Buttons/Quote/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((quote))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n<<<\"\n\tsuffix=\"<<<\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/rotate-left": {
            "title": "$:/core/ui/EditorToolbar/rotate-left",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/rotate-left",
            "caption": "{{$:/language/Buttons/RotateLeft/Caption}}",
            "description": "{{$:/language/Buttons/RotateLeft/Hint}}",
            "condition": "[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"rotate-left\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/size-dropdown": {
            "title": "$:/core/ui/EditorToolbar/size-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/Size/\n\n\\define toolbar-button-size-preset(config-title)\n<$set name=\"width\" filter=\"$(sizePair)$ +[first[]]\">\n\n<$set name=\"height\" filter=\"$(sizePair)$ +[last[]]\">\n\n<$button tag=\"a\">\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n\t$value=<<width>>\n/>\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n\t$value=<<height>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/presets-popup\"\"\"\n/>\n\n<$text text=<<width>>/> &times; <$text text=<<height>>/>\n\n</$button>\n\n</$set>\n\n</$set>\n\\end\n\n\\define toolbar-button-size(config-title)\n''{{$:/language/Buttons/Size/Hint}}''\n\n<<lingo Caption/Width>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-width\"\"\" default=<<tv-bitmap-editor-width>> focus=\"true\" size=\"8\"/> <<lingo Caption/Height>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-height\"\"\" default=<<tv-bitmap-editor-height>> size=\"8\"/> <$button popup=\"\"\"$config-title$/presets-popup\"\"\" class=\"tc-btn-invisible tc-popup-keep\" style=\"width: auto; display: inline-block; background-colour: inherit;\" selectedClass=\"tc-selected\">\n{{$:/core/images/down-arrow}}\n</$button>\n\n<$reveal tag=\"span\" state=\"\"\"$config-title$/presets-popup\"\"\" type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down tc-popup-keep\">\n\n<$list filter={{$:/config/BitmapEditor/ImageSizes}} variable=\"sizePair\">\n\n<$macrocall $name=\"toolbar-button-size-preset\" config-title=\"$config-title$\"/>\n\n</$list>\n\n</div>\n\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"resize\"\n\twidth={{$config-title$/new-width}}\n\theight={{$config-title$/new-height}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Resize>>\n</$button>\n\\end\n\n<$macrocall $name=\"toolbar-button-size\" config-title=<<qualify \"$:/state/Size/\">>/>\n"
        },
        "$:/core/ui/EditorToolbar/size": {
            "title": "$:/core/ui/EditorToolbar/size",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/size",
            "caption": "{{$:/language/Buttons/Size/Caption}}",
            "description": "{{$:/language/Buttons/Size/Hint}}",
            "condition": "[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]",
            "dropdown": "$:/core/ui/EditorToolbar/size-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/stamp-dropdown": {
            "title": "$:/core/ui/EditorToolbar/stamp-dropdown",
            "text": "\\define toolbar-button-stamp-inner()\n<$button tag=\"a\">\n\n<$list filter=\"[[$(snippetTitle)$]addsuffix[/prefix]is[missing]removesuffix[/prefix]addsuffix[/suffix]is[missing]]\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext={{$(snippetTitle)$}}\n/>\n\n</$list>\n\n\n<$list filter=\"[[$(snippetTitle)$]addsuffix[/prefix]is[missing]removesuffix[/prefix]addsuffix[/suffix]!is[missing]] [[$(snippetTitle)$]addsuffix[/prefix]!is[missing]removesuffix[/prefix]addsuffix[/suffix]is[missing]] [[$(snippetTitle)$]addsuffix[/prefix]!is[missing]removesuffix[/prefix]addsuffix[/suffix]!is[missing]]\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix={{{ [[$(snippetTitle)$]addsuffix[/prefix]get[text]] }}}\nsuffix={{{ [[$(snippetTitle)$]addsuffix[/suffix]get[text]] }}}\n/>\n\n</$list>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<snippetTitle>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<snippetTitle>> field=\"title\" />\n\n</$transclude>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TextEditor/Snippet]!has[draft.of]sort[caption]]\" variable=\"snippetTitle\">\n\n<<toolbar-button-stamp-inner>>\n\n</$list>\n\n----\n\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-new-tiddler\"\n\ttags=\"$:/tags/TextEditor/Snippet\"\n\tcaption={{$:/language/Buttons/Stamp/New/Title}}\n\ttext={{$:/language/Buttons/Stamp/New/Text}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<em>\n\n<$text text={{$:/language/Buttons/Stamp/Caption/New}}/>\n\n</em>\n\n</$button>\n"
        },
        "$:/core/ui/EditorToolbar/stamp": {
            "title": "$:/core/ui/EditorToolbar/stamp",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/stamp",
            "caption": "{{$:/language/Buttons/Stamp/Caption}}",
            "description": "{{$:/language/Buttons/Stamp/Hint}}",
            "condition": "[<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/]] [<targetTiddler>get[type]match[application/javascript]] [<targetTiddler>get[type]match[application/json]] [<targetTiddler>get[type]match[application/x-tiddler-dictionary]] [<targetTiddler>get[type]match[image/svg+xml]] +[first[]]",
            "shortcuts": "((stamp))",
            "dropdown": "$:/core/ui/EditorToolbar/stamp-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/strikethrough": {
            "title": "$:/core/ui/EditorToolbar/strikethrough",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/strikethrough",
            "caption": "{{$:/language/Buttons/Strikethrough/Caption}}",
            "description": "{{$:/language/Buttons/Strikethrough/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((strikethrough))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"~~\"\n\tsuffix=\"~~\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/subscript": {
            "title": "$:/core/ui/EditorToolbar/subscript",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/subscript",
            "caption": "{{$:/language/Buttons/Subscript/Caption}}",
            "description": "{{$:/language/Buttons/Subscript/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((subscript))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\",,\"\n\tsuffix=\",,\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/superscript": {
            "title": "$:/core/ui/EditorToolbar/superscript",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/superscript",
            "caption": "{{$:/language/Buttons/Superscript/Caption}}",
            "description": "{{$:/language/Buttons/Superscript/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((superscript))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"^^\"\n\tsuffix=\"^^\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/transcludify": {
            "title": "$:/core/ui/EditorToolbar/transcludify",
            "caption": "{{$:/language/Buttons/Transcludify/Caption}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "description": "{{$:/language/Buttons/Transcludify/Hint}}",
            "icon": "$:/core/images/transcludify",
            "list-before": "$:/core/ui/EditorToolbar/mono-block",
            "shortcuts": "((transcludify))",
            "tags": "$:/tags/EditorToolbar",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"{{\"\n\tsuffix=\"}}\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/underline": {
            "title": "$:/core/ui/EditorToolbar/underline",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/underline",
            "caption": "{{$:/language/Buttons/Underline/Caption}}",
            "description": "{{$:/language/Buttons/Underline/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((underline))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"__\"\n\tsuffix=\"__\"\n/>\n"
        },
        "$:/core/Filters/AllTags": {
            "title": "$:/core/Filters/AllTags",
            "tags": "$:/tags/Filter",
            "filter": "[tags[]!is[system]sort[title]]",
            "description": "{{$:/language/Filters/AllTags}}",
            "text": ""
        },
        "$:/core/Filters/AllTiddlers": {
            "title": "$:/core/Filters/AllTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[!is[system]sort[title]]",
            "description": "{{$:/language/Filters/AllTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/Drafts": {
            "title": "$:/core/Filters/Drafts",
            "tags": "$:/tags/Filter",
            "filter": "[has[draft.of]sort[title]]",
            "description": "{{$:/language/Filters/Drafts}}",
            "text": ""
        },
        "$:/core/Filters/Missing": {
            "title": "$:/core/Filters/Missing",
            "tags": "$:/tags/Filter",
            "filter": "[all[missing]sort[title]]",
            "description": "{{$:/language/Filters/Missing}}",
            "text": ""
        },
        "$:/core/Filters/Orphans": {
            "title": "$:/core/Filters/Orphans",
            "tags": "$:/tags/Filter",
            "filter": "[all[orphans]sort[title]]",
            "description": "{{$:/language/Filters/Orphans}}",
            "text": ""
        },
        "$:/core/Filters/OverriddenShadowTiddlers": {
            "title": "$:/core/Filters/OverriddenShadowTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[is[shadow]]",
            "description": "{{$:/language/Filters/OverriddenShadowTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/RecentSystemTiddlers": {
            "title": "$:/core/Filters/RecentSystemTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[has[modified]!sort[modified]limit[50]]",
            "description": "{{$:/language/Filters/RecentSystemTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/RecentTiddlers": {
            "title": "$:/core/Filters/RecentTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[!is[system]has[modified]!sort[modified]limit[50]]",
            "description": "{{$:/language/Filters/RecentTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/SessionTiddlers": {
            "title": "$:/core/Filters/SessionTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[haschanged[]]",
            "description": "{{$:/language/Filters/SessionTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/ShadowTiddlers": {
            "title": "$:/core/Filters/ShadowTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[all[shadows]sort[title]]",
            "description": "{{$:/language/Filters/ShadowTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/StoryList": {
            "title": "$:/core/Filters/StoryList",
            "tags": "$:/tags/Filter",
            "filter": "[list[$:/StoryList]] -$:/AdvancedSearch",
            "description": "{{$:/language/Filters/StoryList}}",
            "text": ""
        },
        "$:/core/Filters/SystemTags": {
            "title": "$:/core/Filters/SystemTags",
            "tags": "$:/tags/Filter",
            "filter": "[all[shadows+tiddlers]tags[]is[system]sort[title]]",
            "description": "{{$:/language/Filters/SystemTags}}",
            "text": ""
        },
        "$:/core/Filters/SystemTiddlers": {
            "title": "$:/core/Filters/SystemTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[is[system]sort[title]]",
            "description": "{{$:/language/Filters/SystemTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/TypedTiddlers": {
            "title": "$:/core/Filters/TypedTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[!is[system]has[type]each[type]sort[type]] -[type[text/vnd.tiddlywiki]]",
            "description": "{{$:/language/Filters/TypedTiddlers}}",
            "text": ""
        },
        "$:/core/ui/ImportListing": {
            "title": "$:/core/ui/ImportListing",
            "text": "\\define lingo-base() $:/language/Import/\n\n\\define messageField() message-$(payloadTiddler)$\n\n\\define payloadTitleFilter() [<currentTiddler>get<renameField>minlength[1]else<payloadTiddler>]\n\n\\define overWriteWarning()\n<$list filter=\"[<currentTiddler>!has<suppressedField>]\">\n<$text text={{{[subfilter<payloadTitleFilter>!is[tiddler]then[]] ~[<lingo-base>addsuffix[Listing/Rename/OverwriteWarning]get[text]]}}}/>\n</$list>\n\\end\n\n\\define selectionField() selection-$(payloadTiddler)$\n\n\\define renameField() rename-$(payloadTiddler)$\n\n\\define suppressedField() suppressed-$(payloadTiddler)$\n\n\\define newImportTitleTiddler() $:/temp/NewImportTitle-$(payloadTiddler)$\n\n\\define previewPopupState() $(currentTiddler)$!!popup-$(payloadTiddler)$\n\n\\define renameFieldState() $(currentTiddler)$!!state-rename-$(payloadTiddler)$\n\n\\define select-all-actions()\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<$action-setfield $field={{{ [<payloadTiddler>addprefix[selection-]] }}} $value={{$:/state/import/select-all}}/>\n</$list>\n\\end\n\n<table class=\"tc-import-table\">\n<tbody>\n<tr>\n<th align=\"left\">\n<$checkbox tiddler=\"$:/state/import/select-all\" field=\"text\" checked=\"checked\" unchecked=\"unchecked\" default=\"checked\" actions=<<select-all-actions>>>\n<<lingo Listing/Select/Caption>>\n</$checkbox>\n</th>\n<th>\n<<lingo Listing/Title/Caption>>\n</th>\n<th>\n<<lingo Listing/Status/Caption>>\n</th>\n</tr>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<tr class={{{[<currentTiddler>has<suppressedField>then[tc-row-disabled]] ~[subfilter<payloadTitleFilter>is[tiddler]then[tc-row-warning]] }}}>\n<td>\n<$checkbox field=<<selectionField>> checked=\"checked\" unchecked=\"unchecked\" default=\"checked\" disabled={{{[<currentTiddler>has<suppressedField>then[yes]else[no]]}}}/>\n</td>\n<td>\n<$reveal type=\"nomatch\" state=<<renameFieldState>> text=\"yes\" tag=\"div\">\n<$reveal type=\"nomatch\" state=<<previewPopupState>> text=\"yes\" tag=\"div\" class=\"tc-flex\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown tc-flex-grow-1 tc-word-break\" set=<<previewPopupState>> setTo=\"yes\" disabled={{{[<currentTiddler>has<suppressedField>then[yes]else[no]]}}}>\n<span class=\"tc-small-gap-right\">{{$:/core/images/right-arrow}}</span><$text text={{{[subfilter<payloadTitleFilter>]}}}/>\n</$button>\n<$list filter=\"[<currentTiddler>!has<suppressedField>]\"><$button class=\"tc-btn-invisible\" set=<<renameFieldState>> setTo=\"yes\" tooltip={{{[<lingo-base>addsuffix[Listing/Rename/Tooltip]get[text]]}}}>{{$:/core/images/edit-button}}</$button></$list>\n</$reveal>\n<$reveal type=\"match\" state=<<previewPopupState>> text=\"yes\" tag=\"div\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<previewPopupState>> setTo=\"no\">\n<span class=\"tc-small-gap-right\">{{$:/core/images/down-arrow}}</span><$text text={{{[subfilter<payloadTitleFilter>]}}}/>\n</$button>\n</$reveal>\n</$reveal>\n<$reveal type=\"match\" state=<<renameFieldState>> text=\"yes\" tag=\"div\">\n<$text text={{{[<lingo-base>addsuffix[Listing/Rename/Prompt]get[text]]}}}/>\n</$reveal>\n</td>\n<td>\n<$view field=<<messageField>>/>\n<<overWriteWarning>>\n</td>\n</tr>\n<$reveal type=\"match\" state=<<renameFieldState>> text=\"yes\" tag=\"tr\">\n<td colspan=\"3\">\n<div class=\"tc-flex\">\n<$edit-text tiddler=<<newImportTitleTiddler>>  default={{{[subfilter<payloadTitleFilter>]}}} tag=\"input\" class=\"tc-import-rename tc-flex-grow-1\"/><span class=\"tc-small-gap-left\"><$button  class=\"tc-btn-invisible\" set=<<renameFieldState>> setTo=\"no\" tooltip={{{[<lingo-base>addsuffix[Listing/Rename/CancelRename]get[text]]}}}>{{$:/core/images/close-button}}<$action-deletetiddler $tiddler=<<newImportTitleTiddler>>/></$button><span class=\"tc-small-gap-right\"/></span><$button  class=\"tc-btn-invisible\" set=<<renameFieldState>> setTo=\"no\" tooltip={{{[<lingo-base>addsuffix[Listing/Rename/ConfirmRename]get[text]]}}}>{{$:/core/images/done-button}}<$action-setfield $field=<<renameField>> $value={{{[<newImportTitleTiddler>get[text]minlength[1]else<payloadTiddler>]}}} /><$action-deletetiddler $tiddler=<<newImportTitleTiddler>>/></$button>\n</div>\n</td>\n</$reveal>\n<tr>\n<td colspan=\"3\">\n<$reveal type=\"match\" text=\"yes\" state=<<previewPopupState>> tag=\"div\">\n<$list filter=\"[{$:/state/importpreviewtype}has[text]]\" variable=\"listItem\" emptyMessage={{$:/core/ui/ImportPreviews/Text}}>\n<$transclude tiddler={{$:/state/importpreviewtype}}/>\n</$list>\n</$reveal>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/ImportPreviews/Diff": {
            "title": "$:/core/ui/ImportPreviews/Diff",
            "tags": "$:/tags/ImportPreview",
            "caption": "{{$:/language/Import/Listing/Preview/Diff}}",
            "text": "<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle=<<payloadTiddler>> destTiddlerTitle=<<currentTiddler>> destSubTiddlerTitle=<<payloadTiddler>>/>\n"
        },
        "$:/core/ui/ImportPreviews/DiffFields": {
            "title": "$:/core/ui/ImportPreviews/DiffFields",
            "tags": "$:/tags/ImportPreview",
            "caption": "{{$:/language/Import/Listing/Preview/DiffFields}}",
            "text": "<$macrocall $name=\"compareTiddlers\" sourceTiddlerTitle=<<payloadTiddler>> destTiddlerTitle=<<currentTiddler>> destSubTiddlerTitle=<<payloadTiddler>> exclude=\"text\"/>\n"
        },
        "$:/core/ui/ImportPreviews/Fields": {
            "title": "$:/core/ui/ImportPreviews/Fields",
            "tags": "$:/tags/ImportPreview",
            "caption": "{{$:/language/Import/Listing/Preview/Fields}}",
            "text": "<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[<payloadTiddler>subtiddlerfields<currentTiddler>sort[]] -text\" variable=\"fieldName\">\n<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<fieldName>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<fieldName>> tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>>/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/ImportPreviews/Text": {
            "title": "$:/core/ui/ImportPreviews/Text",
            "tags": "$:/tags/ImportPreview",
            "caption": "{{$:/language/Import/Listing/Preview/Text}}",
            "text": "<$transclude tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>> mode=\"block\"/>\n"
        },
        "$:/core/ui/ImportPreviews/TextRaw": {
            "title": "$:/core/ui/ImportPreviews/TextRaw",
            "tags": "$:/tags/ImportPreview",
            "caption": "{{$:/language/Import/Listing/Preview/TextRaw}}",
            "text": "<pre><code><$view tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>> /></code></pre>"
        },
        "$:/core/ui/KeyboardShortcuts/advanced-search": {
            "title": "$:/core/ui/KeyboardShortcuts/advanced-search",
            "tags": "$:/tags/KeyboardShortcut",
            "key": "((advanced-search))",
            "text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\"[data-tiddler-title=\"$:/AdvancedSearch\"] .tc-search input\"\"\" preventScroll=\"true\"/>\n</$navigator>\n"
        },
        "$:/core/ui/KeyboardShortcuts/change-sidebar-layout": {
            "title": "$:/core/ui/KeyboardShortcuts/change-sidebar-layout",
            "tags": "$:/tags/KeyboardShortcut",
            "key": "((change-sidebar-layout))",
            "text": "<$list filter=\"[{$:/themes/tiddlywiki/vanilla/options/sidebarlayout}match[fixed-fluid]]\" \nemptyMessage=\"\"\"<$action-setfield $tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" text=\"fixed-fluid\"/>\"\"\">\n<$action-setfield $tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" text=\"fluid-fixed\"/>\n</$list>\n"
        },
        "$:/core/ui/KeyboardShortcuts/new-image": {
            "title": "$:/core/ui/KeyboardShortcuts/new-image",
            "tags": "$:/tags/KeyboardShortcut",
            "key": "((new-image))",
            "text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-image}}\n</$navigator>\n"
        },
        "$:/core/ui/KeyboardShortcuts/new-journal": {
            "title": "$:/core/ui/KeyboardShortcuts/new-journal",
            "tags": "$:/tags/KeyboardShortcut",
            "key": "((new-journal))",
            "text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-journal}}\n</$navigator>\n"
        },
        "$:/core/ui/KeyboardShortcuts/new-tiddler": {
            "title": "$:/core/ui/KeyboardShortcuts/new-tiddler",
            "tags": "$:/tags/KeyboardShortcut",
            "key": "((new-tiddler))",
            "text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-tiddler}}\n</$navigator>\n"
        },
        "$:/core/ui/KeyboardShortcuts/save-wiki": {
            "title": "$:/core/ui/KeyboardShortcuts/save-wiki",
            "tags": "$:/tags/KeyboardShortcut",
            "key": "((save-wiki))",
            "text": "<$wikify name=\"site-title\" text={{$:/config/SaveWikiButton/Filename}}>\n<$action-sendmessage $message=\"tm-save-wiki\" $param={{$:/config/SaveWikiButton/Template}} filename=<<site-title>>/>\n</$wikify>\n"
        },
        "$:/core/ui/KeyboardShortcuts/sidebar-search": {
            "title": "$:/core/ui/KeyboardShortcuts/sidebar-search",
            "tags": "$:/tags/KeyboardShortcut",
            "key": "((sidebar-search))",
            "text": "<$action-sendmessage $message=\"tm-focus-selector\" $param=\".tc-search input\"/>\n"
        },
        "$:/core/ui/KeyboardShortcuts/switcher": {
            "title": "$:/core/ui/KeyboardShortcuts/switcher",
            "tags": "$:/tags/KeyboardShortcut",
            "key": "((layout-switcher))",
            "text": "<$action-sendmessage $message=\"tm-show-switcher\" switch=\"layout\"/>"
        },
        "$:/core/ui/KeyboardShortcuts/toggle-sidebar": {
            "title": "$:/core/ui/KeyboardShortcuts/toggle-sidebar",
            "tags": "$:/tags/KeyboardShortcut",
            "key": "((toggle-sidebar))",
            "text": "<$list filter=\"[[$:/state/sidebar]is[missing]] [{$:/state/sidebar}removeprefix[yes]]\" emptyMessage=\"\"\"\n<$action-setfield $tiddler=\"$:/state/sidebar\" text=\"yes\"/>\n\"\"\">\n<$action-setfield $tiddler=\"$:/state/sidebar\" text=\"no\"/>\n</$list>\n"
        },
        "$:/snippets/LayoutSwitcher": {
            "title": "$:/snippets/LayoutSwitcher",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ControlPanel/LayoutSwitcher/Caption}}",
            "text": "<$linkcatcher to=\"$:/layout\">\n<div class=\"tc-chooser\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/Layout]] [[$:/core/ui/PageTemplate]] +[!is[draft]sort[name]]\">\n<$list filter=\"[{$:/layout}!has[text]]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$set name=\"cls\" filter=\"[all[current]field:title{$:/layout}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$transclude field=\"name\"/>'' - <$transclude field=\"description\"/></$link></div>\n</$set>\n\"\"\">\n<$set name=\"cls\" filter=\"[all[current]field:title[$:/core/ui/PageTemplate]]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$transclude field=\"name\"/>'' - <$transclude field=\"description\"/></$link></div>\n</$set>\n</$list>\n</$list>\n</div>\n</$linkcatcher>\n"
        },
        "$:/core/ui/ListItemTemplate": {
            "title": "$:/core/ui/ListItemTemplate",
            "text": "<div class=\"tc-menu-list-item\">\n<$link />\n</div>"
        },
        "$:/Manager/ItemMain/Fields": {
            "title": "$:/Manager/ItemMain/Fields",
            "tags": "$:/tags/Manager/ItemMain",
            "caption": "{{$:/language/Manager/Item/Fields}}",
            "text": "<table>\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
        },
        "$:/Manager/ItemMain/RawText": {
            "title": "$:/Manager/ItemMain/RawText",
            "tags": "$:/tags/Manager/ItemMain",
            "caption": "{{$:/language/Manager/Item/RawText}}",
            "text": "<pre><code><$view/></code></pre>\n"
        },
        "$:/Manager/ItemMain/WikifiedText": {
            "title": "$:/Manager/ItemMain/WikifiedText",
            "tags": "$:/tags/Manager/ItemMain",
            "caption": "{{$:/language/Manager/Item/WikifiedText}}",
            "text": "<$transclude mode=\"block\"/>\n"
        },
        "$:/Manager/ItemSidebar/Colour": {
            "title": "$:/Manager/ItemSidebar/Colour",
            "tags": "$:/tags/Manager/ItemSidebar",
            "caption": "{{$:/language/Manager/Item/Colour}}",
            "text": "\\define swatch-styles()\nheight: 1em;\nbackground-color: $(colour)$\n\\end\n\n<$vars colour={{!!color}}>\n<p style=<<swatch-styles>>/>\n</$vars>\n<p>\n<$edit-text field=\"color\" tag=\"input\" type=\"color\"/> / <$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/>\n</p>\n"
        },
        "$:/Manager/ItemSidebar/Icon": {
            "title": "$:/Manager/ItemSidebar/Icon",
            "tags": "$:/tags/Manager/ItemSidebar",
            "caption": "{{$:/language/Manager/Item/Icon}}",
            "text": "<p>\n<div class=\"tc-manager-icon-editor\">\n<$button popup=<<qualify \"$:/state/popup/image-picker\">> class=\"tc-btn-invisible\">\n<$transclude tiddler={{!!icon}}>\n{{$:/language/Manager/Item/Icon/None}}\n</$transclude>\n</$button>\n<div class=\"tc-block-dropdown-wrapper\" style=\"position: static;\">\n<$reveal state=<<qualify \"$:/state/popup/image-picker\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-popup\">\n<div class=\"tc-block-dropdown tc-popup-keep\" style=\"width: 80%; left: 10%; right: 10%; padding: 0.5em;\">\n<$macrocall $name=\"image-picker-include-tagged-images\" actions=\"\"\"\n<$action-setfield $field=\"icon\" $value=<<imageTitle>>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/image-picker\">>/>\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n</div>\n</p>\n"
        },
        "$:/Manager/ItemSidebar/Tags": {
            "title": "$:/Manager/ItemSidebar/Tags",
            "tags": "$:/tags/Manager/ItemSidebar",
            "caption": "{{$:/language/Manager/Item/Tags}}",
            "text": "\\whitespace trim\n\\define tag-checkbox-actions()\n<$action-listops\n\t$tiddler=\"$:/config/Manager/RecentTags\"\n\t$subfilter=\"[<tag>] [list[$:/config/Manager/RecentTags]] +[limit[12]]\"\n/>\n\\end\n\n\\define tag-picker-actions()\n<<tag-checkbox-actions>>\n\\end\n\n<p>\n<$list filter=\"[all[current]tags[]] [list[$:/config/Manager/RecentTags]] +[sort[title]] \" variable=\"tag\" storyview=\"pop\">\n<div>\n<$checkbox tiddler=<<currentTiddler>> tag=<<tag>> actions=<<tag-checkbox-actions>>>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$checkbox>\n</div>\n</$list>\n</p>\n<p>\n<$fieldmangler>\n<$macrocall $name=\"tag-picker\" actions=<<tag-picker-actions>>/>\n</$fieldmangler>\n</p>\n"
        },
        "$:/Manager/ItemSidebar/Tools": {
            "title": "$:/Manager/ItemSidebar/Tools",
            "tags": "$:/tags/Manager/ItemSidebar",
            "caption": "{{$:/language/Manager/Item/Tools}}",
            "text": "<p>\n<$button to=<<currentTiddler>>>{{$:/core/images/link}} open</$button>\n</p>\n<p>\n<$button message=\"tm-edit-tiddler\" param=<<currentTiddler>>>{{$:/core/images/edit-button}} edit</$button>\n</p>\n"
        },
        "$:/Manager": {
            "title": "$:/Manager",
            "icon": "$:/core/images/list",
            "color": "#bbb",
            "text": "\\define lingo-base() $:/language/Manager/\n\n\\define list-item-content-item()\n<div class=\"tc-manager-list-item-content-item\">\n\t<$vars state-title=\"\"\"$:/state/popup/manager/item/$(listItem)$\"\"\">\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"hide\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/down-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"nomatch\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"show\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/right-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\" class=\"tc-manager-list-item-content-item-body\">\n\t\t\t<$transclude tiddler=<<listItem>>/>\n\t\t</$reveal>\n\t</$vars>\n</div>\n\\end\n\n<div class=\"tc-manager-wrapper\">\n\t<div class=\"tc-manager-controls\">\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Show/Prompt>> <$select tiddler=\"$:/config/Manager/Show\" default=\"tiddlers\">\n\t\t\t\t<option value=\"tiddlers\"><<lingo Controls/Show/Option/Tiddlers>></option>\n\t\t\t\t<option value=\"tags\"><<lingo Controls/Show/Option/Tags>></option>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Search/Prompt>> <$edit-text tiddler=\"$:/config/Manager/Filter\" tag=\"input\" default=\"\" placeholder={{$:/language/Manager/Controls/Search/Placeholder}}/>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/FilterByTag/Prompt>> <$select tiddler=\"$:/config/Manager/Tag\" default=\"\">\n\t\t\t\t<option value=\"\"><<lingo Controls/FilterByTag/None>></option>\n\t\t\t\t<$list filter=\"[!is{$:/config/Manager/System}tags[]!is[system]sort[title]]\" variable=\"tag\">\n\t\t\t\t\t<option value=<<tag>>><$text text=<<tag>>/></option>\n\t\t\t\t</$list>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Sort/Prompt>> <$select tiddler=\"$:/config/Manager/Sort\" default=\"title\">\n\t\t\t\t<optgroup label=\"Common\">\n\t\t\t\t\t<$list filter=\"title modified modifier created creator created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t\t<optgroup label=\"All\">\n\t\t\t\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}fields[]sort[title]] -title -modified -modifier -created -creator -created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t</$select>\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/Order\" field=\"text\" checked=\"reverse\" unchecked=\"forward\" default=\"forward\">\n\t\t\t\t<<lingo Controls/Order/Prompt>>\n\t\t\t</$checkbox>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/System\" field=\"text\" checked=\"\" unchecked=\"system\" default=\"system\">\n\t\t\t\t{{$:/language/SystemTiddlers/Include/Prompt}}\n\t\t\t</$checkbox>\n\t\t</div>\n\t</div>\n\t<div class=\"tc-manager-list\">\n\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}search{$:/config/Manager/Filter}tag:strict{$:/config/Manager/Tag}sort{$:/config/Manager/Sort}order{$:/config/Manager/Order}]\">\n\t\t\t<$vars transclusion=<<currentTiddler>>>\n\t\t\t\t<div style=\"tc-manager-list-item\">\n\t\t\t\t\t<$button popup=<<qualify \"$:/state/manager/popup\">> class=\"tc-btn-invisible tc-manager-list-item-heading\" selectedClass=\"tc-manager-list-item-heading-selected\">\n\t\t\t\t\t\t<$text text=<<currentTiddler>>/>\n\t\t\t\t\t</$button>\n\t\t\t\t\t<$reveal state=<<qualify \"$:/state/manager/popup\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-manager-list-item-content tc-popup-handle\">\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-tiddler\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemMain]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-sidebar\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemSidebar]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</$reveal>\n\t\t\t\t</div>\n\t\t\t</$vars>\n\t\t</$list>\n\t</div>\n</div>\n"
        },
        "$:/core/ui/MissingTemplate": {
            "title": "$:/core/ui/MissingTemplate",
            "text": "<div class=\"tc-tiddler-missing\">\n<$button popup=<<qualify \"$:/state/popup/missing\">> class=\"tc-btn-invisible tc-missing-tiddler-label\">\n<$view field=\"title\" format=\"text\" />\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/missing\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n<hr>\n<$list filter=\"[all[current]backlinks[]sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n</div>\n"
        },
        "$:/core/ui/MoreSideBar/All": {
            "title": "$:/core/ui/MoreSideBar/All",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/All/Caption}}",
            "text": "<$list filter={{$:/core/Filters/AllTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Drafts": {
            "title": "$:/core/ui/MoreSideBar/Drafts",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Drafts/Caption}}",
            "text": "<$list filter={{$:/core/Filters/Drafts!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Explorer": {
            "title": "$:/core/ui/MoreSideBar/Explorer",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Explorer/Caption}}",
            "text": "<<tree \"$:/\">>\n"
        },
        "$:/core/ui/MoreSideBar/Missing": {
            "title": "$:/core/ui/MoreSideBar/Missing",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Missing/Caption}}",
            "text": "<$list filter={{$:/core/Filters/Missing!!filter}} template=\"$:/core/ui/MissingTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Orphans": {
            "title": "$:/core/ui/MoreSideBar/Orphans",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Orphans/Caption}}",
            "text": "<$list filter={{$:/core/Filters/Orphans!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Plugins": {
            "title": "$:/core/ui/MoreSideBar/Plugins",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
            "text": "\n{{$:/language/ControlPanel/Plugins/Installed/Hint}}\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar/Plugins]!has[draft.of]]\" default=\"$:/core/ui/MoreSideBar/Plugins/Plugins\" explicitState=\"$:/state/tab-1163638994\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Recent": {
            "title": "$:/core/ui/MoreSideBar/Recent",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Recent/Caption}}",
            "text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
        },
        "$:/core/ui/MoreSideBar/Shadows": {
            "title": "$:/core/ui/MoreSideBar/Shadows",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Shadows/Caption}}",
            "text": "<$list filter={{$:/core/Filters/ShadowTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/System": {
            "title": "$:/core/ui/MoreSideBar/System",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/System/Caption}}",
            "text": "<$list filter={{$:/core/Filters/SystemTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Tags": {
            "title": "$:/core/ui/MoreSideBar/Tags",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Tags/Caption}}",
            "text": "<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n{{$:/core/ui/Buttons/tag-manager}}\n\n</$set>\n\n</$set>\n\n</$set>\n\n<$list filter={{$:/core/Filters/AllTags!!filter}}>\n\n<$transclude tiddler=\"$:/core/ui/TagTemplate\"/>\n\n</$list>\n\n<hr class=\"tc-untagged-separator\">\n\n{{$:/core/ui/UntaggedTemplate}}\n"
        },
        "$:/core/ui/MoreSideBar/Types": {
            "title": "$:/core/ui/MoreSideBar/Types",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Types/Caption}}",
            "text": "<$list filter={{$:/core/Filters/TypedTiddlers!!filter}}>\n<div class=\"tc-menu-list-item\">\n<$view field=\"type\"/>\n<$list filter=\"[type{!!type}!is[system]sort[title]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><$view field=\"title\"/></$link>\n</div>\n</$list>\n</div>\n</$list>\n"
        },
        "$:/core/ui/MoreSideBar/Plugins/Languages": {
            "title": "$:/core/ui/MoreSideBar/Plugins/Languages",
            "tags": "$:/tags/MoreSideBar/Plugins",
            "caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}}",
            "text": "<$list filter=\"[!has[draft.of]plugin-type[language]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
        },
        "$:/core/ui/MoreSideBar/Plugins/Plugins": {
            "title": "$:/core/ui/MoreSideBar/Plugins/Plugins",
            "tags": "$:/tags/MoreSideBar/Plugins",
            "caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}}",
            "text": "<$list filter=\"[!has[draft.of]plugin-type[plugin]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}>>/>\n"
        },
        "$:/core/ui/MoreSideBar/Plugins/Theme": {
            "title": "$:/core/ui/MoreSideBar/Plugins/Theme",
            "tags": "$:/tags/MoreSideBar/Plugins",
            "caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}}",
            "text": "<$list filter=\"[!has[draft.of]plugin-type[theme]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
        },
        "$:/core/ui/Buttons/advanced-search": {
            "title": "$:/core/ui/Buttons/advanced-search",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/advanced-search-button}} {{$:/language/Buttons/AdvancedSearch/Caption}}",
            "description": "{{$:/language/Buttons/AdvancedSearch/Hint}}",
            "text": "\\whitespace trim\n\\define advanced-search-button(class)\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/advanced-search-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/AdvancedSearch/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/AdvancedSearch]]\" emptyMessage=<<advanced-search-button>>>\n<<advanced-search-button \"tc-selected\">>\n</$list>\n"
        },
        "$:/core/ui/Buttons/close-all": {
            "title": "$:/core/ui/Buttons/close-all",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/close-all-button}} {{$:/language/Buttons/CloseAll/Caption}}",
            "description": "{{$:/language/Buttons/CloseAll/Hint}}",
            "text": "<$button message=\"tm-close-all-tiddlers\" tooltip={{$:/language/Buttons/CloseAll/Hint}} aria-label={{$:/language/Buttons/CloseAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/CloseAll/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/control-panel": {
            "title": "$:/core/ui/Buttons/control-panel",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/options-button}} {{$:/language/Buttons/ControlPanel/Caption}}",
            "description": "{{$:/language/Buttons/ControlPanel/Hint}}",
            "text": "\\whitespace trim\n\\define control-panel-button(class)\n<$button to=\"$:/ControlPanel\" tooltip={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/options-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/ControlPanel/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/ControlPanel]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
        },
        "$:/core/ui/Buttons/encryption": {
            "title": "$:/core/ui/Buttons/encryption",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/locked-padlock}} {{$:/language/Buttons/Encryption/Caption}}",
            "description": "{{$:/language/Buttons/Encryption/Hint}}",
            "text": "\\whitespace trim\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-clear-password\" tooltip={{$:/language/Buttons/Encryption/ClearPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/ClearPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/locked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/ClearPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-set-password\" tooltip={{$:/language/Buttons/Encryption/SetPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/SetPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/unlocked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/SetPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n"
        },
        "$:/core/ui/Buttons/export-page": {
            "title": "$:/core/ui/Buttons/export-page",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportPage/Caption}}",
            "description": "{{$:/language/Buttons/ExportPage/Hint}}",
            "text": "<$macrocall $name=\"exportButton\" exportFilter=\"[!is[system]sort[title]]\" lingoBase=\"$:/language/Buttons/ExportPage/\"/>"
        },
        "$:/core/ui/Buttons/fold-all": {
            "title": "$:/core/ui/Buttons/fold-all",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/fold-all-button}} {{$:/language/Buttons/FoldAll/Caption}}",
            "description": "{{$:/language/Buttons/FoldAll/Hint}}",
            "text": "<$button tooltip={{$:/language/Buttons/FoldAll/Hint}} aria-label={{$:/language/Buttons/FoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FoldAll/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/full-screen": {
            "title": "$:/core/ui/Buttons/full-screen",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/full-screen-button}} {{$:/language/Buttons/FullScreen/Caption}}",
            "description": "{{$:/language/Buttons/FullScreen/Hint}}",
            "text": "<$button message=\"tm-full-screen\" tooltip={{$:/language/Buttons/FullScreen/Hint}} aria-label={{$:/language/Buttons/FullScreen/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/full-screen-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FullScreen/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/home": {
            "title": "$:/core/ui/Buttons/home",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/home-button}} {{$:/language/Buttons/Home/Caption}}",
            "description": "{{$:/language/Buttons/Home/Hint}}",
            "text": "<$button message=\"tm-home\" tooltip={{$:/language/Buttons/Home/Hint}} aria-label={{$:/language/Buttons/Home/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/home-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Home/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/import": {
            "title": "$:/core/ui/Buttons/import",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/import-button}} {{$:/language/Buttons/Import/Caption}}",
            "description": "{{$:/language/Buttons/Import/Hint}}",
            "text": "<div class=\"tc-file-input-wrapper\">\n<$button tooltip={{$:/language/Buttons/Import/Hint}} aria-label={{$:/language/Buttons/Import/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/import-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Import/Caption}}/></span>\n</$list>\n</$button>\n<$browse tooltip={{$:/language/Buttons/Import/Hint}}/>\n</div>"
        },
        "$:/core/ui/Buttons/language": {
            "title": "$:/core/ui/Buttons/language",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/globe}} {{$:/language/Buttons/Language/Caption}}",
            "description": "{{$:/language/Buttons/Language/Hint}}",
            "text": "\\whitespace trim\n\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/language\">> tooltip={{$:/language/Buttons/Language/Hint}} aria-label={{$:/language/Buttons/Language/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value={{$:/language}}>\n<$image source=<<flag-title>>/>\n</$set>\n</span>\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Language/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/language\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n{{$:/snippets/languageswitcher}}\n</div>\n</$reveal>\n"
        },
        "$:/core/ui/Buttons/manager": {
            "title": "$:/core/ui/Buttons/manager",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/list}} {{$:/language/Buttons/Manager/Caption}}",
            "description": "{{$:/language/Buttons/Manager/Hint}}",
            "text": "\\whitespace trim\n\\define manager-button(class)\n<$button to=\"$:/Manager\" tooltip={{$:/language/Buttons/Manager/Hint}} aria-label={{$:/language/Buttons/Manager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/list}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Manager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/Manager]]\" emptyMessage=<<manager-button>>>\n<<manager-button \"tc-selected\">>\n</$list>\n"
        },
        "$:/core/ui/Buttons/more-page-actions": {
            "title": "$:/core/ui/Buttons/more-page-actions",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
            "description": "{{$:/language/Buttons/More/Hint}}",
            "text": "\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/More/Caption}}/></span>\n</$list>\n</$button><$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"below\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]] -[[$:/core/ui/Buttons/more-page-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$set>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
        },
        "$:/core/ui/Buttons/new-image": {
            "title": "$:/core/ui/Buttons/new-image",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/new-image-button}} {{$:/language/Buttons/NewImage/Caption}}",
            "description": "{{$:/language/Buttons/NewImage/Hint}}",
            "text": "\\whitespace trim\n<$button tooltip={{$:/language/Buttons/NewImage/Hint}} aria-label={{$:/language/Buttons/NewImage/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-image}}>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-image-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewImage/Caption}}/></span>\n</$list>\n</$button>\n"
        },
        "$:/core/ui/Buttons/new-journal": {
            "title": "$:/core/ui/Buttons/new-journal",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournal/Caption}}",
            "description": "{{$:/language/Buttons/NewJournal/Hint}}",
            "text": "\\whitespace trim\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournal/Hint}} aria-label={{$:/language/Buttons/NewJournal/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-journal}}>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewJournal/Caption}}/></span>\n</$list>\n</$button>\n\\end\n<<journalButton>>\n"
        },
        "$:/core/ui/Buttons/new-tiddler": {
            "title": "$:/core/ui/Buttons/new-tiddler",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/new-button}} {{$:/language/Buttons/NewTiddler/Caption}}",
            "description": "{{$:/language/Buttons/NewTiddler/Hint}}",
            "text": "\\whitespace trim\n<$button actions={{$:/core/ui/Actions/new-tiddler}} tooltip={{$:/language/Buttons/NewTiddler/Hint}} aria-label={{$:/language/Buttons/NewTiddler/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewTiddler/Caption}}/></span>\n</$list>\n</$button>\n"
        },
        "$:/core/ui/Buttons/palette": {
            "title": "$:/core/ui/Buttons/palette",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/palette}} {{$:/language/Buttons/Palette/Caption}}",
            "description": "{{$:/language/Buttons/Palette/Hint}}",
            "text": "\\whitespace trim\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/palette\">> tooltip={{$:/language/Buttons/Palette/Hint}} aria-label={{$:/language/Buttons/Palette/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/palette}}\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Palette/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/palette\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\" style=\"font-size:0.7em;\">\n{{$:/snippets/paletteswitcher}}\n</div>\n</$reveal>\n"
        },
        "$:/core/ui/Buttons/print": {
            "title": "$:/core/ui/Buttons/print",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/print-button}} {{$:/language/Buttons/Print/Caption}}",
            "description": "{{$:/language/Buttons/Print/Hint}}",
            "text": "<$button message=\"tm-print\" tooltip={{$:/language/Buttons/Print/Hint}} aria-label={{$:/language/Buttons/Print/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/print-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Print/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/refresh": {
            "title": "$:/core/ui/Buttons/refresh",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/refresh-button}} {{$:/language/Buttons/Refresh/Caption}}",
            "description": "{{$:/language/Buttons/Refresh/Hint}}",
            "text": "<$button message=\"tm-browser-refresh\" tooltip={{$:/language/Buttons/Refresh/Hint}} aria-label={{$:/language/Buttons/Refresh/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/refresh-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Refresh/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/save-wiki": {
            "title": "$:/core/ui/Buttons/save-wiki",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/save-button}} {{$:/language/Buttons/SaveWiki/Caption}}",
            "description": "{{$:/language/Buttons/SaveWiki/Hint}}",
            "text": "<$button tooltip={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class=<<tv-config-toolbar-class>>>\n<$wikify name=\"site-title\" text={{$:/config/SaveWikiButton/Filename}}>\n<$action-sendmessage $message=\"tm-save-wiki\" $param={{$:/config/SaveWikiButton/Template}} filename=<<site-title>>/>\n</$wikify>\n<span class=\"tc-dirty-indicator\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/save-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/SaveWiki/Caption}}/></span>\n</$list>\n</span>\n</$button>"
        },
        "$:/core/ui/Buttons/storyview": {
            "title": "$:/core/ui/Buttons/storyview",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/storyview-classic}} {{$:/language/Buttons/StoryView/Caption}}",
            "description": "{{$:/language/Buttons/StoryView/Hint}}",
            "text": "\\whitespace trim\n\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/storyview\">> tooltip={{$:/language/Buttons/StoryView/Hint}} aria-label={{$:/language/Buttons/StoryView/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n<$set name=\"storyview\" value={{$:/view}}>\n<$transclude tiddler=<<icon>>/>\n</$set>\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/StoryView/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/storyview\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n{{$:/snippets/viewswitcher}}\n</div>\n</$reveal>\n"
        },
        "$:/core/ui/Buttons/tag-manager": {
            "title": "$:/core/ui/Buttons/tag-manager",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/tag-button}} {{$:/language/Buttons/TagManager/Caption}}",
            "description": "{{$:/language/Buttons/TagManager/Hint}}",
            "text": "\\whitespace trim\n\\define control-panel-button(class)\n<$button to=\"$:/TagManager\" tooltip={{$:/language/Buttons/TagManager/Hint}} aria-label={{$:/language/Buttons/TagManager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/tag-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/TagManager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/TagManager]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
        },
        "$:/core/ui/Buttons/theme": {
            "title": "$:/core/ui/Buttons/theme",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/theme-button}} {{$:/language/Buttons/Theme/Caption}}",
            "description": "{{$:/language/Buttons/Theme/Hint}}",
            "text": "\\whitespace trim\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/theme\">> tooltip={{$:/language/Buttons/Theme/Hint}} aria-label={{$:/language/Buttons/Theme/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/theme-button}}\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Theme/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/theme\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$:/theme\">\n{{$:/snippets/themeswitcher}}\n</$linkcatcher>\n</div>\n</$reveal>\n"
        },
        "$:/core/ui/Buttons/timestamp": {
            "title": "$:/core/ui/Buttons/timestamp",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/timestamp-on}} {{$:/language/Buttons/Timestamp/Caption}}",
            "description": "{{$:/language/Buttons/Timestamp/Hint}}",
            "text": "\\whitespace trim\n<$reveal type=\"nomatch\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/On/Hint}} aria-label={{$:/language/Buttons/Timestamp/On/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"yes\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/timestamp-on}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/On/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/Off/Hint}} aria-label={{$:/language/Buttons/Timestamp/Off/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"no\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/timestamp-off}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/Off/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n"
        },
        "$:/core/ui/Buttons/unfold-all": {
            "title": "$:/core/ui/Buttons/unfold-all",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/unfold-all-button}} {{$:/language/Buttons/UnfoldAll/Caption}}",
            "description": "{{$:/language/Buttons/UnfoldAll/Hint}}",
            "text": "<$button tooltip={{$:/language/Buttons/UnfoldAll/Hint}} aria-label={{$:/language/Buttons/UnfoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-unfold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/UnfoldAll/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/PageTemplate/pagecontrols": {
            "title": "$:/core/ui/PageTemplate/pagecontrols",
            "text": "\\whitespace trim\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-page-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n<$set name=\"hidden\" value=<<config-title>>>\n<$list filter=\"[<hidden>!text[hide]]\" storyview=\"pop\" variable=\"ignore\">\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n</$set>\n</$list>\n</$set>\n</$list>\n</div>\n"
        },
        "$:/core/ui/PageStylesheet": {
            "title": "$:/core/ui/PageStylesheet",
            "text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/PageTemplate/alerts": {
            "title": "$:/core/ui/PageTemplate/alerts",
            "tags": "$:/tags/PageTemplate",
            "text": "<div class=\"tc-alerts\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Alert]!has[draft.of]]\" template=\"$:/core/ui/AlertTemplate\" storyview=\"pop\"/>\n\n</div>\n"
        },
        "$:/core/ui/PageTemplate/drafts": {
            "title": "$:/core/ui/PageTemplate/drafts",
            "tags": "$:/tags/PageTemplate",
            "text": "\\whitespace trim\n<$reveal state=\"$:/status/IsReadOnly\" type=\"nomatch\" text=\"yes\" tag=\"div\" class=\"tc-drafts-list\">\n<$list filter=\"[has[draft.of]!sort[modified]] -[list[$:/StoryList]]\">\n<$link>\n{{$:/core/images/edit-button}} <$text text=<<currentTiddler>>/>\n</$link>\n</$list>\n</$reveal>\n"
        },
        "$:/core/ui/PageTemplate/pluginreloadwarning": {
            "title": "$:/core/ui/PageTemplate/pluginreloadwarning",
            "tags": "$:/tags/PageTemplate",
            "text": "\\define lingo-base() $:/language/\n\n<$list filter=\"[{$:/status/RequireReloadDueToPluginChange}match[yes]]\">\n\n<$reveal type=\"nomatch\" state=\"$:/temp/HidePluginWarning\" text=\"yes\">\n\n<div class=\"tc-plugin-reload-warning\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<<lingo PluginReloadWarning>> <$button set=\"$:/temp/HidePluginWarning\" setTo=\"yes\" class=\"tc-btn-invisible\">{{$:/core/images/close-button}}</$button>\n\n</$set>\n\n</div>\n\n</$reveal>\n\n</$list>\n"
        },
        "$:/core/ui/PageTemplate/sidebar": {
            "title": "$:/core/ui/PageTemplate/sidebar",
            "tags": "$:/tags/PageTemplate",
            "text": "\\whitespace trim\n\\define config-title()\n$:/config/SideBarSegments/Visibility/$(listItem)$\n\\end\n\n<$scrollable fallthrough=\"no\" class=\"tc-sidebar-scrollable\">\n\n<div class=\"tc-sidebar-header\">\n\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBarSegment]!has[draft.of]]\" variable=\"listItem\">\n\n<$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"  tag=\"div\">\n\n<$transclude tiddler=<<listItem>> mode=\"block\"/>\n\n</$reveal>\n\n</$list>\n\n</$reveal>\n\n</div>\n\n</$scrollable>\n"
        },
        "$:/core/ui/PageTemplate/story": {
            "title": "$:/core/ui/PageTemplate/story",
            "tags": "$:/tags/PageTemplate",
            "text": "\\whitespace trim\n<section class=\"tc-story-river\">\n\n<section class=\"story-backdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AboveStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n<$list filter=\"[list[$:/StoryList]]\" history=\"$:/HistoryList\" template={{$:/config/ui/ViewTemplate}} editTemplate={{$:/config/ui/EditTemplate}} storyview={{$:/view}} emptyMessage={{$:/config/EmptyStoryMessage}}/>\n\n<section class=\"story-frontdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/BelowStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n</section>\n"
        },
        "$:/core/ui/PageTemplate/topleftbar": {
            "title": "$:/core/ui/PageTemplate/topleftbar",
            "tags": "$:/tags/PageTemplate",
            "text": "<span class=\"tc-topbar tc-topbar-left\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopLeftBar]!has[draft.of]]\" variable=\"listItem\" storyview=\"pop\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
        },
        "$:/core/ui/PageTemplate/toprightbar": {
            "title": "$:/core/ui/PageTemplate/toprightbar",
            "tags": "$:/tags/PageTemplate",
            "text": "<span class=\"tc-topbar tc-topbar-right\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopRightBar]!has[draft.of]]\" variable=\"listItem\" storyview=\"pop\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
        },
        "$:/core/ui/PageTemplate": {
            "title": "$:/core/ui/PageTemplate",
            "name": "{{$:/language/PageTemplate/Name}}",
            "description": "{{$:/language/PageTemplate/Description}}",
            "text": "\\whitespace trim\n\\define containerClasses()\ntc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$vars\n\ttv-config-toolbar-icons={{$:/config/Toolbar/Icons}}\n\ttv-config-toolbar-text={{$:/config/Toolbar/Text}}\n\ttv-config-toolbar-class={{$:/config/Toolbar/ButtonClass}}\n\ttv-enable-drag-and-drop={{$:/config/DragAndDrop/Enable}}\n\ttv-show-missing-links={{$:/config/MissingLinks}}\n\tstoryviewTitle={{$:/view}}\n\tlanguageTitle={{{ [{$:/language}get[name]] }}}>\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n\n<$dropzone enable=<<tv-enable-drag-and-drop>>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageTemplate]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n\n</$dropzone>\n\n</$navigator>\n\n</div>\n\n</$vars>\n"
        },
        "$:/PaletteManager": {
            "title": "$:/PaletteManager",
            "text": "\\define lingo-base() $:/language/ControlPanel/Palette/Editor/\n\\define describePaletteColour(colour)\n<$transclude tiddler=\"$:/language/Docs/PaletteColours/$colour$\"><$text text=\"$colour$\"/></$transclude>\n\\end\n\\define edit-colour-placeholder()\n edit $(colourName)$\n\\end\n\\define colour-tooltip(showhide) $showhide$ editor for $(newColourName)$ \n\\define resolve-colour(macrocall)\n\\import $:/core/macros/utils\n\\whitespace trim\n<$wikify name=\"name\" text=\"\"\"$macrocall$\"\"\">\n<<name>>\n</$wikify>\n\\end\n\\define delete-colour-index-actions() <$action-setfield $index=<<colourName>>/>\n\\define palette-manager-colour-row-segment()\n\\whitespace trim\n<$edit-text index=<<colourName>> tag=\"input\" placeholder=<<edit-colour-placeholder>> default=\"\"/>\n<br>\n<$edit-text index=<<colourName>> type=\"color\" tag=\"input\" class=\"tc-palette-manager-colour-input\"/>\n<$list filter=\"[<currentTiddler>getindex<colourName>removeprefix[<<]removesuffix[>>]] [<currentTiddler>getindex<colourName>removeprefix[<$]removesuffix[/>]]\" variable=\"ignore\">\n<$set name=\"state\" value={{{ [[$:/state/palettemanager/]addsuffix<currentTiddler>addsuffix[/]addsuffix<colourName>] }}}>\n<$wikify name=\"newColourName\" text=\"\"\"<$macrocall $name=\"resolve-colour\" macrocall={{{ [<currentTiddler>getindex<colourName>] }}}/>\"\"\">\n<$reveal state=<<state>> type=\"nomatch\" text=\"show\">\n<$button tooltip=<<colour-tooltip show>> aria-label=<<colour-tooltip show>> class=\"tc-btn-invisible\" set=<<state>> setTo=\"show\">{{$:/core/images/down-arrow}}<$text text=<<newColourName>> class=\"tc-small-gap-left\"/></$button><br>\n</$reveal>\n<$reveal state=<<state>> type=\"match\" text=\"show\">\n<$button tooltip=<<colour-tooltip hide>> aria-label=<<colour-tooltip show>> class=\"tc-btn-invisible\" actions=\"\"\"<$action-deletetiddler $tiddler=<<state>>/>\"\"\">{{$:/core/images/up-arrow}}<$text text=<<newColourName>> class=\"tc-small-gap-left\"/></$button><br>\n</$reveal>\n<$reveal state=<<state>> type=\"match\" text=\"show\">\n<$set name=\"colourName\" value=<<newColourName>>>\n<br>\n<<palette-manager-colour-row-segment>>\n<br><br>\n</$set>\n</$reveal>\n</$wikify>\n</$set>\n</$list>\n\\end\n\\define palette-manager-colour-row()\n\\whitespace trim\n<tr>\n<td>\n<span style=\"float:right;\">\n<$button tooltip={{$:/language/ControlPanel/Palette/Editor/Delete/Hint}} aria-label=<<lingo Delete/Hint>> class=\"tc-btn-invisible\" actions=<<delete-colour-index-actions>>>\n{{$:/core/images/delete-button}}</$button>\n</span>\n''<$macrocall $name=\"describePaletteColour\" colour=<<colourName>>/>''<br/>\n<$macrocall $name=\"colourName\" $output=\"text/plain\"/>\n</td>\n<td>\n<<palette-manager-colour-row-segment>>\n</td>\n</tr>\n\\end\n\\define palette-manager-table()\n\\whitespace trim\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]indexes[]]\" variable=\"colourName\">\n<$list filter=\"[<currentTiddler>indexes[]removeprefix<colourName>suffix[]]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$list filter=\"[{$:/state/palettemanager/showexternal}removeprefix[yes]suffix[]]\" variable=\"ignore\">\n<<palette-manager-colour-row>>\n</$list>\n\"\"\">\n<<palette-manager-colour-row>>\n</$list>\n</$list>\n</tbody>\n</table>\n\\end\n<$set name=\"currentTiddler\" value={{$:/palette}}>\n\n<<lingo Prompt>> <$link to={{$:/palette}}><$macrocall $name=\"currentTiddler\" $output=\"text/plain\"/></$link>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\" variable=\"listItem\">\n<<lingo Prompt/Modified>>\n<$button message=\"tm-delete-tiddler\" param={{$:/palette}}><<lingo Reset/Caption>></$button>\n</$list>\n\n<$list filter=\"[all[current]is[shadow]!is[tiddler]]\" variable=\"listItem\">\n<<lingo Clone/Prompt>>\n</$list>\n\n<$button message=\"tm-new-tiddler\" param={{$:/palette}}><<lingo Clone/Caption>></$button>\n\n<$checkbox tiddler=\"$:/state/palettemanager/showexternal\" field=\"text\" checked=\"yes\" unchecked=\"no\"><span class=\"tc-small-gap-left\"><<lingo Names/External/Show>></span></$checkbox>\n\n<<palette-manager-table>>\n"
        },
        "$:/core/ui/PluginInfo": {
            "title": "$:/core/ui/PluginInfo",
            "text": "\\define localised-info-tiddler-title()\n$(currentTiddler)$/$(languageTitle)$/$(currentTab)$\n\\end\n\\define info-tiddler-title()\n$(currentTiddler)$/$(currentTab)$\n\\end\n\\define default-tiddler-title()\n$:/core/ui/PluginInfo/Default/$(currentTab)$\n\\end\n<$transclude tiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<default-tiddler-title>> mode=\"block\">\n{{$:/language/ControlPanel/Plugin/NoInfoFound/Hint}}\n</$transclude>\n</$transclude>\n</$transclude>\n</$transclude>\n"
        },
        "$:/core/ui/PluginInfo/Default/contents": {
            "title": "$:/core/ui/PluginInfo/Default/contents",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link />\n</li>\n</$list>\n</ul>\n"
        },
        "$:/core/ui/PluginListItemTemplate": {
            "title": "$:/core/ui/PluginListItemTemplate",
            "text": "<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}><$view field=\"description\"><$view field=\"title\"/></$view></$link>\n</div>"
        },
        "$:/core/ui/RootTemplate": {
            "title": "$:/core/ui/RootTemplate",
            "text": "<$transclude tiddler={{{ [{$:/layout}has[text]] ~[[$:/core/ui/PageTemplate]] }}} mode=\"inline\"/>\n\n"
        },
        "$:/core/ui/SearchResults": {
            "title": "$:/core/ui/SearchResults",
            "text": "<div class=\"tc-search-results\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\"\"\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}} actions=\"\"\"<$action-setfield $tiddler=\"$:/state/search/currentTab\" text=<<currentTab>>/>\"\"\" explicitState=\"$:/state/tab/search-results/sidebar\"/>\n\n</$list>\n\n</div>\n"
        },
        "$:/core/ui/SideBar/More": {
            "title": "$:/core/ui/SideBar/More",
            "tags": "$:/tags/SideBar",
            "caption": "{{$:/language/SideBar/More/Caption}}",
            "text": "<div class=\"tc-more-sidebar\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\" default={{$:/config/DefaultMoreSidebarTab}} state=\"$:/state/tab/moresidebar\" class=\"tc-vertical tc-sidebar-tabs-more\" explicitState=\"$:/state/tab/moresidebar-1850697562\"/>\n</div>\n"
        },
        "$:/core/ui/SideBar/Open": {
            "title": "$:/core/ui/SideBar/Open",
            "tags": "$:/tags/SideBar",
            "caption": "{{$:/language/SideBar/Open/Caption}}",
            "text": "\\whitespace trim\n\\define lingo-base() $:/language/CloseAll/\n\n\\define drop-actions()\n<$action-listops $tiddler=<<tv-story-list>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define placeholder()\n<div class=\"tc-droppable-placeholder\"/>\n\\end\n\n\\define droppable-item(button)\n\\whitespace trim\n<$droppable actions=<<drop-actions>> enable=<<tv-allow-drag-and-drop>>>\n<<placeholder>>\n<div>\n$button$\n</div>\n</$droppable>\n\\end\n\n<div class=\"tc-sidebar-tab-open\">\n<$list filter=\"[list<tv-story-list>]\" history=<<tv-history-list>> storyview=\"pop\">\n<div class=\"tc-sidebar-tab-open-item\">\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=\"tc-btn-invisible tc-btn-mini tc-small-gap-right\">{{$:/core/images/close-button}}</$button><$link to={{!!title}}><$view field=\"title\"/></$link>\"\"\"/>\n</div>\n</$list>\n<$tiddler tiddler=\"\">\n<div>\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-all-tiddlers\" class=\"tc-btn-invisible tc-btn-mini\"><<lingo Button>></$button>\"\"\"/>\n</div>\n</$tiddler>\n</div>\n"
        },
        "$:/core/ui/SideBar/Recent": {
            "title": "$:/core/ui/SideBar/Recent",
            "tags": "$:/tags/SideBar",
            "caption": "{{$:/language/SideBar/Recent/Caption}}",
            "text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
        },
        "$:/core/ui/SideBar/Tools": {
            "title": "$:/core/ui/SideBar/Tools",
            "tags": "$:/tags/SideBar",
            "caption": "{{$:/language/SideBar/Tools/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n\n<<lingo Basics/Version/Prompt>> <<version>>\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n\n<div style=\"position:relative;\" class={{{ [<listItem>encodeuricomponent[]addprefix[tc-btn-]] }}}>\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</div>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/SideBarLists": {
            "title": "$:/core/ui/SideBarLists",
            "text": "<$transclude tiddler=\"$:/core/ui/SideBarSegments/search\"/>\n\n<$transclude tiddler=\"$:/core/ui/SideBarSegments/tabs\"/>\n\n"
        },
        "$:/core/ui/SideBarSegments/page-controls": {
            "title": "$:/core/ui/SideBarSegments/page-controls",
            "tags": "$:/tags/SideBarSegment",
            "text": "{{||$:/core/ui/PageTemplate/pagecontrols}}\n"
        },
        "$:/core/ui/SideBarSegments/search": {
            "title": "$:/core/ui/SideBarSegments/search",
            "tags": "$:/tags/SideBarSegment",
            "text": "\\whitespace trim\n\n\\define count-popup-button()\n\\whitespace trim\n<$button popup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n<$list filter=\"[{$(searchTiddler)$}minlength{$:/config/Search/MinLength}limit[1]]\" variable=\"listItem\">\n<$vars userInput={{{ [<searchTiddler>get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}} replaceRegexp=\"limit\\[\\d+\\]\">\n<$vars primaryListFilter={{{ [<configTiddler>get[first-search-filter]search-replace:g:regexp<replaceRegexp>,[]] }}} secondaryListFilter={{{ [<configTiddler>get[second-search-filter]search-replace:g:regexp<replaceRegexp>,[]] }}}>\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[subfilter<primaryListFilter>] [subfilter<secondaryListFilter>]\"/>\"\"\">\n{{$:/language/Search/Matches}}\n</$set>\n</$vars>\n</$vars>\n</$list>\n</$button>\n\\end\n\n\\define search-results-list()\n\\whitespace trim\n<$vars userInput={{$(searchTiddler)$}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}}>\n<$list filter=\"[<userInput>minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$tiddler tiddler=<<configTiddler>>>\n\n{{$:/core/ui/SearchResults}}\n\n</$tiddler>\n\n</$list>\n</$vars>\n\\end\n\n\\define cancel-search-actions() <$list filter=\"[<searchTiddler>get[text]!match{$:/temp/search}]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[[$:/temp/search]] [<searchTiddler>] [<searchListState>]\"/>\"\"\"><$action-setfield $tiddler=\"$:/temp/search\" text={{{ [<searchTiddler>get[text]] }}}/><$action-setfield $tiddler=\"$:/temp/search/refresh\" text=\"yes\"/></$list>\n\n\\define input-accept-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\"\"\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\n\n\\define input-accept-variant-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{  [<__tiddler__>get[text]] }}}/></$list></$list>\"\"\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{  [<__tiddler__>get[text]] }}}/></$list></$list>\n\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab/search-results/sidebar\" tag=\"$:/tags/SearchResults\" beforeafter=\"$beforeafter$\" defaultState={{$:/config/SearchResults/Default}} actions=\"\"\"<$action-setfield $tiddler=\"$:/state/search/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define advanced-search-actions() <$action-setfield $tiddler=\"$:/temp/advancedsearch\" text={{$:/temp/search/input}}/><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/search/input}}/><<delete-state-tiddlers>><$action-navigate $to=\"$:/AdvancedSearch\"/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/><$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\"[data-tiddler-title=\"$:/AdvancedSearch\"] .tc-search input\"\"\" preventScroll=\"true\"/><$action-deletetiddler $filter=\"$:/temp/search $:/temp/search/input $:/temp/search/refresh [<searchListState>]\"/>\n\n<div class=\"tc-sidebar-lists tc-sidebar-search\">\n\n<$vars editTiddler=\"$:/temp/search\" searchTiddler=\"$:/temp/search/input\" searchListState=<<qualify \"$:/state/search-list/selected-item\">>>\n<div class=\"tc-search\">\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">>>\n<$keyboard key=\"((advanced-search-sidebar))\" actions=<<advanced-search-actions>>>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<editTiddler>> storeTitle=<<searchTiddler>> \n\t\tselectionStateTitle=<<searchListState>> refreshTitle=\"$:/temp/search/refresh\" type=\"search\" \n\t\ttag=\"input\" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify \"$:/state/popup/search-dropdown\">> \n\t\tclass=\"tc-popup-handle\" filterMinLength={{$:/config/Search/MinLength}} inputCancelActions=<<cancel-search-actions>> \n\t\tinputAcceptActions=<<input-accept-actions>> inputAcceptVariantActions=<<input-accept-variant-actions>> cancelPopups=\"yes\" \n\t\tconfigTiddlerFilter=\"[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]\"/>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n<$reveal state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n<$button tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n<<advanced-search-actions>>\n{{$:/core/images/advanced-search-button}}\n</$button>\n<$button class=\"tc-btn-invisible\">\n<<cancel-search-actions>><$action-sendmessage $message=\"tm-focus-selector\" $param=\".tc-search input\"/>\n{{$:/core/images/close-button}}\n</$button>\n<<count-popup-button>>\n</$reveal>\n<$reveal state=<<searchTiddler>> type=\"match\" text=\"\">\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/advanced-search-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown-wrapper\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown tc-search-drop-down tc-popup-handle\" state=<<qualify \"$:/state/popup/search-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n\n<<search-results-list>>\n\n</$reveal>\n\n</$reveal>\n\n</$vars>\n\n</div>\n"
        },
        "$:/core/ui/SideBarSegments/site-subtitle": {
            "title": "$:/core/ui/SideBarSegments/site-subtitle",
            "tags": "$:/tags/SideBarSegment",
            "text": "<div class=\"tc-site-subtitle\">\n\n<$transclude tiddler=\"$:/SiteSubtitle\" mode=\"inline\"/>\n\n</div>\n"
        },
        "$:/core/ui/SideBarSegments/site-title": {
            "title": "$:/core/ui/SideBarSegments/site-title",
            "tags": "$:/tags/SideBarSegment",
            "text": "<h1 class=\"tc-site-title\">\n\n<$transclude tiddler=\"$:/SiteTitle\" mode=\"inline\"/>\n\n</h1>\n"
        },
        "$:/core/ui/SideBarSegments/tabs": {
            "title": "$:/core/ui/SideBarSegments/tabs",
            "tags": "$:/tags/SideBarSegment",
            "text": "<div class=\"tc-sidebar-lists tc-sidebar-tabs\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\" default={{$:/config/DefaultSidebarTab}} state=\"$:/state/tab/sidebar\" class=\"tc-sidebar-tabs-main\" explicitState=\"$:/state/tab/sidebar--595412856\"/>\n\n</div>\n"
        },
        "$:/core/ui/SwitcherModal": {
            "title": "$:/core/ui/SwitcherModal",
            "subtitle": "<$text text={{{[<switch>lookup[$:/language/Switcher/Subtitle/]]}}}/>",
            "class": "tc-modal-centered",
            "text": "<$tiddler tiddler={{{[<switch>lookup[$:/config/SwitcherTargets/]]}}}>\n\n\n<$transclude/>\n\n\n</$tiddler>"
        },
        "$:/TagManager": {
            "title": "$:/TagManager",
            "icon": "$:/core/images/tag-button",
            "color": "#bbb",
            "text": "\\define lingo-base() $:/language/TagManager/\n\\define iconEditorTab(type)\n\\whitespace trim\n<$link to=\"\"><<lingo Icons/None>></$link>\n<$list filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[sort[title]] +[$type$is[system]]\">\n<$link to={{!!title}}>\n<$transclude/> <$view field=\"title\"/>\n</$link>\n</$list>\n\\end\n\\define iconEditor(title)\n\\whitespace trim\n<div class=\"tc-drop-down-wrapper\">\n<$button popupTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal stateTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$linkcatcher actions=\"\"\"<$action-setfield $tiddler=<<__title__>> icon=<<navigateTo>>/>\"\"\">\n<<iconEditorTab type:\"!\">>\n<hr/>\n<<iconEditorTab type:\"\">>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>\n\\end\n\\define toggleButton(state)\n\\whitespace trim\n<$reveal stateTitle=<<__state__>> type=\"match\" text=\"closed\" default=\"closed\">\n<$button setTitle=<<__state__>> setTo=\"open\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n<$reveal stateTitle=<<__state__>> type=\"match\" text=\"open\" default=\"closed\">\n<$button setTitle=<<__state__>> setTo=\"closed\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n\\end\n\\whitespace trim\n<table class=\"tc-tag-manager-table\">\n<tbody>\n<tr>\n<th><<lingo Colour/Heading>></th>\n<th class=\"tc-tag-manager-tag\"><<lingo Tag/Heading>></th>\n<th><<lingo Count/Heading>></th>\n<th><<lingo Icon/Heading>></th>\n<th><<lingo Info/Heading>></th>\n</tr>\n<$list filter=\"[tags[]!is[system]sort[title]]\">\n<tr>\n<td><$edit-text field=\"color\" tag=\"input\" type=\"color\"/></td>\n<td>{{||$:/core/ui/TagTemplate}}</td>\n<td><$count filter=\"[all[current]tagging[]]\"/></td>\n<td>\n<$macrocall $name=\"iconEditor\" title={{!!title}}/>\n</td>\n<td>\n<$macrocall $name=\"toggleButton\" state={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} /> \n</td>\n</tr>\n<tr>\n<td></td>\n<td colspan=\"4\">\n<$reveal stateTitle={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} type=\"match\" text=\"open\" default=\"\">\n<table>\n<tbody>\n<tr><td><<lingo Colour/Heading>></td><td><$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/></td></tr>\n<tr><td><<lingo Icon/Heading>></td><td><$edit-text field=\"icon\" tag=\"input\" size=\"45\"/></td></tr>\n</tbody>\n</table>\n</$reveal>\n</td>\n</tr>\n</$list>\n<tr>\n<td></td>\n<td style=\"position:relative;\">\n{{$:/core/ui/UntaggedTemplate}}\n</td>\n<td>\n<small class=\"tc-menu-list-count\"><$count filter=\"[untagged[]!is[system]] -[tags[]]\"/></small>\n</td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/TagPickerTagTemplate": {
            "title": "$:/core/ui/TagPickerTagTemplate",
            "text": "\\whitespace trim\n<$button class=<<button-classes>> tag=\"a\" tooltip={{$:/language/EditTemplate/Tags/Add/Button/Hint}}>\n<$list filter=\"[<saveTiddler>minlength[1]]\">\n<$action-listops $tiddler=<<saveTiddler>> $field=<<tagField>> $subfilter=\"[<tag>]\"/>\n</$list>\n<$set name=\"currentTiddlerCSSEscaped\" value={{{ [<saveTiddler>escapecss[]] }}}>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=<<get-tagpicker-focus-selector>> preventScroll=\"true\"/>\n</$set>\n<<delete-tag-state-tiddlers>>\n<$list filter=\"[<refreshTitle>minlength[1]]\">\n<$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/>\n</$list>\n<<actions>>\n<$set name=\"backgroundColor\" value={{!!color}}>\n<$wikify name=\"foregroundColor\" text=\"\"\"<$macrocall $name=\"contrastcolour\" target={{!!color}} fallbackTarget=<<fallbackTarget>> colourA=<<colourA>> colourB=<<colourB>>/>\"\"\">\n<span class=\"tc-tag-label tc-btn-invisible\" style=<<tag-pill-styles>>>\n<$transclude tiddler={{!!icon}}/><$view field=\"title\" format=\"text\"/>\n</span>\n</$wikify>\n</$set>\n</$button>\n"
        },
        "$:/core/ui/TagTemplate": {
            "title": "$:/core/ui/TagTemplate",
            "text": "\\whitespace trim\n<span class=\"tc-tag-list-item\">\n<$set name=\"transclusion\" value=<<currentTiddler>>>\n<$macrocall $name=\"tag-pill-body\" tag=<<currentTiddler>> icon={{!!icon}} colour={{!!color}} palette={{$:/palette}} element-tag=\"\"\"$button\"\"\" element-attributes=\"\"\"popup=<<qualify \"$:/state/popup/tag\">> dragFilter='[all[current]tagging[]]' tag='span'\"\"\"/>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\" animate=\"yes\" class=\"tc-drop-down\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</$set>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TagDropdown]!has[draft.of]]\" variable=\"listItem\"> \n<$transclude tiddler=<<listItem>>/> \n</$list>\n<hr>\n<$macrocall $name=\"list-tagged-draggable\" tag=<<currentTiddler>>/>\n</$reveal>\n</$set>\n</span>\n"
        },
        "$:/core/ui/TiddlerFieldTemplate": {
            "title": "$:/core/ui/TiddlerFieldTemplate",
            "text": "<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<listItem>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<listItem>>/>\n</td>\n</tr>"
        },
        "$:/core/ui/TiddlerFields": {
            "title": "$:/core/ui/TiddlerFields",
            "text": "<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/TiddlerInfo/Advanced/PluginInfo": {
            "title": "$:/core/ui/TiddlerInfo/Advanced/PluginInfo",
            "tags": "$:/tags/TiddlerInfo/Advanced",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<$list filter=\"[all[current]has[plugin-type]]\">\n\n! <<lingo Heading>>\n\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</li>\n</$list>\n</ul>\n\n</$list>\n"
        },
        "$:/core/ui/TiddlerInfo/Advanced/ShadowInfo": {
            "title": "$:/core/ui/TiddlerInfo/Advanced/ShadowInfo",
            "tags": "$:/tags/TiddlerInfo/Advanced",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/ShadowInfo/\n<$set name=\"infoTiddler\" value=<<currentTiddler>>>\n\n''<<lingo Heading>>''\n\n<$list filter=\"[all[current]!is[shadow]]\">\n\n<<lingo NotShadow/Hint>>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]]\">\n\n<<lingo Shadow/Hint>>\n\n<$list filter=\"[all[current]shadowsource[]]\">\n\n<$set name=\"pluginTiddler\" value=<<currentTiddler>>>\n<<lingo Shadow/Source>>\n</$set>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\">\n\n<<lingo OverriddenShadow/Hint>>\n\n</$list>\n\n\n</$list>\n</$set>\n"
        },
        "$:/core/ui/TiddlerInfo/Advanced": {
            "title": "$:/core/ui/TiddlerInfo/Advanced",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/Advanced/Caption}}",
            "text": "<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo/Advanced]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>> mode=\"block\"/>\n</$list>\n"
        },
        "$:/core/ui/TiddlerInfo/Fields": {
            "title": "$:/core/ui/TiddlerInfo/Fields",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/Fields/Caption}}",
            "text": "<$transclude tiddler=\"$:/core/ui/TiddlerFields\"/>\n"
        },
        "$:/core/ui/TiddlerInfo/List": {
            "title": "$:/core/ui/TiddlerInfo/List",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/List/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[list{!!title}]\" emptyMessage=<<lingo List/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/TiddlerInfo/Listed": {
            "title": "$:/core/ui/TiddlerInfo/Listed",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/Listed/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]listed[]!is[system]]\" emptyMessage=<<lingo Listed/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/TiddlerInfo/References": {
            "title": "$:/core/ui/TiddlerInfo/References",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/References/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]backlinks[]sort[title]]\" emptyMessage=<<lingo References/Empty>> template=\"$:/core/ui/ListItemTemplate\">\n</$list>"
        },
        "$:/core/ui/TiddlerInfo/Tagging": {
            "title": "$:/core/ui/TiddlerInfo/Tagging",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/Tagging/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]tagging[]]\" emptyMessage=<<lingo Tagging/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/TiddlerInfo/Tools": {
            "title": "$:/core/ui/TiddlerInfo/Tools",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/Tools/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\">\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/TiddlerInfo": {
            "title": "$:/core/ui/TiddlerInfo",
            "text": "<div style=\"position:relative;\">\n<div class=\"tc-tiddler-controls\" style=\"position:absolute;right:0;\">\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n</div>\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo]!has[draft.of]]\" default={{$:/config/TiddlerInfo/Default}}/>\n"
        },
        "$:/core/ui/TopBar/menu": {
            "title": "$:/core/ui/TopBar/menu",
            "tags": "$:/tags/TopRightBar",
            "text": "<$list filter=\"[[$:/state/sidebar]get[text]] +[else[yes]!match[no]]\" variable=\"ignore\">\n<$button set=\"$:/state/sidebar\" setTo=\"no\" tooltip={{$:/language/Buttons/HideSideBar/Hint}} aria-label={{$:/language/Buttons/HideSideBar/Caption}} class=\"tc-btn-invisible tc-hide-sidebar-btn\">{{$:/core/images/chevron-right}}</$button>\n</$list>\n<$list filter=\"[[$:/state/sidebar]get[text]] +[else[yes]match[no]]\" variable=\"ignore\">\n<$button set=\"$:/state/sidebar\" setTo=\"yes\" tooltip={{$:/language/Buttons/ShowSideBar/Hint}} aria-label={{$:/language/Buttons/ShowSideBar/Caption}} class=\"tc-btn-invisible tc-show-sidebar-btn\">{{$:/core/images/chevron-left}}</$button>\n</$list>\n"
        },
        "$:/core/ui/UntaggedTemplate": {
            "title": "$:/core/ui/UntaggedTemplate",
            "text": "\\define lingo-base() $:/language/SideBar/\n<$button popup=<<qualify \"$:/state/popup/tag\">> class=\"tc-btn-invisible tc-untagged-label tc-tag-label\">\n<<lingo Tags/Untagged/Caption>>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[untagged[]!is[system]] -[tags[]] +[sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n"
        },
        "$:/core/ui/ViewTemplate/body": {
            "title": "$:/core/ui/ViewTemplate/body",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$reveal tag=\"div\" class=\"tc-tiddler-body\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[current]!has[plugin-type]!field:hide-body[yes]]\">\n\n<$transclude>\n\n<$transclude tiddler=\"$:/language/MissingTiddler/Hint\"/>\n\n</$transclude>\n\n</$list>\n\n</$reveal>\n"
        },
        "$:/core/ui/ViewTemplate/classic": {
            "title": "$:/core/ui/ViewTemplate/classic",
            "tags": "$:/tags/ViewTemplate $:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/ClassicWarning/\n<$list filter=\"[all[current]type[text/x-tiddlywiki]]\">\n<div class=\"tc-message-box\">\n\n<<lingo Hint>>\n\n<$button set=\"!!type\" setTo=\"text/vnd.tiddlywiki\"><<lingo Upgrade/Caption>></$button>\n\n</div>\n</$list>\n"
        },
        "$:/core/ui/ViewTemplate/import": {
            "title": "$:/core/ui/ViewTemplate/import",
            "tags": "$:/tags/ViewTemplate",
            "text": "\\define lingo-base() $:/language/Import/\n\n\\define buttons()\n<$button message=\"tm-delete-tiddler\" param=<<currentTiddler>>><<lingo Listing/Cancel/Caption>></$button>\n<$button message=\"tm-perform-import\" param=<<currentTiddler>>><<lingo Listing/Import/Caption>></$button>\n<<lingo Listing/Preview>> <$select tiddler=\"$:/state/importpreviewtype\" default=\"$:/core/ui/ImportPreviews/Text\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ImportPreview]!has[draft.of]]\">\n<option value=<<currentTiddler>>>{{!!caption}}</option>\n</$list>\n</$select>\n\\end\n\n<$list filter=\"[all[current]field:plugin-type[import]]\">\n\n<div class=\"tc-import\">\n\n<<lingo Listing/Hint>>\n\n<<buttons>>\n\n{{||$:/core/ui/ImportListing}}\n\n<<buttons>>\n\n</div>\n\n</$list>\n"
        },
        "$:/core/ui/ViewTemplate/plugin": {
            "title": "$:/core/ui/ViewTemplate/plugin",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$reveal tag=\"div\" class=\"tc-tiddler-plugin-info\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[current]has[plugin-type]] -[all[current]field:plugin-type[import]]\">\n<$set name=\"plugin-type\" value={{!!plugin-type}}>\n<$set name=\"default-popup-state\" value=\"yes\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n{{||$:/core/ui/Components/plugin-info}}\n</$set>\n</$set>\n</$set>\n</$list>\n</$reveal>"
        },
        "$:/core/ui/ViewTemplate/subtitle": {
            "title": "$:/core/ui/ViewTemplate/subtitle",
            "tags": "$:/tags/ViewTemplate",
            "text": "\\whitespace trim\n<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}} />\n<$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n</$reveal>\n"
        },
        "$:/core/ui/ViewTemplate/tags": {
            "title": "$:/core/ui/ViewTemplate/tags",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-tags-wrapper\"><$list filter=\"[all[current]tags[]sort[title]]\" template=\"$:/core/ui/TagTemplate\" storyview=\"pop\"/></div>\n</$reveal>\n"
        },
        "$:/core/ui/ViewTemplate/title": {
            "title": "$:/core/ui/ViewTemplate/title",
            "tags": "$:/tags/ViewTemplate",
            "text": "\\whitespace trim\n\\define title-styles()\nfill:$(foregroundColor)$;\n\\end\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<span class=\"tc-tiddler-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\"><$transclude tiddler=<<listItem>>/></$set></$reveal></$list>\n</span>\n<$set name=\"tv-wikilinks\" value={{$:/config/Tiddlers/TitleLinks}}>\n<$link>\n<$set name=\"foregroundColor\" value={{!!color}}>\n<$list filter=\"[all[current]has[icon]]~[[$:/config/DefaultTiddlerIcon]has[text]]\">\n<span class=\"tc-tiddler-title-icon\" style=<<title-styles>>>\n<$transclude tiddler={{!!icon}}>\n<$transclude tiddler={{$:/config/DefaultTiddlerIcon}}/>\n</$transclude>\n</span>\n</$list>\n</$set>\n<$list filter=\"[all[current]removeprefix[$:/]]\">\n<h2 class=\"tc-title\" title={{$:/language/SystemTiddler/Tooltip}}>\n<span class=\"tc-system-title-prefix\">$:/</span><$text text=<<currentTiddler>>/>\n</h2>\n</$list>\n<$list filter=\"[all[current]!prefix[$:/]]\">\n<h2 class=\"tc-title\">\n<$view field=\"title\"/>\n</h2>\n</$list>\n</$link>\n</$set>\n</div>\n\n<$reveal type=\"nomatch\" text=\"\" default=\"\" state=<<tiddlerInfoState>> class=\"tc-tiddler-info tc-popup-handle\" animate=\"yes\" retain=\"yes\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfoSegment]!has[draft.of]] [[$:/core/ui/TiddlerInfo]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>> mode=\"block\"/></$list>\n\n</$reveal>\n</div>"
        },
        "$:/core/ui/ViewTemplate/unfold": {
            "title": "$:/core/ui/ViewTemplate/unfold",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$reveal tag=\"div\" type=\"nomatch\" state=\"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar\" text=\"hide\">\n<$reveal tag=\"div\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=\"tc-fold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-up}}\n</$button>\n</$reveal>\n<$reveal tag=\"div\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"show\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=\"tc-unfold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</$reveal>\n"
        },
        "$:/core/ui/ViewTemplate": {
            "title": "$:/core/ui/ViewTemplate",
            "text": "\\define folded-state()\n$:/state/folded/$(currentTiddler)$\n\\end\n\\define cancel-delete-tiddler-actions(message) <$action-sendmessage $message=\"tm-$message$-tiddler\"/>\n\\import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!has[draft.of]]\n<$vars storyTiddler=<<currentTiddler>> tiddlerInfoState=<<qualify \"$:/state/popup/tiddler-info\">>><div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-view-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[shadow]is[tiddler]then[tc-tiddler-overridden-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewTemplate]!has[draft.of]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>>/></$list>\n</div>\n</$vars>\n"
        },
        "$:/core/ui/Buttons/clone": {
            "title": "$:/core/ui/Buttons/clone",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/clone-button}} {{$:/language/Buttons/Clone/Caption}}",
            "description": "{{$:/language/Buttons/Clone/Hint}}",
            "text": "\\whitespace trim\n<$button message=\"tm-new-tiddler\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/Clone/Hint}} aria-label={{$:/language/Buttons/Clone/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/clone-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Clone/Caption}}/>\n</span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/close-others": {
            "title": "$:/core/ui/Buttons/close-others",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/close-others-button}} {{$:/language/Buttons/CloseOthers/Caption}}",
            "description": "{{$:/language/Buttons/CloseOthers/Hint}}",
            "text": "\\whitespace trim\n<$button message=\"tm-close-other-tiddlers\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/CloseOthers/Hint}} aria-label={{$:/language/Buttons/CloseOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/CloseOthers/Caption}}/>\n</span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/close": {
            "title": "$:/core/ui/Buttons/close",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/close-button}} {{$:/language/Buttons/Close/Caption}}",
            "description": "{{$:/language/Buttons/Close/Hint}}",
            "text": "\\whitespace trim\n<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Close/Caption}}/>\n</span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/edit": {
            "title": "$:/core/ui/Buttons/edit",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/edit-button}} {{$:/language/Buttons/Edit/Caption}}",
            "description": "{{$:/language/Buttons/Edit/Hint}}",
            "text": "\\whitespace trim\n<$button message=\"tm-edit-tiddler\" tooltip={{$:/language/Buttons/Edit/Hint}} aria-label={{$:/language/Buttons/Edit/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/edit-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Edit/Caption}}/>\n</span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/export-tiddler": {
            "title": "$:/core/ui/Buttons/export-tiddler",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportTiddler/Caption}}",
            "description": "{{$:/language/Buttons/ExportTiddler/Hint}}",
            "text": "\\define makeExportFilter()\n[[$(currentTiddler)$]]\n\\end\n<$macrocall $name=\"exportButton\" exportFilter=<<makeExportFilter>> lingoBase=\"$:/language/Buttons/ExportTiddler/\" baseFilename=<<currentTiddler>>/>"
        },
        "$:/core/ui/Buttons/fold-bar": {
            "title": "$:/core/ui/Buttons/fold-bar",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/chevron-up}} {{$:/language/Buttons/Fold/FoldBar/Caption}}",
            "description": "{{$:/language/Buttons/Fold/FoldBar/Hint}}",
            "text": "<!-- This dummy toolbar button is here to allow visibility of the fold-bar to be controlled as if it were a toolbar button -->"
        },
        "$:/core/ui/Buttons/fold-others": {
            "title": "$:/core/ui/Buttons/fold-others",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/fold-others-button}} {{$:/language/Buttons/FoldOthers/Caption}}",
            "description": "{{$:/language/Buttons/FoldOthers/Hint}}",
            "text": "\\whitespace trim\n<$button tooltip={{$:/language/Buttons/FoldOthers/Hint}} aria-label={{$:/language/Buttons/FoldOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-other-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/FoldOthers/Caption}}/>\n</span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/fold": {
            "title": "$:/core/ui/Buttons/fold",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/fold-button}} {{$:/language/Buttons/Fold/Caption}}",
            "description": "{{$:/language/Buttons/Fold/Hint}}",
            "text": "\\whitespace trim\n<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Fold/Caption}}/>\n</span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Unfold/Caption}}/>\n</span>\n</$list>\n</$button>\n</$reveal>\n"
        },
        "$:/core/ui/Buttons/info": {
            "title": "$:/core/ui/Buttons/info",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/info-button}} {{$:/language/Buttons/Info/Caption}}",
            "description": "{{$:/language/Buttons/Info/Hint}}",
            "text": "\\whitespace trim\n\\define button-content()\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/info-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Info/Caption}}/>\n</span>\n</$list>\n\\end\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"popup\">\n<$button popup=<<tiddlerInfoState>> tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$reveal state=<<tiddlerInfoState>> type=\"match\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"yes\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=<<tiddlerInfoState>> type=\"nomatch\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n</$reveal>"
        },
        "$:/core/ui/Buttons/more-tiddler-actions": {
            "title": "$:/core/ui/Buttons/more-tiddler-actions",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
            "description": "{{$:/language/Buttons/More/Hint}}",
            "text": "\\whitespace trim\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/More/Caption}}/>\n</span>\n</$list>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]] -[[$:/core/ui/Buttons/more-tiddler-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$set>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
        },
        "$:/core/ui/Buttons/new-here": {
            "title": "$:/core/ui/Buttons/new-here",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/new-here-button}} {{$:/language/Buttons/NewHere/Caption}}",
            "description": "{{$:/language/Buttons/NewHere/Hint}}",
            "text": "\\whitespace trim\n\\define newHereActions()\n<$set name=\"tags\" filter=\"[<currentTiddler>] [{$:/config/NewTiddler/Tags}]\">\n<$action-sendmessage $message=\"tm-new-tiddler\" tags=<<tags>>/>\n</$set>\n\\end\n\\define newHereButton()\n<$button actions=<<newHereActions>> tooltip={{$:/language/Buttons/NewHere/Hint}} aria-label={{$:/language/Buttons/NewHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-here-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/NewHere/Caption}}/>\n</span>\n</$list>\n</$button>\n\\end\n<<newHereButton>>\n"
        },
        "$:/core/ui/Buttons/new-journal-here": {
            "title": "$:/core/ui/Buttons/new-journal-here",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournalHere/Caption}}",
            "description": "{{$:/language/Buttons/NewJournalHere/Hint}}",
            "text": "\\whitespace trim\n\\define journalButtonTags()\n[[$(currentTiddlerTag)$]] $(journalTags)$\n\\end\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournalHere/Hint}} aria-label={{$:/language/Buttons/NewJournalHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$wikify name=\"journalTitle\" text=\"\"\"<$macrocall $name=\"now\" format=<<journalTitleTemplate>>/>\"\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalButtonTags>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/NewJournalHere/Caption}}/>\n</span>\n</$list>\n</$wikify>\n</$button>\n\\end\n<$set name=\"journalTitleTemplate\" value={{$:/config/NewJournal/Title}}>\n<$set name=\"journalTags\" value={{$:/config/NewJournal/Tags}}>\n<$set name=\"currentTiddlerTag\" value=<<currentTiddler>>>\n<<journalButton>>\n</$set>\n</$set>\n</$set>\n"
        },
        "$:/core/ui/Buttons/open-window": {
            "title": "$:/core/ui/Buttons/open-window",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/open-window}} {{$:/language/Buttons/OpenWindow/Caption}}",
            "description": "{{$:/language/Buttons/OpenWindow/Hint}}",
            "text": "\\whitespace trim\n<$button message=\"tm-open-window\" tooltip={{$:/language/Buttons/OpenWindow/Hint}} aria-label={{$:/language/Buttons/OpenWindow/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/open-window}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/OpenWindow/Caption}}/>\n</span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/permalink": {
            "title": "$:/core/ui/Buttons/permalink",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/permalink-button}} {{$:/language/Buttons/Permalink/Caption}}",
            "description": "{{$:/language/Buttons/Permalink/Hint}}",
            "text": "\\whitespace trim\n<$button message=\"tm-permalink\" tooltip={{$:/language/Buttons/Permalink/Hint}} aria-label={{$:/language/Buttons/Permalink/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/permalink-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Permalink/Caption}}/>\n</span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/permaview": {
            "title": "$:/core/ui/Buttons/permaview",
            "tags": "$:/tags/ViewToolbar $:/tags/PageControls",
            "caption": "{{$:/core/images/permaview-button}} {{$:/language/Buttons/Permaview/Caption}}",
            "description": "{{$:/language/Buttons/Permaview/Hint}}",
            "text": "\\whitespace trim\n<$button message=\"tm-permaview\" tooltip={{$:/language/Buttons/Permaview/Hint}} aria-label={{$:/language/Buttons/Permaview/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/permaview-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Permaview/Caption}}/>\n</span>\n</$list>\n</$button>"
        },
        "$:/DefaultTiddlers": {
            "title": "$:/DefaultTiddlers",
            "text": "GettingStarted\n"
        },
        "$:/temp/advancedsearch": {
            "title": "$:/temp/advancedsearch",
            "text": ""
        },
        "$:/snippets/allfields": {
            "title": "$:/snippets/allfields",
            "text": "\\define renderfield(title)\n<tr class=\"tc-view-field\"><td class=\"tc-view-field-name\">''$title$'':</td><td class=\"tc-view-field-value\">//{{$:/language/Docs/Fields/$title$}}//</td></tr>\n\\end\n<table class=\"tc-view-field-table\"><tbody><$list filter=\"[fields[]sort[title]]\" variable=\"listItem\"><$macrocall $name=\"renderfield\" title=<<listItem>>/></$list>\n</tbody></table>\n"
        },
        "$:/config/AnimationDuration": {
            "title": "$:/config/AnimationDuration",
            "text": "400"
        },
        "$:/config/AutoFocus": {
            "title": "$:/config/AutoFocus",
            "text": "title"
        },
        "$:/config/AutoSave": {
            "title": "$:/config/AutoSave",
            "text": "yes"
        },
        "$:/config/BitmapEditor/Colour": {
            "title": "$:/config/BitmapEditor/Colour",
            "text": "#444"
        },
        "$:/config/BitmapEditor/ImageSizes": {
            "title": "$:/config/BitmapEditor/ImageSizes",
            "text": "[[62px 100px]] [[100px 62px]] [[124px 200px]] [[200px 124px]] [[248px 400px]] [[371px 600px]] [[400px 248px]] [[556px 900px]] [[600px 371px]] [[742px 1200px]] [[900px 556px]] [[1200px 742px]]"
        },
        "$:/config/BitmapEditor/LineWidth": {
            "title": "$:/config/BitmapEditor/LineWidth",
            "text": "3px"
        },
        "$:/config/BitmapEditor/LineWidths": {
            "title": "$:/config/BitmapEditor/LineWidths",
            "text": "0.25px 0.5px 1px 2px 3px 4px 6px 8px 10px 16px 20px 28px 40px 56px 80px"
        },
        "$:/config/BitmapEditor/Opacities": {
            "title": "$:/config/BitmapEditor/Opacities",
            "text": "0.01 0.025 0.05 0.075 0.1 0.15 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0"
        },
        "$:/config/BitmapEditor/Opacity": {
            "title": "$:/config/BitmapEditor/Opacity",
            "text": "1.0"
        },
        "$:/config/DefaultMoreSidebarTab": {
            "title": "$:/config/DefaultMoreSidebarTab",
            "text": "$:/core/ui/MoreSideBar/Tags"
        },
        "$:/config/DefaultSidebarTab": {
            "title": "$:/config/DefaultSidebarTab",
            "text": "$:/core/ui/SideBar/Open"
        },
        "$:/config/DownloadSaver/AutoSave": {
            "title": "$:/config/DownloadSaver/AutoSave",
            "text": "no"
        },
        "$:/config/Drafts/TypingTimeout": {
            "title": "$:/config/Drafts/TypingTimeout",
            "text": "400"
        },
        "$:/config/EditMode/fieldname-filter": {
            "title": "$:/config/EditMode/fieldname-filter",
            "first-search-filter": "[!is[shadow]!is[system]fields[]search:title<userInput>sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type",
            "second-search-filter": "[fields[]search:title<userInput>sort[]] -[!is[shadow]!is[system]fields[]]"
        },
        "$:/config/EditTabIndex": {
            "title": "$:/config/EditTabIndex",
            "text": "1\n"
        },
        "$:/config/EditTemplateFields/Visibility/title": {
            "title": "$:/config/EditTemplateFields/Visibility/title",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/tags": {
            "title": "$:/config/EditTemplateFields/Visibility/tags",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/text": {
            "title": "$:/config/EditTemplateFields/Visibility/text",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/creator": {
            "title": "$:/config/EditTemplateFields/Visibility/creator",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/created": {
            "title": "$:/config/EditTemplateFields/Visibility/created",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/modified": {
            "title": "$:/config/EditTemplateFields/Visibility/modified",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/modifier": {
            "title": "$:/config/EditTemplateFields/Visibility/modifier",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/type": {
            "title": "$:/config/EditTemplateFields/Visibility/type",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/draft.title": {
            "title": "$:/config/EditTemplateFields/Visibility/draft.title",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/draft.of": {
            "title": "$:/config/EditTemplateFields/Visibility/draft.of",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/revision": {
            "title": "$:/config/EditTemplateFields/Visibility/revision",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/bag": {
            "title": "$:/config/EditTemplateFields/Visibility/bag",
            "text": "hide"
        },
        "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4": {
            "title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4",
            "text": "hide"
        },
        "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5": {
            "title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5",
            "text": "hide"
        },
        "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6": {
            "title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6",
            "text": "hide"
        },
        "$:/config/EditorTypeMappings/image/gif": {
            "title": "$:/config/EditorTypeMappings/image/gif",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/webp": {
            "title": "$:/config/EditorTypeMappings/image/webp",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/heic": {
            "title": "$:/config/EditorTypeMappings/image/heic",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/heif": {
            "title": "$:/config/EditorTypeMappings/image/heif",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/jpeg": {
            "title": "$:/config/EditorTypeMappings/image/jpeg",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/jpg": {
            "title": "$:/config/EditorTypeMappings/image/jpg",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/png": {
            "title": "$:/config/EditorTypeMappings/image/png",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/x-icon": {
            "title": "$:/config/EditorTypeMappings/image/x-icon",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/text/vnd.tiddlywiki": {
            "title": "$:/config/EditorTypeMappings/text/vnd.tiddlywiki",
            "text": "text"
        },
        "$:/config/Manager/Show": {
            "title": "$:/config/Manager/Show",
            "text": "tiddlers"
        },
        "$:/config/Manager/Filter": {
            "title": "$:/config/Manager/Filter",
            "text": ""
        },
        "$:/config/Manager/Order": {
            "title": "$:/config/Manager/Order",
            "text": "forward"
        },
        "$:/config/Manager/Sort": {
            "title": "$:/config/Manager/Sort",
            "text": "title"
        },
        "$:/config/Manager/System": {
            "title": "$:/config/Manager/System",
            "text": "system"
        },
        "$:/config/Manager/Tag": {
            "title": "$:/config/Manager/Tag",
            "text": ""
        },
        "$:/state/popup/manager/item/$:/Manager/ItemMain/RawText": {
            "title": "$:/state/popup/manager/item/$:/Manager/ItemMain/RawText",
            "text": "hide"
        },
        "$:/config/MissingLinks": {
            "title": "$:/config/MissingLinks",
            "text": "yes"
        },
        "$:/config/Navigation/UpdateAddressBar": {
            "title": "$:/config/Navigation/UpdateAddressBar",
            "text": "no"
        },
        "$:/config/Navigation/UpdateHistory": {
            "title": "$:/config/Navigation/UpdateHistory",
            "text": "no"
        },
        "$:/config/NewImageType": {
            "title": "$:/config/NewImageType",
            "text": "jpeg"
        },
        "$:/config/OfficialPluginLibrary": {
            "title": "$:/config/OfficialPluginLibrary",
            "tags": "$:/tags/PluginLibrary",
            "url": "https://tiddlywiki.com/library/v5.1.23/index.html",
            "caption": "{{$:/language/OfficialPluginLibrary}}",
            "text": "{{$:/language/OfficialPluginLibrary/Hint}}\n"
        },
        "$:/config/Navigation/openLinkFromInsideRiver": {
            "title": "$:/config/Navigation/openLinkFromInsideRiver",
            "text": "below"
        },
        "$:/config/Navigation/openLinkFromOutsideRiver": {
            "title": "$:/config/Navigation/openLinkFromOutsideRiver",
            "text": "top"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all",
            "text": "hide"
        },
        "$:/config/Performance/Instrumentation": {
            "title": "$:/config/Performance/Instrumentation",
            "text": "no"
        },
        "$:/config/RegisterPluginType/plugin": {
            "title": "$:/config/RegisterPluginType/plugin",
            "text": "yes"
        },
        "$:/config/RegisterPluginType/theme": {
            "title": "$:/config/RegisterPluginType/theme",
            "text": "no"
        },
        "$:/config/RegisterPluginType/language": {
            "title": "$:/config/RegisterPluginType/language",
            "text": "no"
        },
        "$:/config/RegisterPluginType/info": {
            "title": "$:/config/RegisterPluginType/info",
            "text": "yes"
        },
        "$:/config/RegisterPluginType/import": {
            "title": "$:/config/RegisterPluginType/import",
            "text": "no"
        },
        "$:/config/SaveWikiButton/Template": {
            "title": "$:/config/SaveWikiButton/Template",
            "text": "$:/core/save/all"
        },
        "$:/config/SaverFilter": {
            "title": "$:/config/SaverFilter",
            "text": "[all[]] -[prefix[$:/HistoryList]] -[prefix[$:/StoryList]] -[status[pending]plugin-type[import]] -[[$:/isEncrypted]] -[[$:/UploadName]] -[prefix[$:/state/]] -[prefix[$:/temp/]]\n"
        },
        "$:/config/Search/AutoFocus": {
            "title": "$:/config/Search/AutoFocus",
            "text": "true"
        },
        "$:/config/Search/MinLength": {
            "title": "$:/config/Search/MinLength",
            "text": "3"
        },
        "$:/config/SearchResults/Default": {
            "title": "$:/config/SearchResults/Default",
            "text": "$:/core/ui/DefaultSearchResultList"
        },
        "$:/config/Server/ExternalFilters/[all[tiddlers]!is[system]sort[title]]": {
            "title": "$:/config/Server/ExternalFilters/[all[tiddlers]!is[system]sort[title]]",
            "text": "yes"
        },
        "$:/config/ShortcutInfo/add-field": {
            "title": "$:/config/ShortcutInfo/add-field",
            "text": "{{$:/language/EditTemplate/Fields/Add/Button/Hint}}"
        },
        "$:/config/ShortcutInfo/advanced-search": {
            "title": "$:/config/ShortcutInfo/advanced-search",
            "text": "{{$:/language/Buttons/AdvancedSearch/Hint}}"
        },
        "$:/config/ShortcutInfo/advanced-search-sidebar": {
            "title": "$:/config/ShortcutInfo/advanced-search-sidebar",
            "text": "{{$:/language/Shortcuts/Input/AdvancedSearch/Hint}}"
        },
        "$:/config/ShortcutInfo/bold": {
            "title": "$:/config/ShortcutInfo/bold",
            "text": "{{$:/language/Buttons/Bold/Hint}}"
        },
        "$:/config/ShortcutInfo/cancel-edit-tiddler": {
            "title": "$:/config/ShortcutInfo/cancel-edit-tiddler",
            "text": "{{$:/language/Buttons/Cancel/Hint}}"
        },
        "$:/config/ShortcutInfo/change-sidebar-layout": {
            "title": "$:/config/ShortcutInfo/change-sidebar-layout",
            "text": "{{$:/language/Shortcuts/SidebarLayout/Hint}}"
        },
        "$:/config/ShortcutInfo/delete-field": {
            "title": "$:/config/ShortcutInfo/delete-field",
            "text": "{{$:/language/EditTemplate/Field/Remove/Hint}}"
        },
        "$:/config/ShortcutInfo/excise": {
            "title": "$:/config/ShortcutInfo/excise",
            "text": "{{$:/language/Buttons/Excise/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-1": {
            "title": "$:/config/ShortcutInfo/heading-1",
            "text": "{{$:/language/Buttons/Heading1/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-2": {
            "title": "$:/config/ShortcutInfo/heading-2",
            "text": "{{$:/language/Buttons/Heading2/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-3": {
            "title": "$:/config/ShortcutInfo/heading-3",
            "text": "{{$:/language/Buttons/Heading3/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-4": {
            "title": "$:/config/ShortcutInfo/heading-4",
            "text": "{{$:/language/Buttons/Heading4/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-5": {
            "title": "$:/config/ShortcutInfo/heading-5",
            "text": "{{$:/language/Buttons/Heading5/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-6": {
            "title": "$:/config/ShortcutInfo/heading-6",
            "text": "{{$:/language/Buttons/Heading6/Hint}}"
        },
        "$:/config/ShortcutInfo/input-accept": {
            "title": "$:/config/ShortcutInfo/input-accept",
            "text": "{{$:/language/Shortcuts/Input/Accept/Hint}}"
        },
        "$:/config/ShortcutInfo/input-accept-variant": {
            "title": "$:/config/ShortcutInfo/input-accept-variant",
            "text": "{{$:/language/Shortcuts/Input/AcceptVariant/Hint}}"
        },
        "$:/config/ShortcutInfo/input-cancel": {
            "title": "$:/config/ShortcutInfo/input-cancel",
            "text": "{{$:/language/Shortcuts/Input/Cancel/Hint}}"
        },
        "$:/config/ShortcutInfo/input-down": {
            "title": "$:/config/ShortcutInfo/input-down",
            "text": "{{$:/language/Shortcuts/Input/Down/Hint}}"
        },
        "$:/config/ShortcutInfo/input-tab-left": {
            "title": "$:/config/ShortcutInfo/input-tab-left",
            "text": "{{$:/language/Shortcuts/Input/Tab-Left/Hint}}"
        },
        "$:/config/ShortcutInfo/input-tab-right": {
            "title": "$:/config/ShortcutInfo/input-tab-right",
            "text": "{{$:/language/Shortcuts/Input/Tab-Right/Hint}}"
        },
        "$:/config/ShortcutInfo/input-up": {
            "title": "$:/config/ShortcutInfo/input-up",
            "text": "{{$:/language/Shortcuts/Input/Up/Hint}}"
        },
        "$:/config/ShortcutInfo/italic": {
            "title": "$:/config/ShortcutInfo/italic",
            "text": "{{$:/language/Buttons/Italic/Hint}}"
        },
        "$:/config/ShortcutInfo/layout-switcher": {
            "title": "$:/config/ShortcutInfo/layout-switcher",
            "text": "{{$:/language/LayoutSwitcher/Description}}"
        },
        "$:/config/ShortcutInfo/link": {
            "title": "$:/config/ShortcutInfo/link",
            "text": "{{$:/language/Buttons/Link/Hint}}"
        },
        "$:/config/ShortcutInfo/linkify": {
            "title": "$:/config/ShortcutInfo/linkify",
            "text": "{{$:/language/Buttons/Linkify/Hint}}"
        },
        "$:/config/ShortcutInfo/list-bullet": {
            "title": "$:/config/ShortcutInfo/list-bullet",
            "text": "{{$:/language/Buttons/ListBullet/Hint}}"
        },
        "$:/config/ShortcutInfo/list-number": {
            "title": "$:/config/ShortcutInfo/list-number",
            "text": "{{$:/language/Buttons/ListNumber/Hint}}"
        },
        "$:/config/ShortcutInfo/mono-block": {
            "title": "$:/config/ShortcutInfo/mono-block",
            "text": "{{$:/language/Buttons/MonoBlock/Hint}}"
        },
        "$:/config/ShortcutInfo/mono-line": {
            "title": "$:/config/ShortcutInfo/mono-line",
            "text": "{{$:/language/Buttons/MonoLine/Hint}}"
        },
        "$:/config/ShortcutInfo/new-image": {
            "title": "$:/config/ShortcutInfo/new-image",
            "text": "{{$:/language/Buttons/NewImage/Hint}}"
        },
        "$:/config/ShortcutInfo/new-journal": {
            "title": "$:/config/ShortcutInfo/new-journal",
            "text": "{{$:/language/Buttons/NewJournal/Hint}}"
        },
        "$:/config/ShortcutInfo/new-tiddler": {
            "title": "$:/config/ShortcutInfo/new-tiddler",
            "text": "{{$:/language/Buttons/NewTiddler/Hint}}"
        },
        "$:/config/ShortcutInfo/picture": {
            "title": "$:/config/ShortcutInfo/picture",
            "text": "{{$:/language/Buttons/Picture/Hint}}"
        },
        "$:/config/ShortcutInfo/preview": {
            "title": "$:/config/ShortcutInfo/preview",
            "text": "{{$:/language/Buttons/Preview/Hint}}"
        },
        "$:/config/ShortcutInfo/quote": {
            "title": "$:/config/ShortcutInfo/quote",
            "text": "{{$:/language/Buttons/Quote/Hint}}"
        },
        "$:/config/ShortcutInfo/save-tiddler": {
            "title": "$:/config/ShortcutInfo/save-tiddler",
            "text": "{{$:/language/Buttons/Save/Hint}}"
        },
        "$:/config/ShortcutInfo/save-wiki": {
            "title": "$:/config/ShortcutInfo/save-wiki",
            "text": "{{$:/language/Buttons/SaveWiki/Hint}}"
        },
        "$:/config/ShortcutInfo/sidebar-search": {
            "title": "$:/config/ShortcutInfo/sidebar-search",
            "text": "{{$:/language/Buttons/SidebarSearch/Hint}}"
        },
        "$:/config/ShortcutInfo/stamp": {
            "title": "$:/config/ShortcutInfo/stamp",
            "text": "{{$:/language/Buttons/Stamp/Hint}}"
        },
        "$:/config/ShortcutInfo/strikethrough": {
            "title": "$:/config/ShortcutInfo/strikethrough",
            "text": "{{$:/language/Buttons/Strikethrough/Hint}}"
        },
        "$:/config/ShortcutInfo/subscript": {
            "title": "$:/config/ShortcutInfo/subscript",
            "text": "{{$:/language/Buttons/Subscript/Hint}}"
        },
        "$:/config/ShortcutInfo/superscript": {
            "title": "$:/config/ShortcutInfo/superscript",
            "text": "{{$:/language/Buttons/Superscript/Hint}}"
        },
        "$:/config/ShortcutInfo/toggle-sidebar": {
            "title": "$:/config/ShortcutInfo/toggle-sidebar",
            "text": "{{$:/language/Buttons/ToggleSidebar/Hint}}"
        },
        "$:/config/ShortcutInfo/transcludify": {
            "title": "$:/config/ShortcutInfo/transcludify",
            "text": "{{$:/language/Buttons/Transcludify/Hint}}"
        },
        "$:/config/ShortcutInfo/underline": {
            "title": "$:/config/ShortcutInfo/underline",
            "text": "{{$:/language/Buttons/Underline/Hint}}"
        },
        "$:/config/SwitcherTargets/layout": {
            "title": "$:/config/SwitcherTargets/layout",
            "text": "$:/snippets/LayoutSwitcher"
        },
        "$:/config/SwitcherTargets/language": {
            "title": "$:/config/SwitcherTargets/language",
            "text": "$:/snippets/languageswitcher"
        },
        "$:/config/SwitcherTargets/palette": {
            "title": "$:/config/SwitcherTargets/palette",
            "text": "$:/core/ui/ControlPanel/Palette"
        },
        "$:/config/SwitcherTargets/theme": {
            "title": "$:/config/SwitcherTargets/theme",
            "text": "$:/core/ui/ControlPanel/Theme"
        },
        "$:/config/SyncFilter": {
            "title": "$:/config/SyncFilter",
            "text": "[is[tiddler]] -[[$:/core]] -[[$:/library/sjcl.js]] -[prefix[$:/boot/]] -[prefix[$:/HistoryList]] -[status[pending]plugin-type[import]] -[[$:/isEncrypted]] -[prefix[$:/status/]] -[prefix[$:/state/]] -[prefix[$:/temp/]]\n"
        },
        "$:/config/SyncSystemTiddlersFromServer": {
            "title": "$:/config/SyncSystemTiddlersFromServer",
            "text": "no"
        },
        "$:/config/Tags/MinLength": {
            "title": "$:/config/Tags/MinLength",
            "text": "0"
        },
        "$:/config/TextEditor/EditorHeight/Height": {
            "title": "$:/config/TextEditor/EditorHeight/Height",
            "text": "400px"
        },
        "$:/config/TextEditor/EditorHeight/Mode": {
            "title": "$:/config/TextEditor/EditorHeight/Mode",
            "text": "auto"
        },
        "$:/config/TiddlerInfo/Default": {
            "title": "$:/config/TiddlerInfo/Default",
            "text": "$:/core/ui/TiddlerInfo/Fields"
        },
        "$:/config/TiddlerInfo/Mode": {
            "title": "$:/config/TiddlerInfo/Mode",
            "text": "popup"
        },
        "$:/config/Tiddlers/TitleLinks": {
            "title": "$:/config/Tiddlers/TitleLinks",
            "text": "no"
        },
        "$:/config/Toolbar/ButtonClass": {
            "title": "$:/config/Toolbar/ButtonClass",
            "text": "tc-btn-invisible"
        },
        "$:/config/Toolbar/Icons": {
            "title": "$:/config/Toolbar/Icons",
            "text": "yes"
        },
        "$:/config/Toolbar/Text": {
            "title": "$:/config/Toolbar/Text",
            "text": "no"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions",
            "text": "show"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others",
            "text": "hide"
        },
        "$:/config/shortcuts-mac/bold": {
            "title": "$:/config/shortcuts-mac/bold",
            "text": "meta-B"
        },
        "$:/config/shortcuts-mac/input-tab-left": {
            "title": "$:/config/shortcuts-mac/input-tab-left",
            "text": "ctrl-Left"
        },
        "$:/config/shortcuts-mac/input-tab-right": {
            "title": "$:/config/shortcuts-mac/input-tab-right",
            "text": "ctrl-Right"
        },
        "$:/config/shortcuts-mac/italic": {
            "title": "$:/config/shortcuts-mac/italic",
            "text": "meta-I"
        },
        "$:/config/shortcuts-mac/underline": {
            "title": "$:/config/shortcuts-mac/underline",
            "text": "meta-U"
        },
        "$:/config/shortcuts-mac/new-image": {
            "title": "$:/config/shortcuts-mac/new-image",
            "text": "ctrl-I"
        },
        "$:/config/shortcuts-mac/new-journal": {
            "title": "$:/config/shortcuts-mac/new-journal",
            "text": "ctrl-J"
        },
        "$:/config/shortcuts-mac/new-tiddler": {
            "title": "$:/config/shortcuts-mac/new-tiddler",
            "text": "ctrl-N"
        },
        "$:/config/shortcuts-mac/save-wiki": {
            "title": "$:/config/shortcuts-mac/save-wiki",
            "text": "meta-S"
        },
        "$:/config/shortcuts-not-mac/bold": {
            "title": "$:/config/shortcuts-not-mac/bold",
            "text": "ctrl-B"
        },
        "$:/config/shortcuts-not-mac/italic": {
            "title": "$:/config/shortcuts-not-mac/italic",
            "text": "ctrl-I"
        },
        "$:/config/shortcuts-not-mac/underline": {
            "title": "$:/config/shortcuts-not-mac/underline",
            "text": "ctrl-U"
        },
        "$:/config/shortcuts-not-mac/new-image": {
            "title": "$:/config/shortcuts-not-mac/new-image",
            "text": "alt-I"
        },
        "$:/config/shortcuts-not-mac/new-journal": {
            "title": "$:/config/shortcuts-not-mac/new-journal",
            "text": "alt-J"
        },
        "$:/config/shortcuts-not-mac/new-tiddler": {
            "title": "$:/config/shortcuts-not-mac/new-tiddler",
            "text": "alt-N"
        },
        "$:/config/shortcuts/add-field": {
            "title": "$:/config/shortcuts/add-field",
            "text": "enter"
        },
        "$:/config/shortcuts/advanced-search": {
            "title": "$:/config/shortcuts/advanced-search",
            "text": "ctrl-shift-A"
        },
        "$:/config/shortcuts/advanced-search-sidebar": {
            "title": "$:/config/shortcuts/advanced-search-sidebar",
            "text": "alt-Enter"
        },
        "$:/config/shortcuts/cancel-edit-tiddler": {
            "title": "$:/config/shortcuts/cancel-edit-tiddler",
            "text": "escape"
        },
        "$:/config/shortcuts/change-sidebar-layout": {
            "title": "$:/config/shortcuts/change-sidebar-layout",
            "text": "shift-alt-Down"
        },
        "$:/config/shortcuts/delete-field": {
            "title": "$:/config/shortcuts/delete-field",
            "text": "shift-alt-D"
        },
        "$:/config/shortcuts/excise": {
            "title": "$:/config/shortcuts/excise",
            "text": "ctrl-E"
        },
        "$:/config/shortcuts/sidebar-search": {
            "title": "$:/config/shortcuts/sidebar-search",
            "text": "ctrl-shift-F"
        },
        "$:/config/shortcuts/heading-1": {
            "title": "$:/config/shortcuts/heading-1",
            "text": "ctrl-1"
        },
        "$:/config/shortcuts/heading-2": {
            "title": "$:/config/shortcuts/heading-2",
            "text": "ctrl-2"
        },
        "$:/config/shortcuts/heading-3": {
            "title": "$:/config/shortcuts/heading-3",
            "text": "ctrl-3"
        },
        "$:/config/shortcuts/heading-4": {
            "title": "$:/config/shortcuts/heading-4",
            "text": "ctrl-4"
        },
        "$:/config/shortcuts/heading-5": {
            "title": "$:/config/shortcuts/heading-5",
            "text": "ctrl-5"
        },
        "$:/config/shortcuts/heading-6": {
            "title": "$:/config/shortcuts/heading-6",
            "text": "ctrl-6"
        },
        "$:/config/shortcuts/input-accept": {
            "title": "$:/config/shortcuts/input-accept",
            "text": "Enter"
        },
        "$:/config/shortcuts/input-accept-variant": {
            "title": "$:/config/shortcuts/input-accept-variant",
            "text": "ctrl-Enter"
        },
        "$:/config/shortcuts/input-cancel": {
            "title": "$:/config/shortcuts/input-cancel",
            "text": "Escape"
        },
        "$:/config/shortcuts/input-down": {
            "title": "$:/config/shortcuts/input-down",
            "text": "Down"
        },
        "$:/config/shortcuts/input-tab-left": {
            "title": "$:/config/shortcuts/input-tab-left",
            "text": "alt-Left"
        },
        "$:/config/shortcuts/input-tab-right": {
            "title": "$:/config/shortcuts/input-tab-right",
            "text": "alt-Right"
        },
        "$:/config/shortcuts/input-up": {
            "title": "$:/config/shortcuts/input-up",
            "text": "Up"
        },
        "$:/config/shortcuts/layout-switcher": {
            "title": "$:/config/shortcuts/layout-switcher",
            "text": "ctrl-shift-L"
        },
        "$:/config/shortcuts/link": {
            "title": "$:/config/shortcuts/link",
            "text": "ctrl-L"
        },
        "$:/config/shortcuts/linkify": {
            "title": "$:/config/shortcuts/linkify",
            "text": "alt-shift-L"
        },
        "$:/config/shortcuts/list-bullet": {
            "title": "$:/config/shortcuts/list-bullet",
            "text": "ctrl-shift-L"
        },
        "$:/config/shortcuts/list-number": {
            "title": "$:/config/shortcuts/list-number",
            "text": "ctrl-shift-N"
        },
        "$:/config/shortcuts/mono-block": {
            "title": "$:/config/shortcuts/mono-block",
            "text": "ctrl-shift-M"
        },
        "$:/config/shortcuts/mono-line": {
            "title": "$:/config/shortcuts/mono-line",
            "text": "ctrl-M"
        },
        "$:/config/shortcuts/picture": {
            "title": "$:/config/shortcuts/picture",
            "text": "ctrl-shift-I"
        },
        "$:/config/shortcuts/preview": {
            "title": "$:/config/shortcuts/preview",
            "text": "alt-P"
        },
        "$:/config/shortcuts/quote": {
            "title": "$:/config/shortcuts/quote",
            "text": "ctrl-Q"
        },
        "$:/config/shortcuts/save-tiddler": {
            "title": "$:/config/shortcuts/save-tiddler",
            "text": "ctrl+enter"
        },
        "$:/config/shortcuts/save-wiki": {
            "title": "$:/config/shortcuts/save-wiki",
            "text": "ctrl-S"
        },
        "$:/config/shortcuts/stamp": {
            "title": "$:/config/shortcuts/stamp",
            "text": "ctrl-S"
        },
        "$:/config/shortcuts/strikethrough": {
            "title": "$:/config/shortcuts/strikethrough",
            "text": "ctrl-T"
        },
        "$:/config/shortcuts/subscript": {
            "title": "$:/config/shortcuts/subscript",
            "text": "ctrl-shift-B"
        },
        "$:/config/shortcuts/superscript": {
            "title": "$:/config/shortcuts/superscript",
            "text": "ctrl-shift-P"
        },
        "$:/config/shortcuts/toggle-sidebar": {
            "title": "$:/config/shortcuts/toggle-sidebar",
            "text": "alt-shift-S"
        },
        "$:/config/shortcuts/transcludify": {
            "title": "$:/config/shortcuts/transcludify",
            "text": "alt-shift-T"
        },
        "$:/config/ui/EditTemplate": {
            "title": "$:/config/ui/EditTemplate",
            "text": "$:/core/ui/EditTemplate"
        },
        "$:/config/ui/ViewTemplate": {
            "title": "$:/config/ui/ViewTemplate",
            "text": "$:/core/ui/ViewTemplate"
        },
        "$:/config/WikiParserRules/Inline/wikilink": {
            "title": "$:/config/WikiParserRules/Inline/wikilink",
            "text": "enable"
        },
        "$:/snippets/currpalettepreview": {
            "title": "$:/snippets/currpalettepreview",
            "text": "\\define resolve-colour(macrocall)\n\\import $:/core/macros/utils\n\\whitespace trim\n<$wikify name=\"name\" text=\"\"\"$macrocall$\"\"\">\n<<name>>\n</$wikify>\n\\end\n\\define swatchStyle()\nbackground-color: $(swatchColour)$;\n\\end\n\\define swatch-inner()\n<$set name=\"swatchColour\" value={{##$(colourResolved)$}}>\n<$list filter=\"[<swatchColour>!prefix[<<colour ]!suffix[>>]]\" variable=\"ignore\">\n<div class=\"tc-swatch\" style=<<swatchStyle>> title=<<swatchTitle>>/>\n</$list>\n<$list filter=\"[<swatchColour>prefix[<<colour ]suffix[>>]]\" variable=\"ignore\">\n<$wikify name=\"colourResolved\" text=\"\"\"<$macrocall $name=\"resolve-colour\" macrocall=<<swatchColour>>/>\"\"\">\n<<swatch-inner>>\n</$wikify>\n</$list>\n</$set>\n\\end\n\\define swatch()\n<$set name=\"swatchColour\" value={{##$(colour)$}}>\n<$set name=\"swatchTitle\" value=<<colour>>>\n<$list filter=\"[<swatchColour>!prefix[<<colour ]!suffix[>>]]\" variable=\"ignore\">\n<div class=\"tc-swatch\" style=<<swatchStyle>> title=<<swatchTitle>>/>\n</$list>\n<$list filter=\"[<swatchColour>prefix[<<colour ]suffix[>>]]\" variable=\"ignore\">\n<$wikify name=\"colourResolved\" text=\"\"\"<$macrocall $name=\"resolve-colour\" macrocall=<<swatchColour>>/>\"\"\">\n<<swatch-inner>>\n</$wikify>\n</$list>\n</$set>\n</$set>\n\\end\n<div class=\"tc-swatches-horiz\"><$list filter=\"\nforeground\nbackground\nmuted-foreground\nprimary\npage-background\ntab-background\ntiddler-info-background\n\" variable=\"colour\"><<swatch>></$list></div>\n"
        },
        "$:/snippets/download-wiki-button": {
            "title": "$:/snippets/download-wiki-button",
            "text": "\\define lingo-base() $:/language/ControlPanel/Tools/Download/\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-download-file\" $param=\"$:/core/save/all\" filename=\"index.html\"/>\n<<lingo Full/Caption>> {{$:/core/images/save-button}}\n</$button>"
        },
        "$:/language": {
            "title": "$:/language",
            "text": "$:/languages/en-GB"
        },
        "$:/snippets/languageswitcher": {
            "title": "$:/snippets/languageswitcher",
            "text": "\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n\n<$linkcatcher to=\"$:/language\">\n<div class=\"tc-chooser tc-language-chooser\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[description]]\">\n<$set name=\"cls\" filter=\"[all[current]field:title{$:/language}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link>\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value=<<currentTiddler>>>\n<$transclude subtiddler=<<flag-title>>>\n<$list filter=\"[all[current]field:title[$:/languages/en-GB]]\">\n<$transclude tiddler=\"$:/languages/en-GB/icon\"/>\n</$list>\n</$transclude>\n</$set>\n</span>\n<$view field=\"description\">\n<$view field=\"name\">\n<$view field=\"title\"/>\n</$view>\n</$view>\n</$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
        },
        "$:/core/macros/CSS": {
            "title": "$:/core/macros/CSS",
            "tags": "$:/tags/Macro",
            "text": "\\define colour(name)\n<$transclude tiddler={{$:/palette}} index=\"$name$\"><$transclude tiddler=\"$:/palettes/Vanilla\" index=\"$name$\"><$transclude tiddler=\"$:/config/DefaultColourMappings/$name$\"/></$transclude></$transclude>\n\\end\n\n\\define color(name)\n<<colour $name$>>\n\\end\n\n\\define box-shadow(shadow)\n``\n  -webkit-box-shadow: $shadow$;\n     -moz-box-shadow: $shadow$;\n          box-shadow: $shadow$;\n``\n\\end\n\n\\define filter(filter)\n``\n  -webkit-filter: $filter$;\n     -moz-filter: $filter$;\n          filter: $filter$;\n``\n\\end\n\n\\define transition(transition)\n``\n  -webkit-transition: $transition$;\n     -moz-transition: $transition$;\n          transition: $transition$;\n``\n\\end\n\n\\define transform-origin(origin)\n``\n  -webkit-transform-origin: $origin$;\n     -moz-transform-origin: $origin$;\n          transform-origin: $origin$;\n``\n\\end\n\n\\define background-linear-gradient(gradient)\n``\nbackground-image: linear-gradient($gradient$);\nbackground-image: -o-linear-gradient($gradient$);\nbackground-image: -moz-linear-gradient($gradient$);\nbackground-image: -webkit-linear-gradient($gradient$);\nbackground-image: -ms-linear-gradient($gradient$);\n``\n\\end\n\n\\define column-count(columns)\n``\n-moz-column-count: $columns$;\n-webkit-column-count: $columns$;\ncolumn-count: $columns$;\n``\n\\end\n\n\\define datauri(title)\n<$macrocall $name=\"makedatauri\" type={{$title$!!type}} text={{$title$}} _canonical_uri={{$title$!!_canonical_uri}}/>\n\\end\n\n\\define if-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-no-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-background-attachment(text)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" type=\"nomatch\" text=\"\">$text$</$reveal>\n\\end\n"
        },
        "$:/core/macros/colour-picker": {
            "title": "$:/core/macros/colour-picker",
            "tags": "$:/tags/Macro",
            "text": "\\define colour-picker-update-recent()\n<$action-listops\n\t$tiddler=\"$:/config/ColourPicker/Recent\"\n\t$subfilter=\"$(colour-picker-value)$ [list[$:/config/ColourPicker/Recent]remove[$(colour-picker-value)$]] +[limit[8]]\"\n/>\n\\end\n\n\\define colour-picker-inner(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(colour-picker-value)$\"\"\">\n\n$(colour-picker-update-recent)$\n\n$actions$\n\n<span style=\"display:inline-block; background-color: $(colour-picker-value)$; width: 100%; height: 100%; border-radius: 50%;\"/>\n\n</$button>\n\\end\n\n\\define colour-picker-recent-inner(actions)\n<$set name=\"colour-picker-value\" value=\"$(recentColour)$\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\\end\n\n\\define colour-picker-recent(actions)\n{{$:/language/ColourPicker/Recent}} <$list filter=\"[list[$:/config/ColourPicker/Recent]]\" variable=\"recentColour\">\n<$macrocall $name=\"colour-picker-recent-inner\" actions=\"\"\"$actions$\"\"\"/></$list>\n\\end\n\n\\define colour-picker(actions)\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker-recent\" actions=\"\"\"$actions$\"\"\"/>\n\n---\n\n<$list filter=\"LightPink Pink Crimson LavenderBlush PaleVioletRed HotPink DeepPink MediumVioletRed Orchid Thistle Plum Violet Magenta Fuchsia DarkMagenta Purple MediumOrchid DarkViolet DarkOrchid Indigo BlueViolet MediumPurple MediumSlateBlue SlateBlue DarkSlateBlue Lavender GhostWhite Blue MediumBlue MidnightBlue DarkBlue Navy RoyalBlue CornflowerBlue LightSteelBlue LightSlateGrey SlateGrey DodgerBlue AliceBlue SteelBlue LightSkyBlue SkyBlue DeepSkyBlue LightBlue PowderBlue CadetBlue Azure LightCyan PaleTurquoise Cyan Aqua DarkTurquoise DarkSlateGrey DarkCyan Teal MediumTurquoise LightSeaGreen Turquoise Aquamarine MediumAquamarine MediumSpringGreen MintCream SpringGreen MediumSeaGreen SeaGreen Honeydew LightGreen PaleGreen DarkSeaGreen LimeGreen Lime ForestGreen Green DarkGreen Chartreuse LawnGreen GreenYellow DarkOliveGreen YellowGreen OliveDrab Beige LightGoldenrodYellow Ivory LightYellow Yellow Olive DarkKhaki LemonChiffon PaleGoldenrod Khaki Gold Cornsilk Goldenrod DarkGoldenrod FloralWhite OldLace Wheat Moccasin Orange PapayaWhip BlanchedAlmond NavajoWhite AntiqueWhite Tan BurlyWood Bisque DarkOrange Linen Peru PeachPuff SandyBrown Chocolate SaddleBrown Seashell Sienna LightSalmon Coral OrangeRed DarkSalmon Tomato MistyRose Salmon Snow LightCoral RosyBrown IndianRed Red Brown FireBrick DarkRed Maroon White WhiteSmoke Gainsboro LightGrey Silver DarkGrey Grey DimGrey Black\" variable=\"colour-picker-value\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\n---\n\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" tag=\"input\" default=\"\" placeholder=\"\"/>\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" type=\"color\" tag=\"input\"/>\n<$set name=\"colour-picker-value\" value={{$:/config/ColourPicker/New}}>\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\n</div>\n\n\\end\n"
        },
        "$:/core/macros/copy-to-clipboard": {
            "title": "$:/core/macros/copy-to-clipboard",
            "tags": "$:/tags/Macro",
            "text": "\\define copy-to-clipboard(src,class:\"tc-btn-invisible\",style)\n<$button class=<<__class__>> style=<<__style__>> message=\"tm-copy-to-clipboard\" param=<<__src__>> tooltip={{$:/language/Buttons/CopyToClipboard/Hint}}>\n{{$:/core/images/copy-clipboard}} <$text text={{$:/language/Buttons/CopyToClipboard/Caption}}/>\n</$button>\n\\end\n\n\\define copy-to-clipboard-above-right(src,class:\"tc-btn-invisible\",style)\n<div style=\"position: relative;\">\n<div style=\"position: absolute; bottom: 0; right: 0;\">\n<$macrocall $name=\"copy-to-clipboard\" src=<<__src__>> class=<<__class__>> style=<<__style__>>/>\n</div>\n</div>\n\\end\n\n"
        },
        "$:/core/macros/diff": {
            "title": "$:/core/macros/diff",
            "tags": "$:/tags/Macro",
            "text": "\\define compareTiddlerText(sourceTiddlerTitle,sourceSubTiddlerTitle,destTiddlerTitle,destSubTiddlerTitle)\n<$set name=\"source\" tiddler=<<__sourceTiddlerTitle__>> subtiddler=<<__sourceSubTiddlerTitle__>>>\n<$set name=\"dest\" tiddler=<<__destTiddlerTitle__>> subtiddler=<<__destSubTiddlerTitle__>>>\n<$diff-text source=<<source>> dest=<<dest>>/>\n</$set>\n</$set>\n\\end\n\n\\define compareTiddlers(sourceTiddlerTitle,sourceSubTiddlerTitle,destTiddlerTitle,destSubTiddlerTitle,exclude)\n<table class=\"tc-diff-tiddlers\">\n<tbody>\n<$set name=\"sourceFields\" filter=\"[<__sourceTiddlerTitle__>fields[]sort[]]\">\n<$set name=\"destFields\" filter=\"[<__destSubTiddlerTitle__>subtiddlerfields<__destTiddlerTitle__>sort[]]\">\n<$list filter=\"[enlist<sourceFields>] [enlist<destFields>] -[enlist<__exclude__>] +[sort[]]\" variable=\"fieldName\">\n<tr>\n<th>\n<$text text=<<fieldName>>/> \n</th>\n<td>\n<$set name=\"source\" tiddler=<<__sourceTiddlerTitle__>> subtiddler=<<__sourceSubTiddlerTitle__>> field=<<fieldName>>>\n<$set name=\"dest\" tiddler=<<__destTiddlerTitle__>> subtiddler=<<__destSubTiddlerTitle__>> field=<<fieldName>>>\n<$diff-text source=<<source>> dest=<<dest>>>\n</$diff-text>\n</$set>\n</$set>\n</td>\n</tr>\n</$list>\n</$set>\n</$set>\n</tbody>\n</table>\n\\end\n"
        },
        "$:/core/macros/dumpvariables": {
            "title": "$:/core/macros/dumpvariables",
            "tags": "$:/tags/Macro",
            "text": "\\define dumpvariables()\n<ul>\n<$list filter=\"[variables[]]\" variable=\"varname\">\n<li>\n<strong><code><$text text=<<varname>>/></code></strong>:<br/>\n<$codeblock code={{{ [<varname>getvariable[]] }}}/>\n</li>\n</$list>\n</ul>\n\\end\n"
        },
        "$:/core/macros/export": {
            "title": "$:/core/macros/export",
            "tags": "$:/tags/Macro",
            "text": "\\define exportButtonFilename(baseFilename)\n$baseFilename$$(extension)$\n\\end\n\n\\define exportButton(exportFilter:\"[!is[system]sort[title]]\",lingoBase,baseFilename:\"tiddlers\")\n<span class=\"tc-popup-keep\"><$button popup=<<qualify \"$:/state/popup/export\">> tooltip={{$lingoBase$Hint}} aria-label={{$lingoBase$Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/export-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$lingoBase$Caption}}/></span>\n</$list>\n</$button></span><$reveal state=<<qualify \"$:/state/popup/export\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$set name=\"count\" value={{{ [subfilter<__exportFilter__>count[]] }}}>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Exporter]]\">\n<$list filter=\"[<currentTiddler>has[condition]subfilter{!!condition}limit[1]] ~[<currentTiddler>!has[condition]then[true]]\" variable=\"ignore\">\n<$set name=\"extension\" value={{!!extension}}>\n<$button class=\"tc-btn-invisible\">\n<$action-sendmessage $message=\"tm-download-file\" $param=<<currentTiddler>> exportFilter=<<__exportFilter__>> filename=<<exportButtonFilename \"\"\"$baseFilename$\"\"\">>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/export\">>/>\n<$transclude field=\"description\"/>\n</$button>\n</$set>\n</$list>\n</$list>\n</$set>\n</div>\n</$reveal>\n\\end\n"
        },
        "$:/core/macros/image-picker": {
            "title": "$:/core/macros/image-picker",
            "created": "20170715180840889",
            "modified": "20170715180914005",
            "tags": "$:/tags/Macro",
            "type": "text/vnd.tiddlywiki",
            "text": "\\define image-picker-thumbnail(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(imageTitle)$\"\"\">\n$actions$\n<$transclude tiddler=<<imageTitle>>/>\n</$button>\n\\end\n\n\\define image-picker-list(filter,actions)\n<$list filter=\"\"\"$filter$\"\"\" variable=\"imageTitle\">\n<$macrocall $name=\"image-picker-thumbnail\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\\end\n\n\\define image-picker(actions,filter:\"[all[shadows+tiddlers]is[image]] -[type[application/pdf]] +[!has[draft.of]$subfilter$sort[title]]\",subfilter:\"\")\n<div class=\"tc-image-chooser\">\n<$vars state-system=<<qualify \"$:/state/image-picker/system\">>>\n<$checkbox tiddler=<<state-system>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"hide\">\n{{$:/language/SystemTiddlers/Include/Prompt}}\n</$checkbox>\n<$reveal state=<<state-system>> type=\"match\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$ +[!is[system]]\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n<$reveal state=<<state-system>> type=\"nomatch\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n</$vars>\n</div>\n\\end\n\n\\define image-picker-include-tagged-images(actions)\n<$macrocall $name=\"image-picker\" filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n"
        },
        "$:/core/macros/keyboard-driven-input": {
            "title": "$:/core/macros/keyboard-driven-input",
            "tags": "$:/tags/Macro",
            "text": "\\define change-input-tab(stateTitle,tag,beforeafter,defaultState,actions)\n<$set name=\"tabsList\" filter=\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]]\">\n<$vars currentState={{{ [<__stateTitle__>!is[missing]get[text]] ~[<__defaultState__>] }}} firstTab={{{ [enlist<tabsList>nth[1]] }}} lastTab={{{ [enlist<tabsList>last[]] }}}>\n<$set name=\"nextTab\" value={{{ [all[shadows+tiddlers]tag<__tag__>!has[draft.of]$beforeafter$<currentState>] ~[[$beforeafter$]removeprefix[after]suffix[]addprefix<firstTab>] ~[[$beforeafter$]removeprefix[before]suffix[]addprefix<lastTab>] }}}>\n<$action-setfield $tiddler=<<__stateTitle__>> text=<<nextTab>>/>\n$actions$\n</$set>\n</$vars>\n</$set>\n\\end\n\n\\define keyboard-input-actions()\n<$list filter=\"[<__index__>match[]]\">\n<$action-setfield $tiddler=<<__storeTitle__>> text={{{ [<__tiddler__>get<__field__>] }}}/>\n</$list>\n<$list filter=\"[<__index__>!match[]]\">\n<$action-setfield $tiddler=<<__storeTitle__>> text={{{ [<__tiddler__>getindex<__index__>] }}}/>\n</$list>\n\\end\n\n\\define input-next-actions-inner()\n<$list filter=\"[<nextItem>minlength[1]]\" variable=\"ignore\">\n<$action-setfield $tiddler=<<__selectionStateTitle__>> text=<<nextItem>>/>\n<$list filter=\"[<__index__>match[]]\">\n<$action-setfield $tiddler=<<__tiddler__>> $field=<<__field__>> $value={{{ [<nextItem>] +[splitregexp[(?:.(?!-))+$]] }}}/>\n</$list>\n<$list filter=\"[<__index__>!match[]]\">\n<$action-setfield $tiddler=<<__tiddler__>> $index=<<__index__>> $value={{{ [<nextItem>] +[splitregexp[(?:.(?!-))+$]] }}}/>\n</$list>\n<$action-setfield $tiddler=<<__refreshTitle__>> text=\"yes\"/>\n</$list>\n\\end\n\n\\define input-next-actions(afterOrBefore:\"after\",reverse:\"\")\n<$list filter=\"[<__storeTitle__>get[text]minlength<__filterMinLength__>] [<__filterMinLength__>match[0]] +[limit[1]]\" variable=\"ignore\">\n<$vars userInput={{{ [<__storeTitle__>get[text]] }}} selectedItem={{{ [<__selectionStateTitle__>get[text]] }}}>\n<$set name=\"configTiddler\" value={{{ [subfilter<__configTiddlerFilter__>] }}}>\n<$vars primaryListFilter={{{ [<configTiddler>get<__firstSearchFilterField__>] }}} secondaryListFilter={{{ [<configTiddler>get<__secondSearchFilterField__>] }}}>\n<$set name=\"filteredList\" filter=\"[subfilter<primaryListFilter>addsuffix[-primaryList]] =[subfilter<secondaryListFilter>addsuffix[-secondaryList]]\">\n<$vars nextItem={{{ [enlist<filteredList>$afterOrBefore$<selectedItem>] ~[enlist<filteredList>$reverse$nth[1]] }}} firstItem={{{ [enlist<filteredList>nth[1]] }}} lastItem={{{ [enlist<filteredList>last[]] }}}>\n<$list filter=\"[<selectedItem>match<firstItem>!match<lastItem>]\" variable=\"ignore\">\n<$set name=\"nextItem\" value={{{ [[$afterOrBefore$]match[before]then<userInput>addsuffix[-userInput]] ~[<nextItem>] }}}>\n<<input-next-actions-inner>>\n</$set>\n</$list>\n<$list filter=\"[<selectedItem>match<lastItem>!match<firstItem>]\" variable=\"ignore\">\n<$set name=\"nextItem\" value={{{ [[$afterOrBefore$]match[after]then<userInput>addsuffix[-userInput]] ~[<nextItem>] }}}>\n<<input-next-actions-inner>>\n</$set>\n</$list>\n<$list filter=\"[<selectedItem>match<firstItem>match<lastItem>]\" variable=\"ignore\">\n<$set name=\"nextItem\" value={{{ [<userInput>addsuffix[-userInput]] }}}>\n<<input-next-actions-inner>>\n</$set>\n</$list>\n<$list filter=\"[<selectedItem>!match<firstItem>!match<lastItem>]\" variable=\"ignore\">\n<<input-next-actions-inner>>\n</$list>\n</$vars>\n</$set>\n</$vars>\n</$set>\n</$vars>\n</$list>\n\\end\n\n\\define keyboard-driven-input(tiddler,storeTitle,field:\"text\",index:\"\",tag:\"input\",type,focus:\"\",inputAcceptActions,inputAcceptVariantActions,inputCancelActions,placeholder:\"\",default:\"\",class,focusPopup,rows,minHeight,tabindex,size,autoHeight,filterMinLength:\"0\",refreshTitle,selectionStateTitle,cancelPopups:\"\",configTiddlerFilter,firstSearchFilterField:\"first-search-filter\",secondSearchFilterField:\"second-search-filter\")\n\\whitespace trim\n<$keyboard key=\"((input-accept))\" actions=<<__inputAcceptActions__>>>\n<$keyboard key=\"((input-accept-variant))\" actions=<<__inputAcceptVariantActions__>>>\n<$keyboard key=\"((input-up))\" actions=<<input-next-actions \"before\" \"reverse[]\">>>\n<$keyboard key=\"((input-down))\" actions=<<input-next-actions>>>\n<$keyboard key=\"((input-cancel))\" actions=<<__inputCancelActions__>>>\n<$edit-text tiddler=<<__tiddler__>> field=<<__field__>> index=<<__index__>> \n\t\tinputActions=<<keyboard-input-actions>> tag=<<__tag__>> class=<<__class__>> \n\t\tplaceholder=<<__placeholder__>> default=<<__default__>> focusPopup=<<__focusPopup__>> \n\t\tfocus=<<__focus__>> type=<<__type__>> rows=<<__rows__>> minHeight=<<__minHeight__>> \n\t\ttabindex=<<__tabindex__>> size=<<__size__>> autoHeight=<<__autoHeight__>> \n\t\trefreshTitle=<<__refreshTitle__>> cancelPopups=<<__cancelPopups__>>/>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n\\end\n"
        },
        "$:/core/macros/lingo": {
            "title": "$:/core/macros/lingo",
            "tags": "$:/tags/Macro",
            "text": "\\define lingo-base()\n$:/language/\n\\end\n\n\\define lingo(title)\n{{$(lingo-base)$$title$}}\n\\end\n"
        },
        "$:/core/macros/list": {
            "title": "$:/core/macros/list",
            "tags": "$:/tags/Macro",
            "text": "\\define list-links(filter,type:\"ul\",subtype:\"li\",class:\"\",emptyMessage)\n\\whitespace trim\n<$type$ class=\"$class$\">\n<$list filter=\"$filter$\" emptyMessage=<<__emptyMessage__>>>\n<$subtype$>\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$subtype$>\n</$list>\n</$type$>\n\\end\n\n\\define list-links-draggable-drop-actions()\n<$action-listops $tiddler=<<targetTiddler>> $field=<<targetField>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define list-links-draggable(tiddler,field:\"list\",type:\"ul\",subtype:\"li\",class:\"\",itemTemplate)\n\\whitespace trim\n<span class=\"tc-links-draggable-list\">\n<$vars targetTiddler=\"\"\"$tiddler$\"\"\" targetField=\"\"\"$field$\"\"\">\n<$type$ class=\"$class$\">\n<$list filter=\"[list[$tiddler$!!$field$]]\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"\"\"$subtype$\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<div class=\"tc-droppable-placeholder\"/>\n<div>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$transclude>\n</div>\n</$droppable>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"div\" enable=<<tv-enable-drag-and-drop>>>\n<div class=\"tc-droppable-placeholder\">\n{{$:/core/images/blank}}\n</div>\n<div style=\"height:0.5em;\"/>\n</$droppable>\n</$tiddler>\n</$type$>\n</$vars>\n</span>\n\\end\n\n\\define list-tagged-draggable-drop-actions(tag)\n<!-- Save the current ordering of the tiddlers with this tag -->\n<$set name=\"order\" filter=\"[<__tag__>tagging[]]\">\n<!-- Remove any list-after or list-before fields from the tiddlers with this tag -->\n<$list filter=\"[<__tag__>tagging[]]\">\n<$action-deletefield $field=\"list-before\"/>\n<$action-deletefield $field=\"list-after\"/>\n</$list>\n<!-- Save the new order to the Tag Tiddler -->\n<$action-listops $tiddler=<<__tag__>> $field=\"list\" $filter=\"+[enlist<order>] +[insertbefore:currentTiddler<actionTiddler>]\"/>\n<!-- Make sure the newly added item has the right tag -->\n<!-- Removing this line makes dragging tags within the dropdown work as intended -->\n<!--<$action-listops $tiddler=<<actionTiddler>> $tags=<<__tag__>>/>-->\n<!-- Using the following 5 lines as replacement makes dragging titles from outside into the dropdown apply the tag -->\n<$list filter=\"[<actionTiddler>!contains:tags<__tag__>]\">\n<$fieldmangler tiddler=<<actionTiddler>>>\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<__tag__>>/>\n</$fieldmangler>\n</$list>\n</$set>\n\\end\n\n\\define list-tagged-draggable(tag,subFilter,emptyMessage,itemTemplate,elementTag:\"div\",storyview:\"\")\n\\whitespace trim\n<span class=\"tc-tagged-draggable-list\">\n<$set name=\"tag\" value=<<__tag__>>>\n<$list filter=\"[<__tag__>tagging[]$subFilter$]\" emptyMessage=<<__emptyMessage__>> storyview=<<__storyview__>>>\n<$elementTag$ class=\"tc-menu-list-item\">\n<$droppable actions=\"\"\"<$macrocall $name=\"list-tagged-draggable-drop-actions\" tag=<<__tag__>>/>\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<$elementTag$ class=\"tc-droppable-placeholder\"/>\n<$elementTag$>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</$transclude>\n</$elementTag$>\n</$droppable>\n</$elementTag$>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=\"\"\"<$macrocall $name=\"list-tagged-draggable-drop-actions\" tag=<<__tag__>>/>\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<$elementTag$ class=\"tc-droppable-placeholder\"/>\n<$elementTag$ style=\"height:0.5em;\">\n</$elementTag$>\n</$droppable>\n</$tiddler>\n</$set>\n</span>\n\\end\n"
        },
        "$:/core/macros/tabs": {
            "title": "$:/core/macros/tabs",
            "tags": "$:/tags/Macro",
            "text": "\\define tabs(tabsList,default,state:\"$:/state/tab\",class,template,buttonTemplate,retain,actions,explicitState)\n<$set name=\"qualifiedState\" value=<<qualify \"$state$\">>>\n<$vars tabsState={{{ [<__explicitState__>minlength[1]] ~[<qualifiedState>] }}}>\n<div class=\"tc-tab-set $class$\">\n<div class=\"tc-tab-buttons $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\" storyview=\"pop\"><$set name=\"save-currentTiddler\" value=<<currentTiddler>>><$tiddler tiddler=<<currentTab>>><$button set=<<tabsState>> setTo=<<currentTab>> default=\"$default$\" selectedClass=\"tc-tab-selected\" tooltip={{!!tooltip}}>\n<$tiddler tiddler=<<save-currentTiddler>>>\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude tiddler=\"$buttonTemplate$\" mode=\"inline\">\n<$transclude tiddler=<<currentTab>> field=\"caption\">\n<$macrocall $name=\"currentTab\" $type=\"text/plain\" $output=\"text/plain\"/>\n</$transclude>\n</$transclude>\n</$set></$tiddler>$actions$</$button></$tiddler></$set></$list>\n</div>\n<div class=\"tc-tab-divider $class$\"/>\n<div class=\"tc-tab-content $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\">\n\n<$reveal type=\"match\" state=<<tabsState>> text=<<currentTab>> default=\"$default$\" retain=\"\"\"$retain$\"\"\">\n\n<$transclude tiddler=\"$template$\" mode=\"block\">\n\n<$transclude tiddler=<<currentTab>> mode=\"block\"/>\n\n</$transclude>\n\n</$reveal>\n\n</$list>\n</div>\n</div>\n</$vars>\n</$set>\n\\end\n"
        },
        "$:/core/macros/tag-picker": {
            "title": "$:/core/macros/tag-picker",
            "tags": "$:/tags/Macro",
            "first-search-filter": "[tags[]!is[system]search:title<userInput>sort[]]",
            "second-search-filter": "[tags[]is[system]search:title<userInput>sort[]]",
            "text": "\\define get-tagpicker-focus-selector() [data-tiddler-title=\"$(currentTiddlerCSSEscaped)$\"] .tc-add-tag-name input\n\n\\define delete-tag-state-tiddlers() <$action-deletetiddler $filter=\"[<newTagNameTiddler>] [<storeTitle>] [<tagSelectionState>]\"/>\n\n\\define add-tag-actions(actions,tagField:\"tags\")\n<$set name=\"tag\" value={{{ [<__tiddler__>get[text]] }}}>\n<$list filter=\"[<saveTiddler>!contains:$tagField$<tag>!match[]]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$action-listops $tiddler=<<saveTiddler>> $field=<<__tagField__>> $subfilter=\"-[<tag>]\"/>\n\"\"\">\n<$action-listops $tiddler=<<saveTiddler>> $field=<<__tagField__>> $subfilter=\"[<tag>]\"/>\n$actions$\n</$list>\n</$set>\n<<delete-tag-state-tiddlers>>\n<$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/>\n\\end\n\n\\define clear-tags-actions-inner()\n<$list filter=\"[<storeTitle>has[text]] [<newTagNameTiddler>has[text]]\" variable=\"ignore\" emptyMessage=\"\"\"<<cancel-delete-tiddler-actions \"cancel\">>\"\"\">\n<<delete-tag-state-tiddlers>>\n</$list>\n\\end\n\n\\define clear-tags-actions()\n<$set name=\"userInput\" value={{{ [<storeTitle>get[text]] }}}>\n<$list filter=\"[<newTagNameTiddler>get[text]!match<userInput>]\" emptyMessage=\"\"\"<<clear-tags-actions-inner>>\"\"\">\n<$action-setfield $tiddler=<<newTagNameTiddler>> text=<<userInput>>/><$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/>\n</$list>\n</$set>\n\\end\n\n\\define tag-picker-inner(actions,tagField:\"tags\")\n\\whitespace trim\n<$vars newTagNameInputTiddlerQualified=<<qualify \"$:/temp/NewTagName/input\">> newTagNameSelectionTiddlerQualified=<<qualify \"$:/temp/NewTagName/selected-item\">> fallbackTarget={{$(palette)$##tag-background}} colourA={{$(palette)$##foreground}} colourB={{$(palette)$##background}}>\n<$vars storeTitle={{{ [<newTagNameInputTiddler>!match[]] ~[<newTagNameInputTiddlerQualified>] }}} tagSelectionState={{{ [<newTagNameSelectionTiddler>!match[]] ~[<newTagNameSelectionTiddlerQualified>] }}}>\n<$vars refreshTitle=<<qualify \"$:/temp/NewTagName/refresh\">> nonSystemTagsFilter=\"[tags[]!is[system]search:title<userInput>sort[]]\" systemTagsFilter=\"[tags[]is[system]search:title<userInput>sort[]]\">\n<div class=\"tc-edit-add-tag\">\n<div>\n<span class=\"tc-add-tag-name tc-small-gap-right\">\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<newTagNameTiddler>> storeTitle=<<storeTitle>> refreshTitle=<<refreshTitle>>\n\t\tselectionStateTitle=<<tagSelectionState>> inputAcceptActions=\"\"\"<$macrocall $name=\"add-tag-actions\" actions=<<__actions__>> tagField=<<__tagField__>>/>\"\"\"\n\t\tinputCancelActions=<<clear-tags-actions>> tag=\"input\" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}}\n\t\tfocusPopup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-edit-texteditor tc-popup-handle\" tabindex=<<tabIndex>> \n\t\tfocus={{{ [{$:/config/AutoFocus}match[tags]then[true]] ~[[false]] }}} filterMinLength={{$:/config/Tags/MinLength}} \n\t\tcancelPopups=<<cancelPopups>> configTiddlerFilter=\"[[$:/core/macros/tag-picker]]\"/>\n</span><$button popup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Tags/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Tags/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button><$reveal state=<<storeTitle>> type=\"nomatch\" text=\"\"><$button class=\"tc-btn-invisible tc-small-gap tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Tags/ClearInput/Hint}} aria-label={{$:/language/EditTemplate/Tags/ClearInput/Caption}}>{{$:/core/images/close-button}}<<delete-tag-state-tiddlers>></$button></$reveal><span class=\"tc-add-tag-button tc-small-gap-left\">\n<$set name=\"tag\" value={{{ [<newTagNameTiddler>get[text]] }}}>\n<$button set=<<newTagNameTiddler>> setTo=\"\" class=\"\">\n<$action-listops $tiddler=<<saveTiddler>> $field=<<__tagField__>> $subfilter=\"[<tag>]\"/>\n$actions$\n<$set name=\"currentTiddlerCSSEscaped\" value={{{ [<saveTiddler>escapecss[]] }}}>\n<<delete-tag-state-tiddlers>><$action-sendmessage $message=\"tm-focus-selector\" $param=<<get-tagpicker-focus-selector>>/>\n</$set>\n{{$:/language/EditTemplate/Tags/Add/Button}}\n</$button>\n</$set>\n</span>\n</div>\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/popup/tags-auto-complete\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-block-tags-dropdown\">\n<$set name=\"userInput\" value={{{ [<storeTitle>get[text]] }}}>\n<$list filter=\"[<userInput>minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$list filter=<<nonSystemTagsFilter>> variable=\"tag\">\n<$list filter=\"[<tag>addsuffix[-primaryList]] -[<tagSelectionState>get[text]]\" emptyMessage=\"\"\"<$vars button-classes=\"tc-btn-invisible tc-tag-button-selected\" actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<<tag>>>{{||$:/core/ui/TagPickerTagTemplate}}</$vars>\"\"\">\n<$vars button-classes=\"tc-btn-invisible\" actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<<tag>>>{{||$:/core/ui/TagPickerTagTemplate}}</$vars>\n</$list>\n</$list></$list>\n<hr>\n<$list filter=\"[<userInput>minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$list filter=<<systemTagsFilter>> variable=\"tag\">\n<$list filter=\"[<tag>addsuffix[-secondaryList]] -[<tagSelectionState>get[text]]\" emptyMessage=\"\"\"<$vars button-classes=\"tc-btn-invisible tc-tag-button-selected\" actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<<tag>>>{{||$:/core/ui/TagPickerTagTemplate}}</$vars>\"\"\">\n<$vars button-classes=\"tc-btn-invisible\" actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<<tag>>>{{||$:/core/ui/TagPickerTagTemplate}}</$vars>\n</$list>\n</$list></$list>\n</$set>\n</div>\n</$reveal>\n</div>\n</div>\n</$vars>\n</$vars>\n</$vars>\n\\end\n\\define tag-picker(actions,tagField:\"tags\")\n\\whitespace trim\n<$vars saveTiddler=<<currentTiddler>> palette={{$:/palette}}>\n<$list filter=\"[<newTagNameTiddler>match[]]\" emptyMessage=\"\"\"<$macrocall $name=\"tag-picker-inner\" actions=<<__actions__>> tagField=<<__tagField__>>/>\"\"\">\n<$set name=\"newTagNameTiddler\" value=<<qualify \"$:/temp/NewTagName\">>>\n<$macrocall $name=\"tag-picker-inner\" actions=<<__actions__>> tagField=<<__tagField__>>/>\n</$set>\n</$list>\n</$vars>\n\\end\n"
        },
        "$:/core/macros/tag": {
            "title": "$:/core/macros/tag",
            "tags": "$:/tags/Macro",
            "text": "\\define tag-pill-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-pill-inner(tag,icon,colour,fallbackTarget,colourA,colourB,element-tag,element-attributes,actions)\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<$element-tag$ $element-attributes$ class=\"tc-tag-label tc-btn-invisible\" style=<<tag-pill-styles>>>\n$actions$<$transclude tiddler=\"\"\"$icon$\"\"\"/><$view tiddler=<<__tag__>> field=\"title\" format=\"text\" />\n</$element-tag$>\n</$vars>\n\\end\n\n\\define tag-pill-body(tag,icon,colour,palette,element-tag,element-attributes,actions)\n<$macrocall $name=\"tag-pill-inner\" tag=<<__tag__>> icon=\"\"\"$icon$\"\"\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n\n\\define tag-pill(tag,element-tag:\"span\",element-attributes:\"\",actions:\"\")\n<span class=\"tc-tag-list-item\">\n<$macrocall $name=\"tag-pill-body\" tag=<<__tag__>> icon={{{ [<__tag__>get[icon]] }}} colour={{{ [<__tag__>get[color]] }}} palette={{$:/palette}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</span>\n\\end\n\n\\define tag(tag)\n{{$tag$||$:/core/ui/TagTemplate}}\n\\end\n"
        },
        "$:/core/macros/thumbnails": {
            "title": "$:/core/macros/thumbnails",
            "tags": "$:/tags/Macro",
            "text": "\\define thumbnail(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<$link to=\"\"\"$link$\"\"\"><div class=\"tc-thumbnail-wrapper\">\n<div class=\"tc-thumbnail-image\" style=\"width:$width$px;height:$height$px;\"><$reveal type=\"nomatch\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" style=\"width:$width$px;height:$height$px;\">\n[img[$image$]]\n</$reveal><$reveal type=\"match\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" class=\"tc-thumbnail-background\" style=\"width:$width$px;height:$height$px;background-color:$background-color$;\"></$reveal></div><div class=\"tc-thumbnail-icon\" style=\"fill:$color$;color:$color$;\">\n$icon$\n</div><div class=\"tc-thumbnail-caption\">\n$caption$\n</div>\n</div></$link>\n\\end\n\n\\define thumbnail-right(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<div class=\"tc-thumbnail-right-wrapper\"><<thumbnail \"\"\"$link$\"\"\" \"\"\"$icon$\"\"\" \"\"\"$color$\"\"\" \"\"\"$background-color$\"\"\" \"\"\"$image$\"\"\" \"\"\"$caption$\"\"\" \"\"\"$width$\"\"\" \"\"\"$height$\"\"\">></div>\n\\end\n\n\\define list-thumbnails(filter,width:\"280\",height:\"157\")\n<$list filter=\"\"\"$filter$\"\"\"><$macrocall $name=\"thumbnail\" link={{!!link}} icon={{!!icon}} color={{!!color}} background-color={{!!background-color}} image={{!!image}} caption={{!!caption}} width=\"\"\"$width$\"\"\" height=\"\"\"$height$\"\"\"/></$list>\n\\end\n"
        },
        "$:/core/macros/timeline": {
            "title": "$:/core/macros/timeline",
            "created": "20141212105914482",
            "modified": "20141212110330815",
            "tags": "$:/tags/Macro",
            "text": "\\define timeline-title()\n\\whitespace trim\n<!-- Override this macro with a global macro \n     of the same name if you need to change \n     how titles are displayed on the timeline \n     -->\n<$view field=\"title\"/>\n\\end\n\\define timeline(limit:\"100\",format:\"DDth MMM YYYY\",subfilter:\"\",dateField:\"modified\")\n<div class=\"tc-timeline\">\n<$list filter=\"[!is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]\">\n<div class=\"tc-menu-list-item\">\n<$view field=\"$dateField$\" format=\"date\" template=\"$format$\"/>\n<$list filter=\"[sameday:$dateField${!!$dateField$}!is[system]$subfilter$!sort[$dateField$]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><<timeline-title>></$link>\n</div>\n</$list>\n</div>\n</$list>\n</div>\n\\end\n"
        },
        "$:/core/macros/toc": {
            "title": "$:/core/macros/toc",
            "tags": "$:/tags/Macro",
            "text": "\\define toc-caption()\n<$set name=\"tv-wikilinks\" value=\"no\">\n  <$transclude field=\"caption\">\n    <$view field=\"title\"/>\n  </$transclude>\n</$set>\n\\end\n\n\\define toc-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<ol class=\"tc-toc\">\n  <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n    <$vars item=<<currentTiddler>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n      <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n        <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n          <li class=<<toc-item-class>>>\n            <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=\"<$link to={{{ [<currentTiddler>get[target]else<currentTiddler>] }}}><$view field='caption'><$view field='title'/></$view></$link>\">\n              <<toc-caption>>\n            </$list>\n            <$macrocall $name=\"toc-body\" tag=<<item>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>\n          </li>\n        </$set>\n      </$set>\n    </$vars>\n  </$list>\n</ol>\n\\end\n\n\\define toc(tag,sort:\"\",itemClassFilter:\"\")\n<$macrocall $name=\"toc-body\"  tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> />\n\\end\n\n\\define toc-linked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n  <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n    <li class=<<toc-item-class>>>\n    <$link to={{{ [<currentTiddler>get[target]else<currentTiddler>] }}}>\n      <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n        <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n          {{$:/core/images/right-arrow}}\n        </$button>\n      </$reveal>\n      <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n        <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n          {{$:/core/images/down-arrow}}\n        </$button>\n      </$reveal>\n      <<toc-caption>>\n    </$link>\n    <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n      <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n    </$reveal>\n    </li>\n  </$set>\n</$qualify>\n\\end\n\n\\define toc-unlinked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n  <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n    <li class=<<toc-item-class>>>\n      <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n        <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n          {{$:/core/images/right-arrow}}\n          <<toc-caption>>\n        </$button>\n      </$reveal>\n      <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n        <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n          {{$:/core/images/down-arrow}}\n          <<toc-caption>>\n        </$button>\n      </$reveal>\n      <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n        <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n      </$reveal>\n    </li>\n  </$set>\n</$qualify>\n\\end\n\n\\define toc-expandable-empty-message()\n<$macrocall $name=\"toc-linked-expandable-body\" tag=<<tag>> sort=<<sort>> itemClassFilter=<<itemClassFilter>> exclude=<<excluded>> path=<<path>>/>\n\\end\n\n\\define toc-expandable(tag,sort:\"\",itemClassFilter:\"\",exclude,path)\n<$vars tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n  <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n    <ol class=\"tc-toc toc-expandable\">\n      <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n        <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=<<toc-expandable-empty-message>> >\n          <$macrocall $name=\"toc-unlinked-expandable-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=\"\"\"itemClassFilter\"\"\" exclude=<<excluded>> path=<<path>> />\n        </$list>\n      </$list>\n    </ol>\n  </$set>\n</$vars>\n\\end\n\n\\define toc-linked-selective-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n  <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\" >\n    <li class=<<toc-item-class>>>\n      <$link to={{{ [<currentTiddler>get[target]else<currentTiddler>] }}}>\n          <$list filter=\"[all[current]tagging[]$sort$limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>\">\n          <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n            <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n              {{$:/core/images/right-arrow}}\n            </$button>\n          </$reveal>\n          <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n            <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n              {{$:/core/images/down-arrow}}\n            </$button>\n          </$reveal>\n        </$list>\n        <<toc-caption>>\n      </$link>\n      <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n        <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n      </$reveal>\n    </li>\n  </$set>\n</$qualify>\n\\end\n\n\\define toc-unlinked-selective-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n  <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n    <li class=<<toc-item-class>>>\n      <$list filter=\"[all[current]tagging[]$sort$limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button> <$view field='caption'><$view field='title'/></$view>\">\n        <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n          <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n            {{$:/core/images/right-arrow}}\n            <<toc-caption>>\n          </$button>\n        </$reveal>\n        <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n          <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n            {{$:/core/images/down-arrow}}\n            <<toc-caption>>\n          </$button>\n        </$reveal>\n      </$list>\n      <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n        <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n      </$reveal>\n    </li>\n  </$set>\n</$qualify>\n\\end\n\n\\define toc-selective-expandable-empty-message()\n<$macrocall $name=\"toc-linked-selective-expandable-body\" tag=<<tag>> sort=<<sort>> itemClassFilter=<<itemClassFilter>> exclude=<<excluded>> path=<<path>>/>\n\\end\n\n\\define toc-selective-expandable(tag,sort:\"\",itemClassFilter,exclude,path)\n<$vars tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n  <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n    <ol class=\"tc-toc toc-selective-expandable\">\n      <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n        <$list filter=\"[all[current]toc-link[no]]\" variable=\"ignore\" emptyMessage=<<toc-selective-expandable-empty-message>> >\n          <$macrocall $name=\"toc-unlinked-selective-expandable-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>\n        </$list>\n      </$list>\n    </ol>\n  </$set>\n</$vars>\n\\end\n\n\\define toc-tabbed-external-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$tiddler tiddler={{{ [<__selectedTiddler__>get[text]] }}}>\n  <div class=\"tc-tabbed-table-of-contents\">\n    <$linkcatcher to=<<__selectedTiddler__>>>\n      <div class=\"tc-table-of-contents\">\n        <$macrocall $name=\"toc-selective-expandable\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=\"[all[current]] -[<__selectedTiddler__>get[text]]\"/>\n      </div>\n    </$linkcatcher>\n    <div class=\"tc-tabbed-table-of-contents-content\">\n      <$reveal stateTitle=<<__selectedTiddler__>> type=\"nomatch\" text=\"\">\n        <$transclude mode=\"block\" tiddler=<<__template__>>>\n          <h1><<toc-caption>></h1>\n          <$transclude mode=\"block\">$missingText$</$transclude>\n        </$transclude>\n      </$reveal>\n      <$reveal stateTitle=<<__selectedTiddler__>> type=\"match\" text=\"\">\n        $unselectedText$\n      </$reveal>\n    </div>\n  </div>\n</$tiddler>\n\\end\n\n\\define toc-tabbed-internal-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$linkcatcher to=<<__selectedTiddler__>>>\n  <$macrocall $name=\"toc-tabbed-external-nav\" tag=<<__tag__>> sort=<<__sort__>> selectedTiddler=<<__selectedTiddler__>> unselectedText=<<__unselectedText__>> missingText=<<__missingText__>> template=<<__template__>>/>\n</$linkcatcher>\n\\end\n\n"
        },
        "$:/core/macros/translink": {
            "title": "$:/core/macros/translink",
            "tags": "$:/tags/Macro",
            "text": "\\define translink(title,mode:\"block\")\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: black; foreground; white;\">\n<$link to=\"\"\"$title$\"\"\">\n<$text text=\"\"\"$title$\"\"\"/>\n</$link>\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: white; foreground; black;\">\n<$transclude tiddler=\"\"\"$title$\"\"\" mode=\"$mode$\">\n\"<$text text=\"\"\"$title$\"\"\"/>\" is missing\n</$transclude>\n</div>\n</div>\n\\end\n"
        },
        "$:/core/macros/tree": {
            "title": "$:/core/macros/tree",
            "tags": "$:/tags/Macro",
            "text": "\\define leaf-link(full-title,chunk,separator: \"/\")\n<$link to=<<__full-title__>>><$text text=<<__chunk__>>/></$link>\n\\end\n\n\\define leaf-node(prefix,chunk)\n<li>\n<$list filter=\"[<__prefix__>addsuffix<__chunk__>is[shadow]] [<__prefix__>addsuffix<__chunk__>is[tiddler]]\" variable=\"full-title\">\n<$list filter=\"[<full-title>removeprefix<__prefix__>]\" variable=\"chunk\">\n<span>{{$:/core/images/file}}</span> <$macrocall $name=\"leaf-link\" full-title=<<full-title>> chunk=<<chunk>>/>\n</$list>\n</$list>\n</li>\n\\end\n\n\\define branch-node(prefix,chunk,separator: \"/\")\n<li>\n<$set name=\"reveal-state\" value={{{ [[$:/state/tree/]addsuffix<__prefix__>addsuffix<__chunk__>] }}}>\n<$reveal type=\"nomatch\" stateTitle=<<reveal-state>> text=\"show\">\n<$button setTitle=<<reveal-state>> setTo=\"show\" class=\"tc-btn-invisible\">\n{{$:/core/images/folder}} <$text text=<<__chunk__>>/>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<reveal-state>> text=\"show\">\n<$button setTitle=<<reveal-state>> setTo=\"hide\" class=\"tc-btn-invisible\">\n{{$:/core/images/folder}} <$text text=<<__chunk__>>/>\n</$button>\n</$reveal>\n<span>(<$count filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>removeprefix<__chunk__>] -[<__prefix__>addsuffix<__chunk__>]\"/>)</span>\n<$reveal type=\"match\" stateTitle=<<reveal-state>> text=\"show\">\n<$macrocall $name=\"tree-node\" prefix={{{ [<__prefix__>addsuffix<__chunk__>] }}} separator=<<__separator__>>/>\n</$reveal>\n</$set>\n</li>\n\\end\n\n\\define tree-node(prefix,separator: \"/\")\n<ol>\n<$list filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]!suffix<__separator__>]\" variable=\"chunk\">\n<$macrocall $name=\"leaf-node\" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>\n</$list>\n<$list filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]suffix<__separator__>]\" variable=\"chunk\">\n<$macrocall $name=\"branch-node\" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>\n</$list>\n</ol>\n\\end\n\n\\define tree(prefix: \"$:/\",separator: \"/\")\n<div class=\"tc-tree\">\n<span><$text text=<<__prefix__>>/></span>\n<div>\n<$macrocall $name=\"tree-node\" prefix=<<__prefix__>> separator=<<__separator__>>/>\n</div>\n</div>\n\\end\n"
        },
        "$:/core/macros/utils": {
            "title": "$:/core/macros/utils",
            "text": "\\define colour(colour)\n$colour$\n\\end\n"
        },
        "$:/snippets/minifocusswitcher": {
            "title": "$:/snippets/minifocusswitcher",
            "text": "<$select tiddler=\"$:/config/AutoFocus\">\n<$list filter=\"title tags text type fields\">\n<option value=<<currentTiddler>>><<currentTiddler>></option>\n</$list>\n</$select>\n"
        },
        "$:/snippets/minilanguageswitcher": {
            "title": "$:/snippets/minilanguageswitcher",
            "text": "<$select tiddler=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"description\"><$view field=\"name\"><$view field=\"title\"/></$view></$view></option>\n</$list>\n</$select>"
        },
        "$:/snippets/minithemeswitcher": {
            "title": "$:/snippets/minithemeswitcher",
            "text": "\\define lingo-base() $:/language/ControlPanel/Theme/\n<<lingo Prompt>> <$select tiddler=\"$:/theme\">\n<$list filter=\"[plugin-type[theme]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"name\"><$view field=\"title\"/></$view></option>\n</$list>\n</$select>"
        },
        "$:/snippets/modules": {
            "title": "$:/snippets/modules",
            "text": "\\define describeModuleType(type)\n{{$:/language/Docs/ModuleTypes/$type$}}\n\\end\n<$list filter=\"[moduletypes[]]\">\n\n!! <$macrocall $name=\"currentTiddler\" $type=\"text/plain\" $output=\"text/plain\"/>\n\n<$macrocall $name=\"describeModuleType\" type=<<currentTiddler>>/>\n\n<ul><$list filter=\"[all[current]modules[]]\"><li><$link><<currentTiddler>></$link>\n</li>\n</$list>\n</ul>\n</$list>\n"
        },
        "$:/palette": {
            "title": "$:/palette",
            "text": "$:/palettes/Vanilla"
        },
        "$:/snippets/paletteeditor": {
            "title": "$:/snippets/paletteeditor",
            "text": "<$transclude tiddler=\"$:/PaletteManager\"/>\n"
        },
        "$:/snippets/palettepreview": {
            "title": "$:/snippets/palettepreview",
            "text": "<$set name=\"currentTiddler\" value={{$:/palette}}>\n{{||$:/snippets/currpalettepreview}}\n</$set>\n"
        },
        "$:/snippets/paletteswitcher": {
            "title": "$:/snippets/paletteswitcher",
            "text": "<$linkcatcher to=\"$:/palette\">\n<div class=\"tc-chooser\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]sort[name]]\"><$set name=\"cls\" filter=\"[all[current]prefix{$:/palette}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' - <$view field=\"description\" format=\"text\"/>{{||$:/snippets/currpalettepreview}}</$link>\n</div></$set>\n</$list>\n</div>\n</$linkcatcher>\n"
        },
        "$:/snippets/peek-stylesheets": {
            "title": "$:/snippets/peek-stylesheets",
            "text": "\\define expandable-stylesheets-list()\n<ol>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$vars state=<<qualify \"$:/state/peek-stylesheets/open/\">>>\n<$set name=\"state\" value={{{ [<state>addsuffix<currentTiddler>] }}}>\n<li>\n<$reveal type=\"match\" state=<<state>> text=\"yes\" tag=\"span\">\n<$button set=<<state>> setTo=\"no\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=<<state>> text=\"yes\" tag=\"span\">\n<$button set=<<state>> setTo=\"yes\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$link>\n<$view field=\"title\"/>\n</$link>\n<$reveal type=\"match\" state=<<state>> text=\"yes\" tag=\"div\">\n<$set name=\"source\" tiddler=<<currentTiddler>>>\n<$wikify name=\"styles\" text=<<source>>>\n<pre>\n<code>\n<$text text=<<styles>>/>\n</code>\n</pre>\n</$wikify>\n</$set>\n</$reveal>\n</li>\n</$set>\n</$vars>\n</$list>\n</ol>\n\\end\n\n\\define stylesheets-list()\n<ol>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<li>\n<$link>\n<$view field=\"title\"/>\n</$link>\n<$set name=\"source\" tiddler=<<currentTiddler>>>\n<$wikify name=\"styles\" text=<<source>>>\n<pre>\n<code>\n<$text text=<<styles>>/>\n</code>\n</pre>\n</$wikify>\n</$set>\n</li>\n</$list>\n</ol>\n\\end\n\n<$vars modeState=<<qualify \"$:/state/peek-stylesheets/mode/\">>>\n\n<$reveal type=\"nomatch\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<$button set=<<modeState>> setTo=\"expanded\" class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Stylesheets/Expand/Caption}}</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<$button set=<<modeState>> setTo=\"restored\" class=\"tc-btn-invisible\">{{$:/core/images/chevron-down}} {{$:/language/ControlPanel/Stylesheets/Restore/Caption}}</$button>\n</$reveal>\n\n<$reveal type=\"nomatch\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<<expandable-stylesheets-list>>\n</$reveal>\n<$reveal type=\"match\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<<stylesheets-list>>\n</$reveal>\n\n</$vars>\n"
        },
        "$:/temp/search": {
            "title": "$:/temp/search",
            "text": ""
        },
        "$:/tags/AdvancedSearch": {
            "title": "$:/tags/AdvancedSearch",
            "list": "[[$:/core/ui/AdvancedSearch/Standard]] [[$:/core/ui/AdvancedSearch/System]] [[$:/core/ui/AdvancedSearch/Shadows]] [[$:/core/ui/AdvancedSearch/Filter]]"
        },
        "$:/tags/AdvancedSearch/FilterButton": {
            "title": "$:/tags/AdvancedSearch/FilterButton",
            "list": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown $:/core/ui/AdvancedSearch/Filter/FilterButtons/clear $:/core/ui/AdvancedSearch/Filter/FilterButtons/export $:/core/ui/AdvancedSearch/Filter/FilterButtons/delete"
        },
        "$:/tags/ControlPanel": {
            "title": "$:/tags/ControlPanel",
            "list": "$:/core/ui/ControlPanel/Info $:/core/ui/ControlPanel/Appearance $:/core/ui/ControlPanel/Settings $:/core/ui/ControlPanel/Saving $:/core/ui/ControlPanel/Plugins $:/core/ui/ControlPanel/Tools $:/core/ui/ControlPanel/Internals"
        },
        "$:/tags/ControlPanel/Info": {
            "title": "$:/tags/ControlPanel/Info",
            "list": "$:/core/ui/ControlPanel/Basics $:/core/ui/ControlPanel/Advanced"
        },
        "$:/tags/ControlPanel/Plugins": {
            "title": "$:/tags/ControlPanel/Plugins",
            "list": "[[$:/core/ui/ControlPanel/Plugins/Installed]] [[$:/core/ui/ControlPanel/Plugins/Add]]"
        },
        "$:/tags/EditTemplate": {
            "title": "$:/tags/EditTemplate",
            "list": "[[$:/core/ui/EditTemplate/controls]] [[$:/core/ui/EditTemplate/title]] [[$:/core/ui/EditTemplate/tags]] [[$:/core/ui/EditTemplate/shadow]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/EditTemplate/body]] [[$:/core/ui/EditTemplate/type]] [[$:/core/ui/EditTemplate/fields]]"
        },
        "$:/tags/EditToolbar": {
            "title": "$:/tags/EditToolbar",
            "list": "[[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/cancel]] [[$:/core/ui/Buttons/save]]"
        },
        "$:/tags/EditorToolbar": {
            "title": "$:/tags/EditorToolbar",
            "list": "$:/core/ui/EditorToolbar/paint $:/core/ui/EditorToolbar/opacity $:/core/ui/EditorToolbar/line-width $:/core/ui/EditorToolbar/rotate-left $:/core/ui/EditorToolbar/clear $:/core/ui/EditorToolbar/bold $:/core/ui/EditorToolbar/italic $:/core/ui/EditorToolbar/strikethrough $:/core/ui/EditorToolbar/underline $:/core/ui/EditorToolbar/superscript $:/core/ui/EditorToolbar/subscript $:/core/ui/EditorToolbar/mono-line $:/core/ui/EditorToolbar/mono-block $:/core/ui/EditorToolbar/quote $:/core/ui/EditorToolbar/list-bullet $:/core/ui/EditorToolbar/list-number $:/core/ui/EditorToolbar/heading-1 $:/core/ui/EditorToolbar/heading-2 $:/core/ui/EditorToolbar/heading-3 $:/core/ui/EditorToolbar/heading-4 $:/core/ui/EditorToolbar/heading-5 $:/core/ui/EditorToolbar/heading-6 $:/core/ui/EditorToolbar/link $:/core/ui/EditorToolbar/excise $:/core/ui/EditorToolbar/picture $:/core/ui/EditorToolbar/stamp $:/core/ui/EditorToolbar/size $:/core/ui/EditorToolbar/editor-height $:/core/ui/EditorToolbar/more $:/core/ui/EditorToolbar/preview $:/core/ui/EditorToolbar/preview-type"
        },
        "$:/tags/Manager/ItemMain": {
            "title": "$:/tags/Manager/ItemMain",
            "list": "$:/Manager/ItemMain/WikifiedText $:/Manager/ItemMain/RawText $:/Manager/ItemMain/Fields"
        },
        "$:/tags/Manager/ItemSidebar": {
            "title": "$:/tags/Manager/ItemSidebar",
            "list": "$:/Manager/ItemSidebar/Tags $:/Manager/ItemSidebar/Colour $:/Manager/ItemSidebar/Icon $:/Manager/ItemSidebar/Tools"
        },
        "$:/tags/MoreSideBar": {
            "title": "$:/tags/MoreSideBar",
            "list": "[[$:/core/ui/MoreSideBar/All]] [[$:/core/ui/MoreSideBar/Recent]] [[$:/core/ui/MoreSideBar/Tags]] [[$:/core/ui/MoreSideBar/Missing]] [[$:/core/ui/MoreSideBar/Drafts]] [[$:/core/ui/MoreSideBar/Orphans]] [[$:/core/ui/MoreSideBar/Types]] [[$:/core/ui/MoreSideBar/System]] [[$:/core/ui/MoreSideBar/Shadows]] [[$:/core/ui/MoreSideBar/Explorer]] [[$:/core/ui/MoreSideBar/Plugins]]",
            "text": ""
        },
        "$:/tags/PageControls": {
            "title": "$:/tags/PageControls",
            "list": "[[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/fold-all]] [[$:/core/ui/Buttons/unfold-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/new-journal]] [[$:/core/ui/Buttons/new-image]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/export-page]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/advanced-search]] [[$:/core/ui/Buttons/manager]] [[$:/core/ui/Buttons/tag-manager]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/palette]] [[$:/core/ui/Buttons/theme]] [[$:/core/ui/Buttons/storyview]] [[$:/core/ui/Buttons/encryption]] [[$:/core/ui/Buttons/timestamp]] [[$:/core/ui/Buttons/full-screen]] [[$:/core/ui/Buttons/print]] [[$:/core/ui/Buttons/save-wiki]] [[$:/core/ui/Buttons/refresh]] [[$:/core/ui/Buttons/more-page-actions]]"
        },
        "$:/tags/PageTemplate": {
            "title": "$:/tags/PageTemplate",
            "list": "[[$:/core/ui/PageTemplate/topleftbar]] [[$:/core/ui/PageTemplate/toprightbar]] [[$:/core/ui/PageTemplate/sidebar]] [[$:/core/ui/PageTemplate/story]] [[$:/core/ui/PageTemplate/alerts]]",
            "text": ""
        },
        "$:/tags/PluginLibrary": {
            "title": "$:/tags/PluginLibrary",
            "list": "$:/config/OfficialPluginLibrary"
        },
        "$:/tags/SideBar": {
            "title": "$:/tags/SideBar",
            "list": "[[$:/core/ui/SideBar/Open]] [[$:/core/ui/SideBar/Recent]] [[$:/core/ui/SideBar/Tools]] [[$:/core/ui/SideBar/More]]",
            "text": ""
        },
        "$:/tags/SideBarSegment": {
            "title": "$:/tags/SideBarSegment",
            "list": "[[$:/core/ui/SideBarSegments/site-title]] [[$:/core/ui/SideBarSegments/site-subtitle]] [[$:/core/ui/SideBarSegments/page-controls]] [[$:/core/ui/SideBarSegments/search]] [[$:/core/ui/SideBarSegments/tabs]]"
        },
        "$:/tags/TiddlerInfo": {
            "title": "$:/tags/TiddlerInfo",
            "list": "[[$:/core/ui/TiddlerInfo/Tools]] [[$:/core/ui/TiddlerInfo/References]] [[$:/core/ui/TiddlerInfo/Tagging]] [[$:/core/ui/TiddlerInfo/List]] [[$:/core/ui/TiddlerInfo/Listed]] [[$:/core/ui/TiddlerInfo/Fields]]",
            "text": ""
        },
        "$:/tags/TiddlerInfo/Advanced": {
            "title": "$:/tags/TiddlerInfo/Advanced",
            "list": "[[$:/core/ui/TiddlerInfo/Advanced/ShadowInfo]] [[$:/core/ui/TiddlerInfo/Advanced/PluginInfo]]"
        },
        "$:/tags/ViewTemplate": {
            "title": "$:/tags/ViewTemplate",
            "list": "[[$:/core/ui/ViewTemplate/title]] [[$:/core/ui/ViewTemplate/unfold]] [[$:/core/ui/ViewTemplate/subtitle]] [[$:/core/ui/ViewTemplate/tags]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/ViewTemplate/body]]"
        },
        "$:/tags/ViewToolbar": {
            "title": "$:/tags/ViewToolbar",
            "list": "[[$:/core/ui/Buttons/more-tiddler-actions]] [[$:/core/ui/Buttons/info]] [[$:/core/ui/Buttons/new-here]] [[$:/core/ui/Buttons/new-journal-here]] [[$:/core/ui/Buttons/clone]] [[$:/core/ui/Buttons/export-tiddler]] [[$:/core/ui/Buttons/edit]] [[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/permalink]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/open-window]] [[$:/core/ui/Buttons/close-others]] [[$:/core/ui/Buttons/close]] [[$:/core/ui/Buttons/fold-others]] [[$:/core/ui/Buttons/fold]]"
        },
        "$:/snippets/themeswitcher": {
            "title": "$:/snippets/themeswitcher",
            "text": "<$linkcatcher to=\"$:/theme\">\n<div class=\"tc-chooser\"><$list filter=\"[plugin-type[theme]sort[title]]\"><$set name=\"cls\" filter=\"[all[current]field:title{$:/theme}] [[$:/theme]!has[text]addsuffix[s/tiddlywiki/vanilla]field:title<currentTiddler>] +[limit[1]]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' <$view field=\"description\" format=\"text\"/></$link></div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
        },
        "$:/core/wiki/title": {
            "title": "$:/core/wiki/title",
            "text": "{{$:/SiteTitle}} --- {{$:/SiteSubtitle}}"
        },
        "$:/view": {
            "title": "$:/view",
            "text": "classic"
        },
        "$:/snippets/viewswitcher": {
            "title": "$:/snippets/viewswitcher",
            "text": "\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<$linkcatcher to=\"$:/view\">\n<div class=\"tc-chooser tc-viewswitcher\">\n<$list filter=\"[storyviews[]]\" variable=\"storyview\">\n<$set name=\"cls\" filter=\"[<storyview>prefix{$:/view}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link to=<<storyview>>><$transclude tiddler=<<icon>>/><$text text=<<storyview>>/></$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
        }
    }
}
Home
The following tiddlers were imported:

# [[SkateBIRD by glassbottommeg]]
# [[Backbone by Raw Fury]]
# [[Cloud Gardens by noio]]
# [[CrossCode by Radical Fish Games]]
# [[Thirsty Sword Lesbians by evilhat]]
# [[Kingdom Two Crowns by Raw Fury]]
# [[Wandersong by banov]]
# [[Acid Death Fantasy by Melsonian Arts Council]]
# [[Lucifer Within Us by Kitfox Games]]
# [[Liminal Horror by Goblin Archives]]
# [[Avery Chase - EP1 : Apparition by C.Bedford]]
# [[GoNNER by Raw Fury, Ditto]]
# [[INMOST by Chucklefish Games]]
# [[Figment by Bedtime Digital Games]]
# [[LOST EONS Core Books by David Blandy, laurieoconnel]]
# [[PROLE by Highland Paranormal Society]]
# [[Fatum Betula by Bryce Bucher]]
# [[SUPERHOT by SUPERHOT]]
# [[Dumpy & Bumpy by Programancer]]
# [[Summer Gems by 3ofcupsgames]]
# [[ZeroRanger by system_erasure]]
# [[.dungeon by Batts]]
# [[Anamnesis by Blinking Birch Games]]
# [[Phanta by Kegan (@Keganexe)]]
# [[Sundered: Eldritch Edition by Thunder Lotus]]
# [[The Magus by momatoes]]
# [[Fallen Down: Heartache & Compassion in Undertale by Joel Couture]]
# [[The Wretched by Chris Bissette]]
# [[Troika! Numinous Edition by Melsonian Arts Council]]
# [[Ynglet by Triple Topping]]
# [[TENNNES by jwaaaap]]
# [[2064: Read Only Memories by MidBoss, Kossio, JJSignal]]
# [[A Short Hike by adamgryu]]
# [[Baba Is You by Hempuli]]
# [[Night Call by Raw Fury]]
# [[Skyling : Garden Defense by Mighty Studios]]
# [[Bury me, my Love by Dear Villagers]]
# [[Cook, Serve, Delicious! 2!! by chubigans]]
# [[Fit For A King by Kitfox Games]]
# [[Moon Hunters by Kitfox Games]]
# [[Celeste by Maddy Makes Games]]
# [[Minit Fun Racer by Devolver Digital]]
# [[OMEGANAUT by Txori]]
# [[Promesa by Julian Palacios]]
# [[Shattered Planet by Kitfox Games]]
# [[TowerFall Dark World Expansion by Maddy Makes Games, Heidy Motta]]
# [[Jotun: Valhalla Edition by Thunder Lotus]]
# [[Minit by Devolver Digital]]
# [[Bleed by BootdiskRevolution]]
# [[SPOOKWARE by papercookies, ViktorRKraus, Tib, DreadXP]]
# [[Sunlight by KrillbiteStudio]]
# [[They Bleed Pixels by Spooky Squid Games Inc.]]
# [[TowerFall Ascension by Maddy Makes Games, Heidy Motta]]
# [[A Mortician's Tale by Laundry Bear Games]]
# [[Arcade Spirits by Fiction Factory Games]]
# [[Long Gone Days by Camila Gormaz]]
# [[Midnight Scenes Ep.1: The Highway (Special Edition) by Octavi Navarro]]
# [[the girlfriend of my girlfriend is my friend!! by stargazersasha]]
# [[VISIGOTHS vs MALL GOTHS by Lucian Kahn 🌈🧛🏻‍♂️]]
# [[Midnight Scenes Ep.2: The Goodbye Note (Special Edition) by Octavi Navarro]]
# [[Hidden Folks by Adriaan de Jongh]]
# [[Dragonhearts by FractalDragon]]
# [[A Dance of Fire and Ice by fizzd, giacomopc, Kyle]]
# [[Baldi's Basics Plus by Basically Games]]
# [[Sagebrush by Redact Games]]
# [[Changeling by Steamberry Studio]]
# [[Highway Blossoms: Remastered by Studio Élan, Studio Coattails]]
# [[Cardinal Chains by Daniel Nora]]
# [[Death and Taxes by Placeholder Gameworks]]
# [[Dépanneur Nocturne by KO_OP, G.P.]]
# [[DELVE: A Solo Map Drawing Game by BlackwellWriter]]
# [[Into the Black by Monkey's Paw Games]]
# [[Speed Dating for Ghosts by Copychaser Games]]
# [[Lenna's Inception by ByttenStudio]]
# [[Quadrilateral Cowboy by Blendo Games]]
# [[MewnBase by Cairn4]]
# [[KENZIE'S PROJECT by stargazersasha]]
# [[Fortune-499 by apthomson]]
# [[co-open by lowpolis]]
# [[Democratic Socialism Simulator by molleindustria]]
# [[Sky Rogue by Fractal Phase]]
# [[Gladiabots by GFX47]]
# [[Bleed 2 by BootdiskRevolution]]
# [[Blue Shift by entropatia]]
# [[Fronds of Benevolence by Melsonian Arts Council]]
# [[Nina Aquila: Legal Eagle, Season One by Tanuki-sama Studios]]
# [[Session Zero by Meghan Cross]]
# [[Underhero by Paper Castle]]
# [[Beglitched by Hexecutable, apthomson]]
# [[Runecairn: Core Rules by By Odin's Beard RPG]]
# [[Golf Peaks by afterburn, wrnk, Mirzka]]
# [[FIST by CLAYMORE]]
# [[A Good Snowman Is Hard To Build by Draknek & Friends, Benjamin Davis]]
# [[Detective Case and Clown Bot in: Murder in The Hotel Lisbon by Nerd Monkeys]]
# [[Working For The Corp by 925 Games]]
# [[The Steadfast and the Rebellious by W.H. Arthur]]
# [[The Lost Art of Innkeeping by SeaPhoenix]]
# [[What's So Cool About Lucha Libre? by Color Spray Games]]
# [[Big Rock Candy Hexcrawl by Prismatic Wasteland]]
# [[Super Hexagon by Terry Cavanagh]]
# [[Fostering Apocalypse by Incisor Studios, Mauricio Castillo, toothmonster]]
# [[THE BLACK IRIS by ARBORETA GAMES]]
# [[APOCALYPSE FRAME by Binary Star Games]]
# [[Locus by CobblePath Games]]
# [[UMBRA: A Solo Game of Final Frontiers by BlackwellWriter]]
# [[T-DEF by Lari Assmuth]]
# [[The White Door by Second Maze]]
# [[Cosmic Express by Draknek & Friends, Benjamin Davis]]
# [[Cast Away by Afterthought Committee]]
# [[Rusty Lake Hotel by Rusty Lake]]
# [[Fake Chess by SPC]]
# [[Toree 3D by Siactro]]
# [[Disparateum by Rathayibacter]]
# [[Stories to Astonish the World by yanahn]]
# [[Sodalitas by Jdrlab, janvanhouten, Nicolas Folliot]]
# [[CanariPack 8BIT TopDown by Canari Games]]
# [[Metamorphabet (2015) by Vectorpark]]
# [[Mausritter: The Estate Adventure Collection by Losing Games]]
# [[Six Figures Under by Blinking Birch Games]]
# [[Pushamo by brook.p8]]
# [[Textreme 2 by Ash K, Maxim Loboda, amber hope]]
# [[Far From Home by ehronlime]]
# [[Dragon Drop by Cloudy Games LLC]]
# [[The Witch's Almanac by tallywinkle]]
# [[A Visit To San Sibilia by JimmyShelter]]
# [[Magical Console Warriors by Inkskratch]]
# [[CanariPack 1BIT TopDown by Canari Games]]
# [[Windosill (2009) by Vectorpark]]
# [[The Majesty of Colors by Future Proof Games, M Avery-Weir, Gregory Avery-Weir]]
# [[Into the Glacier by Peach Garden Games]]
# [[Cruel World by droqen, sylvie, Mer Grazzini, NewtonsNinja]]
# [[Macbat 64 by Siactro]]
# [[Lutong Banwa by Diwata ng Manila]]
# [[Bard Harder! by Shark and Pelican Games]]
# [[Shutter Stroll by Jannik Boysen]]
# [[Old Man's Journey by Broken Rules]]
# [[Demonizer by IoriBranford]]
# [[Ithaca in the Cards by ehronlime]]
# [[Aventures en une page · Saison 1 by Jdrlab, janvanhouten, Nicolas Folliot]]
# [[DUFE: Masquerade by Galen Games]]
# [[Cardinal Cross by LarkyLabs]]
# [[Skirmish: Wallet Friendly Wargaming by Biscuit Fund Games]]
# [[The Knights of the Road by bordercholly]]
# [[On The Path by Cat Elm]]
# [[Mysteries Under Lake Ophelia by Bryce Bucher]]
# [[FutureGrind by Milkbag Games]]
# [[Gun Rounds by blabberf]]
# [[Sulphur Nimbus: Hel's Elixir by Oddwarg]]
# [[Hope Is Not a Plan by Deus Ex Minima]]
# [[This Game Takes Place in Your Home Town by Jack Blair]]
# [[Elf Genders by Lucian Kahn 🌈🧛🏻‍♂️]]
# [[Lair of the Gobbler by Emiel Boven]]
# [[MORIAH by Urania Games]]
# [[Elephantasy by Linker]]
# [[Adventure for a Bit by JUSTCAMH]]
# [[Oniria's Slumber by FantasticJean]]
# [[The Vampire Next Door by Cat Elm]]
# [[Mythmaker by kay w.]]
# [[Evergreen Wilds by Disaster Tourism]]
# [[Beneath the Broken Sword by By Odin's Beard RPG]]
# [[Be Not Afraid A.K.A. Seraphim Horror Show!? by Autumn Rain]]
# [[Dates & Wires by Io Black, Cryo]]
# [[Lonely People Potion Shop by Kultisti]]
# [[Vampire Night Shift by cloverfirefly]]
# [[10S by owch]]
# [[I'm a love interest in my childhood friend's reverse harem!!! by WitPOP]]
# [[Questlandia by Turtlebun]]
# [[Alone in Cyberspace by Michael Klamerus]]
# [[Eldritch by Minor Key Games]]
# [[KIDS by Playables]]
# [[Tape by ΛERIF°RM]]
# [[Multi Platformer Tileset by Shackhal]]
# [[Pullfrog by [AFK] Mario Carballo, Amano Games, Joven Paul]]
# [[Two Summers by Côme Martin]]
# [[Adventures On A Single Page · Season 1 by Jdrlab, janvanhouten, Nicolas Folliot]]
# [[You Cannot Kill Me in a Way That Matters by Deus Ex Minima]]
# [[What Crooked Roots for 5e by Cassi Mothwin]]
# [[Superstition by Albi13]]
# [[What's So Rotten About Zombies Defending An Ancient Temple by Stuart Watkinson]]
# [[Pale Cachexia by Argent Games]]
# [[Humble Fonts - Gold by somepx]]
# [[The perpetual broth by IKO, Emiel Boven]]
# [[Beloved by Urania Games]]
# [[Forget-Me-Not: Myosotis by Asmus/Kinas]]
# [[The Third Sector by Ian Yusem]]
# [[10mg: SNAAAK by Clovelt, jokxxi]]
# [[THE MARTIAL CULT of BLOOD KNIGHT GAIUS by CLAYMORE]]
# [[The Rot King's Sanctum by Emiel Boven]]
# [[Pumpkin Eater by thugzilla, Awiola]]
# [[Bleak Spirit by potatocubed]]
# [[Pixel Fireplace by Ted Martens]]
# [[Antecrypt⚡ by PUNKCAKE Délicieux 🥞]]
# [[May Project Na Naman Si Kapitan? by John Erwin]]
# [[Hypnagogia 無限の夢 Boundless Dreams by sodaraptor]]
# [[Yourself by K-Ramstack]]
# [[The Drain by Ian Yusem]]
# [[1-6 Oozes in the Dark by Deus Ex Minima]]
# [[Sophie's Safecracking Simulator by Sophie Houlden]]
# [[A History of Moments by archive15]]
# [[Where Magic Died by Sascha Moros]]
# [[Sweaters by Hedgehog by Haunted Oak Press]]
# [[A Man on the Road by Ian Yusem]]
# [[The Lay Of Our Land by Armanda]]
# [[Sokobond by Draknek & Friends]]
# [[Haque by Super∴Try]]
# [[Pipe Push Paradise by Corey Martin]]
# [[The Lost Night by [AFK] Mario Carballo, Amano Games, Joven Paul]]
# [[Can Androids Pray: Red by Natalie Clayton]]
# [[Starlight Shores by TidalBlossoms]]
# [[Hyperspace Dogfights by sleeper_games]]
# [[Reminiscence in the Night by Team SolEtude]]
# [[Schildmaid MX by HitP Studio]]
# [[Magic & Misdeeds by Scholastic Dragon]]
# [[Bumbling by Button Kin Games]]
# [[Lost To The Starlit Reptiles by JimmyShelter]]
# [[The Mole on PIRAD ONE - a corporate horror adventure for Mothership by Christian Sorrell]]
# [[Landlord of the Woods by madison karrh]]
# [[Hiding Spot by Corey Martin]]
# [[Plunge by SpookyBunsGames]]
# [[JRNL by Blarfnip]]
# [[Clam Man by Marafrass]]
# [[RISE: A Game of Spreading Evil by BlackwellWriter]]
# [[Magnibox by Joseph Gribbin]]
# [[Ultra Hat Dimension by Eniko]]
# [[Hero Hours Contract by Steve O'Gorman]]
# [[/dia by tim zee]]
# [[A Snake's Tale by m12y]]
# [[Rebop Blasters by dean_sick]]
# [[SOLAS 128 by Armor Games Studios, Amicable Animal]]
# [[little boats of farewell by npckc]]
# [[Behind the Masc by Thoughty by Beau Jágr Sheldon]]
# [[Sidewords by Milkbag Games]]
# [[Throw Cubes into Brick Towers To Collapse Them by nothke]]
# [[BOTOLO by Auren Snyder]]
# [[10mg: Sealed Estate by Salman Shurie (Salman_Shh)]]
# [[The Last Survey by Essay Games]]
# [[The Pamphlet of Pantheons by James Holloway]]
# [[Explorers (Deluxe Edition 🗿) by Rémy 🍬 Devaux]]
# [[Zombie Admin by Hastily Assembled Games]]
# [[The Stellar Beacon: Hopepunk Issue by Festive Ninja]]
# [[Midnight Scenes: The Nanny by Octavi Navarro]]
# [[The Spirit of Small Gifts by theinstagrahame]]
# [[Double Cross by Graffiti_Games]]
# [[Pendula Swing: The Complete Journey by Valiant Game Studio]]
# [[Homunculus Hotel by Team SolEtude]]
# [[Volk-san: Egg&Catch by lampysprites]]
# [[Grapple Force Rena by GalaxyTrail, T. Ashley Jenkins]]
# [[Eye of Ra by BEARCABIN]]
# [[Toree 2 by Siactro]]
# [[Card Hog by SnoutUp]]
# [[Glittermitten Grove by Twinbeard]]
# [[i hurt myself - postjam edition by pastellexists]]
# [[Delver by Priority Interrupt, Interrupt, Joshua Skelton]]
# [[inbento by afterburn]]
# [[WATER'S FINE by owch]]
# [[Il Filo Conduttore by Playables]]
# [[Eatvolve by papadar]]
# [[PARTICLE MACE by AndyMakes]]
# [[Pebble Witch by Fuzzy Ghost]]
# [[[Speer] by and0]]
# [[UPSQUID by 01010111, hypyryl]]
# [[Hunter's Moon Remastered by Thalamus Digital Publishing Ltd.]]
# [[A Forgetful Loop by BigHandInSky]]
# [[Alt-Frequencies by Plug In Digital]]
# [[Your Future Self by Contortionist Games]]
# [[World of Solaria: Rural Village Tileset by jamiebrownhill]]
# [[A Modern Prometheus by Mitchell Salmon]]
# [[Backspace Bouken by RNG Party Games]]
# [[Test Kitchen by theinstagrahame]]
# [[Recipe on Kmiydish Paper by Pearse Anderson]]
# [[MiniFolks - Humans by LYASeeK]]
# [[Wrapped With A Kiss by LegendEx Games]]
# [[Cats are Liquid - A Better Place by Last Quarter Studios]]
# [[Depth of Extinction by HOF Studios]]
# [[The Floor is Jelly by Auren Snyder]]
# [[Super Win the Game by J. Kyle Pittman]]
# [[Amelie by Two and a Half Studios]]
# [[Watch Me Jump by Jeremy Gable]]
# [[LiveScream by Lightning Rod Games]]
# [[PALACE OF WOE by owch]]
# [[Danger Crew by Team Danger Crew, Drew Conley, Glenn LaBarre]]
# [[Kaiju Big Battel: Fighto Fantasy by Super Walrus Games]]
# [[Wand Wars by Moonradish]]
# [[Lizzi Crossing by Eva Lee]]
# [[We should talk. by We should talk., Jordan Jones-Brewster, Nobo B, cesca, kat, carolmertz]]
# [[Bonbon by Aetheric Games]]
# [[Fight Item Run by Whimsy Machine]]
# [[Build a Witch by Eliot Silvarian]]
# [[RITE by PondGames]]
# [[Tales From Windy Meadow by Moral Anxiety Studio]]
# [[LOVE 2: kuso by Fred Wood]]
# [[NEON STRUCT by Minor Key Games]]
# [[Galactic Bar Fight by WeirdKidStudios]]
# [[Luna by Funomena]]
# [[Bunny Hill Horror: Bunny Boiler by Krunchy Fried Games]]
# [[Sector 781 by Ben James]]
# [[Pleroma by Aleks Samoylov]]
# [[Cosmic Rochambo by dean_sick]]
# [[Four Horsemen by Nuclear Fishin' Software]]
# [[Self-Checkout Unlimited by Argent Games]]
# [[Butterflies Episode 1: Rudies by Le Capitaine]]
# [[PARANOIHELL by lum]]
# [[Ganbare! Super Strikers by rese]]
# [[CROSSNIQ+ by Max Krieger]]
# [[Tenderfoot Tactics by Badru]]
# [[Circa Infinity by KennySun]]
# [[Gutwhale by Stuffed Wombat]]
# [[MMM: Murder Most Misfortunate by Foolish Mortals]]
# [[SHUT IN by HiddenTrack]]
# [[Penance by Akselmo / Skale Games]]
# [[Yi and the Thousand Moons by David Su]]
# [[Révolution - RPG by Typhos Games]]
# [[Rosette Diceless by Future Proof Games]]
# [[Asterism by Crystal Game Works]]
# [[Don't Escape: 4 Days to Survive by Armor Games Studios]]
# [[Scrapyard Junkbots by André Geleynse]]
# [[The W.A.R Book - Masks: A New Generation Fan Supplement by Five Points Games]]
# [[Wicked Congregation by Daniel Kwan]]
# [[Other Minds by Edward Atkin]]
# [[Fur One Night Only! - Playbill Edition by Color Spray Games]]
# [[Haunting by Arcane Atlas Games, Dice Ghosts]]
# [[Sunken Island by WuDeRPG]]
# [[Whistling Wolf Café by Lucky Newt Games]]
# [[The Waiting by J.N. Butler (they/them)]]
# [[A New Shell by breathingstories]]
# [[Sword Saga by dannymakesrpgs]]
# [[A NIGHTMARE'S TRIP by SKY HOUR WORKS]]
# [[Tallowmere by Chris McFarland]]
# [[ART SQOOL by Glanderco]]
# [[The Wratch's Den 👹 by PUNKCAKE Délicieux 🥞]]
# [[WE ARE DOOMED by Vertex Pop]]
# [[Dogs Throwing Swords II: Three Barks To The Wind by Lily V.]]
# [[Marginalia by Connor Sherlock]]
# [[BasketBelle by onemrbean]]
# [[Disobedient Sheep by sicklydove]]
# [[Commune Corvidae by Mike Agresta]]
# [[IGEO by Mindnumb Interactive]]
# [[The Search by Jason Godbey]]
# [[Nauticrawl by Armor Games Studios, Andrea Interguglielmi]]
# [[Flufftopia by SmokeSomeFrogs]]
# [[cryptkeeper by pancelor]]
# [[The Land Beyond by Cezar Capacle]]
# [[Headspun: Dazed Edition by SUPERSTRING]]
# [[Cats are Liquid - A Light in the Shadows by Last Quarter Studios]]
# [[Not the Robots by 2DArray]]
# [[Xenogunner by Clickteam]]
# [[Soundodger+ by onemrbean]]
# [[Hanukkah Goblins by Max Fefer]]
# [[Operation STEEL by BB]]
# [[Nebs 'n Debs (NES) by Dullahan Software]]
# [[The World is Ending and We Are Very Large Dogs by Eden]]
# [[Guppy by Christiaan Moleman]]
# [[Future Unfolding by Spaces of Play]]
# [[Paris Gondo - The Life-Saving Magic of Inventorying by Kalum from The Rolistes Podcast]]
# [[Reaching in the Dark by ostrichmonkey games]]
# [[The Frost Papers - Ten Games to Play in the Dark by Arcana Games]]
# [[Portrait in a Room of Mirrors by spines]]
# [[Wizard Pals by Tadhg Lyons]]
# [[The Flexorcists by kumada1]]
# [[A Great Miracle Happened Here by Seth Alter]]
# [[Thálassa by zeruhur]]
# [[Rewwixta by Għar Gremxul]]
# [[Tarot Telling For Two by Dvaleris]]
# [[Fossil Hunters by Reptoid Games]]
# [[</reality> by Fancy Fish Games]]
# [[Hero Generations by Heart Shaped Games]]
# [[A Hole New World by MadGearGames]]
# [[Quest of Dungeons by David Amador]]
# [[Combo Postage by Kirk Lindsay]]
# [[Interactivity: The Interactive Experience by Aetheric Games]]
# [[Wizard Battle by Scott Ethington]]
# [[The Light at the End of the Ocean by Jane Titor]]
# [[Color Jumper by Tallbeard Studios]]
# [[Choice Chamber by onemrbean]]
# [[Sun Dogs by Royal Polygon, nictringali]]
# [[8bit Overworld Tileset by itchabop]]
# [[gloom reducer by owch]]
# [[In me, a constellation - a cosmic personality quiz by Nate Kiernan]]
# [[Pass the Buck: A Game of Corporate Responsibility Management by carolmertz]]
# [[Quiet as a Stone by Distant Lantern, Richard Whitelock]]
# [[Bunny Hill Horror by Krunchy Fried Games]]
# [[forma.8 by MixedBagGames]]
# [[Shipwreck by Brushfire Games, Kelly]]
# [[Ripped Pants at Work by Scott Ethington]]
# [[A Light Long Gone by muddasheep]]
# [[The Crystal Golem by Luis S.]]
# [[Spooky Station by Estúdio Vaca Roxa, BubasaSoft, Maurício Ramalho, wesleyronald, Sofa, Expresso Studios, danieldante, Arfo, didigameboy, Heavy sheep games, Relixes, Crowno]]
# [[The Count of Monte Carlo by PhilBlank]]
# [[NO THING by Evil Indie Games]]
# [[LAZA KNITEZ!! by Glitchnap, Joon, dom]]
# [[Curious Expedition by Maschinen-Mensch]]
# [[Death Drives A Bus by Tallbeard Studios]]
# [[Widget Satchel by Noble Robot]]
# [[Rose & Time by Sophie Houlden]]
# [[Possession by Weirdfellows]]
# [[SPLASH BLAST PANIC by TeamKwaKwa]]
# [[Fake Illusions - Encore Update by Auroriax (Tom H.)]]
# [[dstnce. by daniel coady]]
# [[And Yet It Moves by Broken Rules]]
# [[Enoch's Wake: A Player's Guide to the Infinite Void by R. Rook Studio]]
# [[Dreampunk (rulebook) by Xavid]]
# [[Planedawn Orphans by Sharkbomb Studios, mbuntz, Martin Nerurkar]]
# [[sweet*peony by Adam Silverstein]]
# [[Water Landing (Dracula Edition) by theinstagrahame]]
# [[Lords of Eternity by Live Real Productions]]
# [[MiniFolks - Undead by LYASeeK]]
# [[Runt Tabletop Roleplaying System by Devon Wiersma]]
# [[Detail by HorsepondMine]]
# [[Rodents with Guitars by CuriousCat Games]]
# [[Delve Too Deep by seedling]]
# [[Compromise//Empire by Swamphen]]
# [[Filmmakers Without Cameras: a film and games zine by Eryk Sawicki]]
# [[CARRY ON - 24XX Monster Hunters by Chaosmeister]]
# [[LZ13 by emmy]]
# [[Doodle Date by Nick Lives]]
# [[Spell Casting by Gord Games]]
# [[Concentric by zerofiftyone]]
# [[Secrets of Raetikon by Broken Rules]]
# [[The Fall of Lazarus by No Wand Studios, johnny.JPG, Nazhor]]
# [[Towayami by Andrea Pignataro]]
# [[Portal Dogs by Brain Connected]]
# [[Wheels of Aurelia by Santa Ragione, PaoloMonkey]]
# [[FroggieChat by Stupid++]]
# [[Ossuary by Future Proof Games]]
# [[Frick, Inc. by Kenney]]
# [[Dawn of a Soul by Waldemar Umaniz]]
# [[Intra-System: Trust Issues by SmokeSomeFrogs]]
# [[An Airport Game by Konig Games]]
# [[Batbarian: Testament of the Primordials by Dangen Entertainment]]
# [[pygame 4000 book by pygame]]
# [[The Machine's Garden by Too Much Tomato]]
# [[The Empire Never Ended by Majcher Arcana]]
# [[Sedentary Dances by Rule 42 Arts Coalition]]
# [[Gift of the Sea by Glowing Roots Press]]
# [[There's A Wolf In Those Woods by Alex Rinehart]]
# [[Dragons of Tirenia Adventure Module: Double Cross (for use with 5e) by skybeargames]]
# [[The Anatomy of A Song by yanahn]]
# [[Beyond Super: Life Behind The Mask by Max Kämmerer (he/they)]]
# [[The Vitacernis by brstf]]
# [[Third Sphere by Spooky Jaguar Productions]]
# [[Haiduc by Haiduc]]
# [[Sound Typist by andyman404]]
# [[Born of a Bloody Film by ATypicalFaux]]
# [[Dark Academia Ren'py GUI Design by Jaime Scribbles Games]]
# [[We Are Champion by Asmus/Kinas]]
# [[A Voyage to Fairy-Land by amandalee]]
# [[Birds Love Dirt! by Emily Jankowski]]
# [[Pastel Paradise by Robin Fjärem]]
# [[Hi [NAME], I'm Dad! by breathingstories]]
# [[Dangerous Roads Ahead by Maxjk0, ELSHO, Pash]]
# [[Immanence by spicycurrybread]]
# [[TEOCALLI by coldrice]]
# [[Nepenthe by Yitz]]
# [[Peck N Run by Spilt Milk Studios]]
# [[Home - A Unique Horror Adventure by BancyCo]]
# [[EVADER by zerofiftyone]]
# [[Planet Diver by Fabraz]]
# [[Clean ATTACK! by diadas]]
# [[Head AS Code by Miracle Moon]]
# [[Blast Rush by Bipedal Dog]]
# [[Interstellaria by coldrice]]
# [[Quible Sphere by Hertzole]]
# [[Catlandia: Crisis at Fort Pawprint by Polar Tabby]]
# [[RB: Axolotl by Actawesome]]
# [[Sub-Uber-Marine by Extar]]
# [[Intelligent Design: An Evolutionary Sandbox by Pill Bug Interactive]]
# [[Swung by Extra Nice, T3triez, Swung]]
# [[Button City by Subliminal Gaming]]
# [[Chronology: Time Changes Everything by Bedtime Digital Games]]
# [[Gunhouse by Necrosoft Games]]
# [[24 Game Poems by Majcher Arcana]]
# [[Paradise Killer Art Works by KaizenGameWorks]]
# [[INDEPENDANT VIDEO VIDEO GAME by BenWeatherall]]
# [[Stellar Interface by ImaginationOverflow]]
# [[Roll for Confidence: A CMC Vignette by Toadhouse Games]]
# [[Top of the Table Soccer by tim zee]]
# [[The Geography by Paws Menu]]
# [[World of Wyldrvir Core Book (Anniversary Edition) by Wyldrvir RPG]]
# [[Quest Of Graal DX by pixel-boy]]
# [[The Pried Eye: A Trophy Dark Incursion by ATypicalFaux]]
# [[Filmmakers Without Cameras: The Second Issue by Eryk Sawicki]]
# [[NETWORK 23 [ENG] by Mangusta]]
# [[Taimumari: Definitive Edition by TERNOX]]
# [[Deep Forest - 16 Colour Tileset by aamatniekss]]
# [[Soft Focuses by C. R. Legge]]
# [[Iron Edda Reforged: Season One - Jotunheim (ALPHA) by TheOtherTracy]]
# [[Chinese Ghost Stories We Tell Ourselves by DaredevilAlyx]]
# [[UNBEATABLE: DEMO TAPES by D-CELL GAMES]]
# [[GrimBlade RPG by Beckelhimer]]
# [[Orchidelirium, Volume One: Expedition Rules by Luke (Æther Corp)]]
# [[The Manse on Soracca by MoonMuse]]
# [[Rising Tide, a Paragon Playset by cosmicbeagle]]
# [[Ribbons: A Setting Guide for Masks by Eva Terra]]
# [[Kakatte Koi Yo! by Back Slash Games]]
# [[Playing Kindly by Jacqueline Bryk]]
# [[Pixross by Kenney]]
# [[The Map-a-Plot Deck by Eric Nieudan]]
# [[Witch You Were Here by breathingstories]]
# [[Sophie's Cubes by Sophie Houlden]]
# [[Curse of the Emerald Sea by Robin Fjärem]]
# [[Monster Realm: Student Exchange Program by Lucky Newt Games]]
# [[DEMONBREAKERS by instadeath]]
# [[FURIOUS ROADS - Postapoc Tricube Tales by Chaosmeister]]
# [[Duelists Of The Pages by StarshineScribbles]]
# [[Salthaven by Robin Fjärem]]
# [[Panic Factory by Pix Grinder]]
# [[Mutiny Island by Elushis]]
# [[StarFighter R&D HD Edition by Gord Games]]
# [[Curse of the Crescent Isle DX by 1amowery]]
# [[ERRANCE by angela-quidam]]
# [[Without Escape by Bumpy Trail Games]]
# [[The Tower: The Order of XII by Sword Garden Studios]]
# [[Hellcraze by ELV Games]]
# [[About Love, Hate & the other ones by Black Pants Studio, Johannes Spohr]]
# [[The Black Pit by zeruhur]]
# [[Build a Druid by Eliot Silvarian]]
# [[Fairy Corgi Steeplechase by Varnished Truths]]
# [[An American Werewolf in LA (EN) by PlayMedusa]]
# [[Record Store Nightmare by hotseatgames]]
# [[Catty & Batty: The Spirit Guide by muddasheep]]
# [[Spaß Taxi by ScaniX]]
# [[ParamediCats by Jasonsumm]]
# [[Attraction Force by and0]]
# [[Hexed by Misfit Games]]
# [[Chimpology by themorfeus]]
# [[HomeTeam GameDev training library: gamedev textbook, examples, exercises, articles, productivity & philosophy audiobooks by HomeTeam GameDev]]
# [[Last Fleet by Black Armada Games]]
# [[Héros d'Argile by angeldustjdr]]
# [[Tiny Tales: Overworld 2D Tileset Asset Pack by Mega Tiles]]
# [[SC: Monster Pack 2 - DELUXE EDITION by SeraphCircle]]
# [[Infini by Barnaque]]
# [[Attentat 1942 by Charles Games]]
# [[Slow Sleigh to Plankton Downs by Melsonian Arts Council]]
# [[Die, Grave Robber, Die! by Michael Van Vleet]]
# [[Old Gods and Young Guns by Rat Wave Game House]]
# [[To Stand Before the Dragon's Wrath by Glaive Guisarme Games]]
# [[Penumbra: A Trophy Dark Incursion by ATypicalFaux]]
# [[Shell Out Showdown by manadream]]
# [[Wonderland Nights: White Rabbit's Diary by skybeargames]]
# [[RAYCATS!™ - NEW RELEASE! by 6 String Games]]
# [[MiniFolks - Orcs by LYASeeK]]
# [[The Creature Comes for Us by OrionQK]]
# [[Tic Tac Together by andrfw, imPACIOble]]
# [[Murder at the Cat Show by Shonté, Nephel]]
# [[Dwarves of Renidar by Stuart Watkinson]]
# [[Asteroids... But Roguelite by GhostGoats]]
# [[Loot the Plutes by Penflower Ink]]
# [[Wanderers by Aurora_Sanguine]]
# [[Statuesque by Whimsy Machine]]
# [[Millikan's Reach by Inferior Planet]]
# [[Butterflies Episode 2: Getting Up by Le Capitaine]]
# [[2 9 0 1 / / FREELANCER by notsleeping]]
# [[Hell Holes by Aryxymaraki]]
# [[Here & Far by instadeath]]
# [[Blugard by Live Real Productions]]
# [[Build a Bard by Eliot Silvarian]]
# [[All Hands on Deck by Alice V.]]
# [[Into the Forest by Secret Foxfire]]
# [[Hairic RPG Minis - Hero Pack 02 by Hairic Lilred]]
# [[The Wizard's Co-Op by Gem Room Games]]
# [[Spectre Moose is on the Loose! by Jason Miscia]]
# [[Nonsense Soccer by AnttiKole]]
# [[Pleasant Dreams: The Welcoming Play of Kirby's Dream Land by Joel Couture]]
# [[Dinos for Quest - Volume I by tim zee]]
# [[Enchanted Blend by Lucky Newt Games]]
# [[New Heights by somewhere with stories]]
# [[The Season by Rue (ilananight)]]
# [[VOID by Kent Reese (whenbellstoll)]]
# [[KING IS DEAD by Seraaron]]
# [[The Last Librarian by Cloaked Games]]
# [[Zombusters by Retrowax]]
# [[Vienna Automobile Society by Royal Polygon]]
# [[Last Knight: Rogue Rider Edition by Toco Games]]
# [[It's Six Random Characters and a Single Floor Dungeon, That's the Whole Game by CannibalInteractive]]
# [[The Fantaballous Tilt by TerraDev64]]
# [[Polyroll by HOF Studios, Mike Stumhofer, Kevin Dressel, Spicy Gyro Games, Shiny Dolphin Games LLC]]
# [[Clash Force by Shiny Dolphin Games LLC, Kevin Dressel, Spicy Gyro Games]]
# [[The Spark of One by Princemarioone]]
# [[Cycle 28 by Pill Bug Interactive, NoDice]]
# [[The Great Soul Train Robbery—zine edition by Cloven Pine Games]]
# [[Final Spike by Sean Heron]]
# [[Swim Out by Lozange Lab]]
# [[Ready Set Bake: a floury mini-RPG by Sunken Rust]]
# [[Chronicles of two Heroes by Infinity Experience]]
# [[MiTOS by Kikimora Games, BrJackMcPuff, rymdlejon, knivspark, TheOrioli]]
# [[Purple Noise Echo by ukioq]]
# [[Steam Marines 2 by WorthlessBums]]
# [[GourMelee by Anthony Tesija]]
# [[Good Morning Hon by Jess Andz]]
# [[An Outcry, prelude by Quinn K.]]
# [[Steam Marines by WorthlessBums]]
# [[SPACE / MECH / PILOT - THE UNIVERSE DRIVE 1.0 by SKY HOUR WORKS]]
# [[Mostly Intense Monster Defense by Patsui Games]]
# [[Bringris by Zeno Rogue]]
# [[Dino Island - The Four Crystals by felipehunter]]
# [[Prison of the Magi: Ch. 0 by Honeycomb Interactive]]
# [[Parselings Core Rulebook (PDF) by Smunchy Games]]
# [[Sausage Sports Club by Chris Wade]]
# [[Catlateral Damage: Remeowstered by Manekoware]]
# [[Pig Eat Ball by Mommy's Best Games]]
# [[Eyewear Cleaner 2077 by Naomi Norbez (call me Bez)]]
# [[Bro Hunters by TheOtherTracy]]
# [[witching hour by Michael]]
# [[Sci-Fi Space - Customizable Pixelart Backgrounds by aamatniekss]]
# [[qvke borg by Bird Silhouette Games]]
# [[Clink by Technical Grimoire Games]]
# [[TabletopMusic.com - The Adventurer's Collection Tabletop Soundtrack by Slaleky]]
# [[LOST ORBIT: Terminal Velocity by PixelNAUTS_Games, rsvp asap]]
# [[Against the Fall of Night Playtest by Aryxymaraki]]
# [[Pixel Side-Scroller Plains Tileset by Thomas Feichtmeir "Cyangmou"]]
# [[Dangerous Times by Michael Bacon]]
# [[Ancient Temple - 16 Colour Tileset by aamatniekss]]
# [[Paradise Mountain - Chronicles of Spring & Autumn #1 by Daniel Kwan]]
# [[El Gancho by SIDRALGAMES]]
# [[Meta Form by Aesth, c0hil]]
# [[Butter Princess by oldworldmaps]]
# [[Scramble Wizards by NikyEllison]]
# [[These Old Bones by Cameron]]
# [[Dream Quest by Nakade]]
# [[Curious Comrades Vol. I by tim zee]]
# [[Psychic Night School by Button Kin Games]]
# [[We Saved The World Once by Drazillion]]
# [[The Starbreaker: A Beam Saber Playbook by Lawson Coleman]]
# [[The Wellspring: A Beam Saber Playbook by Lawson Coleman]]
# [[FUTUREVOXIMAGINARIUMDOTEXEV1.1:DOGELOVEREDITION by BenWeatherall]]
# [[Strife of Cosmos by MythAtelier]]
# [[Viral Reload by Retrocade Media]]
# [[The Partisan: A Beam Saber Playbook by Lawson Coleman]]
# [[International Waters by capybarbarian]]
# [[You are 100 Goblins, Now Go Save the World by NikyEllison]]
# [[Medusa in the Sleeping Garden by Therapeutic Blasphemy Games]]
# [[A Sketchbook About Her Sun by Team SolEtude]]
# [[Lydia by Platonic Partnership Ltd]]
# [[The Selkie Envoy by chihuahuazero]]
# [[Bombing!!: A Graffiti Sandbox by Devon Wiersma]]
# [[Spooky Raven Ren'py GUI Design by Jaime Scribbles Games]]
# [[FURIOUS ROADS - Minimal Post-Apocalypse by Chaosmeister]]
# [[Neon Depth by mikomoares]]
# [[Dungeon Escape by Roenko Games]]
# [[Follower #1: Velox Comic Book PDF by bugbyte]]
# [[Once Upon a Birthday by Lynne M. Meyer]]
# [[You are Me by Unnecessary Games]]
# [[Dragons in Space by The Voices Games]]
# [[The Jewel of the Sea by Rue (ilananight)]]
# [[What REALLY Happened. by instadeath]]
# [[Hairic RPG Minis - Hero Pack 01 by Hairic Lilred]]
# [[Space Samurais by Root | Dice Stew]]
# [[Summoner's Mess by Elendow]]
# [[Little Burned Maiden by Amaiguri]]
# [[Lost Potato by Blobfish]]
# [[pocket change by tallywinkle]]
# [[The Winding Journey by ArcturusAsriv]]
# [[Bumpy Ride at Bore IX by Robin Fjärem]]
# [[The Garden of the Spire Queen by PenPaperDice]]
# [[Alone in the Dungeon by Azukail Games]]
# [[Arachnowopunk by elsif]]
# [[Climate Control - You Are Not A Burden by wetdryvac]]
# [[Gigabit by Ellisjames20061]]
# [[Trash Planet (Beta) by Shoe the Pixie]]
# [[Laser Paddles by tracfacsam]]
# [[Danger Scavenger by Star Drifters, Piotr Wolk]]
# [[Kill the Superweapon by Tales of the Renegade Sector]]
# [[Back To Bed by Bedtime Digital Games]]
# [[Hyperplex 3D by Lowscope]]
# [[Arlo The Rabbit by Joshimations]]
# [[Shiny Gauntlet by spritewrench]]
# [[10 Fantasy Pixel Human Village Character by Thomas Feichtmeir "Cyangmou"]]
# [[The Pack by cosmicbeagle]]
# [[FANGS - Minimal Vampires by Chaosmeister]]
# [[Metori by Fractured Mind]]
# [[The Temple of Karthis by ArcturusAsriv]]
# [[Solo Roleplaying: A brief introduction by solorpggamer]]
# [[Lost Dreams by cecil chestnut]]
# [[Knight Bewitched by Joshua Keith]]
# [[Alien Life Lab by Devy_Games]]
# [[RogueCraft Squadron by josefnpat]]
# [[Bezier by Thalamus Digital Publishing Ltd.]]
# [[Project MALLOW by Aggressive Combustion]]
# [[Grimm & Tonic: Aperitif by spritewrench]]
# [[Wondee by Garret Polk]]
# [[GRAVITY Pilot! by diadas]]
# [[Naughty Elves - Christmas puzzle game by gurkenlabs]]
# [[Snowdown by The Bonsai Treehouse]]
# [[Rakete by Playables]]
# [[Pictassembler by Active Up Games]]
# [[Fantasy Towns Music Pack by Chris Logsdon]]
# [[Summer in Mara by Chibig]]
# [[Eli Minimap for RPG Maker MV-MZ by Hakuen Studio]]
# [[Darkspace by Arcana Games]]
# [[Rubies In Space™ (FULL GAME) by Jon Jon Games Studios, Inc.®]]
# [[FEVERPIT by soncka]]
# [[Elden: Path of the Forgotten by OneratGames]]
# [[Sword's Edge by Fraser Ronald]]
# [[The Great Bork Team by Haiduc]]
# [[Another Hero by Running From Skeletons]]
# [[seethe and scab by Max]]
# [[CRUST | Landing Page by Disaster Tourism]]
# [[Bright & Terrible by Rose on Mars]]
# [[Pixel Side-Scroller - 60 Animated Light Props by Thomas Feichtmeir "Cyangmou"]]
# [[Resist & Remember by InvisibleInc]]
# [[Our Hero Neighbors 2E by Therapeutic Blasphemy Games]]
# [[Eli QoL Commands 2 for Rpg Maker MZ by Hakuen Studio]]
# [[Eli QoL Commands 1 for RPG Maker by Hakuen Studio]]
# [[Attrition by LMG3864]]
# [[Evangeline by Raconteur Games]]
# [[Globetrotter's Guide to Greenery: Grasslands by Double Proficiency]]
# [[Imaginaria by Orbis Tertius Games]]
# [[Faceless Saints by Jacqueline Bryk]]
# [[Mostly Harmless Meetings by Peakrill Press / Dan Sumption]]
# [[Embedded Heart by sjess]]
# [[The Inflated Head Zone by Zach Hazard Vaupen // Emo Sludge]]
# [[Ash K's Chunkiest Juice template by Ash K]]
# [[Rune of Eternity by Crooked Beaker]]
# [[Wights by Steffie de Vaan]]
# [[Wayfarer's Deck: Depths of the Earth by Double Proficiency]]
# [[KOBUILD by chriskettlefrisby]]
# [[Spring Comes Again by Bell Moon Games]]
# [[World of Solaria: Sprite Pack by jamiebrownhill]]
# [[Rivals by Disaster Tourism]]
# [[Twelve Hundred Words by Whimsy Machine]]
# [[Unfinished - An Artist's Lament by Dust Scratch Games]]
# [[Vylan by MOSTLY MAD PRODUCTIONS]]
# [[Drew and the Floating Labyrinth by Dust Scratch Games]]
# [[Find Me by Girls Make Games]]
# [[Curious Expedition Artbook by Maschinen-Mensch]]
# [[BOX by EllenElzai]]
# [[The Shadow Among the Stars: Book One of the Dread Naught Trilogy by Dylan Wayne Sanchez]]
# [[Whispers from the Thousand Moons by Owl Knight Games, by Jennifer Adcock]]
# [[Trick-Or-Treat Carta by DarkJaguar]]
# [[Soft Romance Ren'py GUI Design by Jaime Scribbles Games]]
# [[Trials of Melodosia by Sara Jeffers]]
# [[Cloud Serpent by Tad Patterson]]
# [[will i be strong enough for you? by vian nguyen]]
# [[Inner Tao by Le Slo]]
# [[How Peculiar by Aidan Bowes]]
# [[Brit School Hijinks by Librarians and Leviathans]]
# [[Roamers of the Dream by zeruhur]]
# [[Fuse - Retro Fusion Music Loops by Beep Artz]]
# [[Unnamed Fairy Princess Game by Aidan Bowes]]
# [[The Broccoli Complex by Axolotl]]
# [[Bring Back The Sun by Daniel da Silva by SmokeSomeFrogs]]
# [[Fantastic Fetus: Prebirth by FantasticHumans]]
# [[My One True Wish by DarkJaguar]]
# [[18XX Dreams by Deep light games]]
# [[Snack Scoffer by Niall Chandler Games]]
# [[Devil's Dreams by Donogh]]
# [[The Arcade Tower by Ungamed Studios]]
# [[YOU AND YOUR FRIENDS ARE DEAD by Joel Couture]]
# [[Binky's Trash Service by ondydev]]
# [[P.T. - A Video Game Ghost Story by Joel Couture]]
# [[RD Mars by SuccessStudios]]
# [[The Firebringer by PenPaperDice]]
# [[16x16 Platformer Pack [FREE DEMO] by Fractured Mind]]
# [[for|rest by Jes Klass]]
# [[The Time Traveler's Child by instadeath]]
# [[GB Style Farm and Town Tileset by Teaceratops]]
# [[Welcome to the Hereafter Hotel by Redgate and Wolf]]
# [[Evocación. Tell me your story / Cuéntame tu historia by Solo historias - Solo juegos]]
# [[Hearth & Candle by HorsepondMine]]
# [[Firemakaf by SuccessStudios]]
# [[The Code Zone Retro Pack by The Code Zone]]
# [[Ghosts of war by Khelren]]
# [[So You're in a Tavern by Live Real Productions]]
# [[Vylan Soundtrack by MOSTLY MAD PRODUCTIONS]]
# [[Pixel 64 by Samuel Sousa]]
# [[Balloony's adventure by Grindalf Games]]
# [[Unity Book I: Ascent by fluffy]]
# [[Micro Dash by Andrevv]]
# [[Sad Robot by Marx of High Water]]
# [[Unbuild by Klickaffen Game Club]]
# [[A Set Of Scrubs by CM Lowry Author]]
# [[10 Flights of Ballooning by Eric Guadara]]
# [[ODDS & IRONS: Dino Combat Racing (print & play edition) by Honeycomb Interactive]]
# [[Plant Down by Rouli]]
# [[Ripple by Proton Fox]]
# [[Rainbow Runaways by UkuleleBard]]
# [[Jupitron Game Collection Vol.1 by Jupitron]]
# [[Containment by Finite Reflection]]
# [[Peace of Mind by Joe Burns]]
# [[Korpus: Buried over the Black Soil by Korpus]]
# [[Learn Japanese To Survive! Kanji Combat by RIVER CROW STUDIO]]
# [[Rip Them Off by Lozange Lab]]
# [[Bicyclism EP by phosphoer, Sethers]]
# [[After The End: The Harvest by Elushis]]
# [[Learn Japanese To Survive - Hiragana Battle by RIVER CROW STUDIO]]
# [[Newtraction by Zexsoft]]
# [[TRAINBOW by Astrosaurus Games]]
# [[[ENDLESS_OVERDRIVE] by Fewprime]]
# [[Super Mumtaz Bros. by Extar]]
# [[Eternia: Pet Whisperer by Shinmera]]
# [[PhasR by Hirunda/Max Pirotais-Wilton]]
# [[crystal anomaly by minotalen]]
# [[Lewi, Act I: Manae by fluffy]]
# [[Thermo Puzzle by diadas]]
# [[Dee Dum (Computer) by Eric Guadara]]
# [[Lucid: Parables of the Ubermensch by SuccessStudios]]
# [[2901//DRUM_DREAM Vol2 by notsleeping]]
# [[Mending Wall by Eric Guadara]]
# [[Isolation Story by Elushis]]
# [[Void Wisp by D. W. O'Boyle]]
# [[GalaxSeed by Roaring Cat Games]]
# [[Sonny by Armor Games Studios]]
# [[Mastermind Classic by criacuervos]]
# [[Bullet Beat by TERNOX]]
# [[When The River Runs Dry Early Release by Zwinzler Games]]
# [[Avery Chase - EP2 : Travelling Without Moving by C.Bedford]]
# [[Absolute Blue by joemanaco]]
# [[The Lost Cave of the Ozarks by Rubber Garden]]
# [[Jabberwocky by python-b5, Sam Gorman]]
# [[Drones, The Human Condition by Blunt]]
# [[Ambient Puzzle Music/SFX Pack by Chris Logsdon]]
# [[Retro and Electronic Music Pack by Slaleky]]
# [[Changes by etalgames]]
# [[6 pack of craft games by Ash K]]
# [[Klang 2 by Tinimations]]
# [[Fox Magic [first edition] bundle by Fool's Moon Entertainment, Inc.]]
# [[Sci-Fi SFX Pack by Chris Logsdon]]
# [[Welcome to Elk by Triple Topping]]
# [[Angry Video Game Nerd I&II Deluxe by Screenwave Media Games]]
# [[Hoplegs by Aurora Punks]]
# [[Tiny Tales 2D Battler Pack Vol.3: Wild Beasts by Mega Tiles]]
# [[LouveSystems' TrackMasters by rackover]]
# [[Route Me Mail and Delivery Co by Elushis]]
# [[Orion Video Player by KagariSoft]]
# [[SciFi Computer and Instruments by kingdomfantasy6]]
# [[Cyberpunk Stealth Music/SFX Pack by Chris Logsdon]]
# [[Grackle Teeth by Majcher Arcana]]
# [[Duelist by Double Proficiency]]
# [[The Fabulous Gays, Volume 1 by M. KIRIN]]
# [[Tiny Tales: Wild Beasts NPC Sprite Pack by Mega Tiles]]
# [[Knight Bewitched 2 by Joshua Keith]]
# [[Alone With You by BancyCo]]
# [[Déjà Vu by EricFreeman]]
# [[Little World of Fates by Amaiguri, JayMannix]]
# [[Vulture by Cubic Timeline Productions]]
# [[Regina & Mac by Diplodocus-Games]]
# [[Tiny Tales: Human NPC Nobility Sprite Pack by Mega Tiles]]
# [[Fantasy RPG Cursors (copper) by Leonid Deburger]]
# [[Fantasy RPG Cursors (gold) by Leonid Deburger]]
# [[1993 Space Machine by Aurora Punks]]
# [[PROVIDER by CakeNeq Games]]
# [[Grow Big (or Go Home): Ultimate Edition by Quarant Inc.]]
# [[The Wishing Stone by DreamNyghtStudio]]
# [[Transmission for Them by Eryk Sawicki]]
# [[WarpThrough by Ramon Huiskamp]]
# [[Revolver and Co by Chequered Ink]]
# [[A Planet of Mine by Tuesday Quest]]
# [[Cardful Planning by Walk Home Games]]
# [[Technicolour by roll / flip / draw]]
# [[Where the Snow Settles by Myriad Games Studio]]
# [[Mini's Magic World by Magory]]
# [[Redd's Runaway by BeWolf Studio]]
# [[Type The Entire Of Ulysses. That's it. That's the game. by Edward Atkin]]
# [[Maze Of Bears by Stuart Bray - SnappyFingers.co.uk]]
# [[Sarawak by Cowleyfornia Studios]]
# [[Resynth by Polyphonic LP]]
# [[Widdershins [Keepsakes, first edition] by Fool's Moon Entertainment, Inc.]]
# [[Sallow-Séance by BakkhosBlood]]
# [[Bouncy Cars by assertchris]]
# [[Gimmick in the Chaos Dimension by SpaceMouse]]
# [[Drinking & Intoxication: A D&D 5e Supplement by pastellexists]]
# [[SimonWL - The Art of 2020 by SimonWL]]
# [[Endless Lands by Mundos Infinitos]]
# [[Safari Zone by Tiger Collins]]
# [[Humble Fonts - Gold II by somepx]]
# [[Collateral Thinking DX by Astrosaurus Games]]
# [[(Not Escape Room) by PunGo, fulmirex, Damla Kıvılcım Demir, celik97]]
# [[After the War by Genesis of Legend Publishing]]
# [[THINGS TO THINK ABOUT by SimonWL]]
# [[Frankenmonster Creaturestein by Dice Kapital]]
# [[Ultimate Zombie Death Ball by Devil's Cider Games]]
# [[Ug! Caveman Game by ninjainatux]]
# [[Mech_Romancer Charity Bundle 2 by Silentman]]
# [[SimonWL - The Art of 2021 by SimonWL]]
# [[Feyna's Quest by Eldwood]]
# [[As the Crow Flies by Chubby Crow Games]]
# [[Jupitron Game Collection Vol.4 - Middleware by Jupitron]]
# [[Bugspeed Collider by Ghostbrite, EX.ULT VIDEOTAINMENT, Nick Splendorr, thepedrog@gmail.com]]
# [[Delay: Paying Attention to Energy Mechanics by Zoyander Street]]
# [[Short Coffee Cup by kingdomfantasy6]]
# [[Bat Lizard Bonanza by John Vanderhoef]]
# [[Parselings: Infer Memorial Station (PDF) by Smunchy Games]]
# [[Dark Sheep by Daisy Games]]
# [[Desolate Roads by Gadan Games]]
# [[Sudd City Adventures by Sudd City, UltraRat]]
# [[Leggite Luta Livre by John Vanderhoef]]
# [[The Stirring Among The Stars: Book Two of the Dread Naught Trilogy by Dylan Wayne Sanchez]]
# [[Rosette Diceless Companion by Future Proof Games]]
# [[Amethyst Hearth by Drone Garden Studios]]
# [[Good Mourning by Platonic Partnership Ltd]]
# [[You Can Pet The Dog VR by Raconteur Games]]
# [[Pixel Side-Scroller - 17 Animated Container Props by Thomas Feichtmeir "Cyangmou"]]
# [[Madball by Madness Studio]]
# [[Muffin Fight VR by Red Iron Labs]]
# [[Super Head Ball by sethsafety]]
# [[Only One Burn by Leyline Studios]]
# [[RogueSlide by Beep Yeah!, Rubichron, cfwalter]]
# [[Hack Grid by Daisy Games]]
# [[Easy Credits 2 for Unity by OneratGames]]
# [[Shredded Secrets by Girls Make Games]]
# [[Spooky Waltz by Studios SoulAres]]
# [[reIterate() by Let's Talk Game Design]]
# [[Awesome Mix Tape by Projector Studios]]
# [[Capture the Flag 5e by nesges]]
# [[SubDivide by Sockman]]
# [[Slime-San Arcade Music by EonNomad]]
# [[Move 'n' Bloom by Waldemar Umaniz]]
# [[Tornbridge by Jacqueline Bryk]]
# [[Pippu - Bauble Quest by Chequered Ink]]
# [[Pawndemonium by Tallbeard Studios]]
# [[Dayscream by Bernhard Potuzak]]
# [[The Emperor's Orchard by Jacqueline Bryk]]
# [[Cut Up Solo - Triplanetary Lensman by Parts Per Million]]
# [[Project SNAQE by Teggno Interactive]]
# [[Roly-Polo by LaPieza]]
# [[Selection Process by eduardogamedev]]
# [[Faith & Sails by Julian Kay]]
# [[Time Enough by wetdryvac]]
# [[This Game Takes Place Entirely In A Mega Mart Parking Lot! by StarshineScribbles]]
# [[Central Fugitive by Astrosaurus Games]]
# [[Lucha Libram! by Pod of Blunders]]
# [[1-bit tileset 8*8px (Pulp compatible) by Teaceratops]]
# [[O.R.B.I.T. Link by DonnieDynamo]]
# [[Defend The Tower by BranchingNarratives]]
# [[Grime House by Skuttie]]
# [[Vampires of Neptune by JYoungman]]
# [[From a Different Point of View: Victorian London by Max Kämmerer (he/they)]]
# [[TITAN (ENG) by Roll&PlayMedusa]]
# [[Operator Overload OST by ruby0x1]]
# [[ROOM EXPLORER 2010: DELUXE LOVER'S PAQUE by SQ-COM]]
# [[Bunnies vs. Bunnies: Ukraine Edition by Jordan Magnuson]]
# [[The Furniture Of Self by skodone, causacreations]]
# [[Partition Sector by arganoid]]
# [[Lunarrota by Luis S.]]
# [[Head AS Code OST by Slaleky]]
# [[Safari Zone OST by Slaleky]]
# [[Changelings by kolekniewiary]]
# [[Toybox Aviation by OneratGames]]
# [[MENOS: PSI-SHATTER by Jack Goddard]]
# [[Volatile by Boaan]]
# [[Harvest Hero Origins by Gemdrop Games]]
# [[The Lemon King by A.E. Ross]]
# [[Songs of the Northlanders by WolfWyzard]]
# [[Hack FPS - Anniversary Edition by r3sgame]]
# [[Green Things Grow From Cinders by A.E. Ross]]
# [[Bunflower by SaturnSprout]]
# [[8×8 Platformer Asset Pack with pico-8 palette by Niall Chandler Games]]
# [[Gambler's Heart by Dice Kapital]]
# [[The Jellicle Chance by segoli]]
# [[[MOOD] Pixel Art Font Set by Rodrigo BSL]]
# [[The Warehouse by Elise "Lachesis" Pagès]]
# [[InBetween: Hungry Mouse by solipsistgames]]
# [[Stepping into the Oblivion by Dimitri, Dr.Givaca]]
# [[Bark and Grass Materials by kingdomfantasy6]]
# [[Way of the Demon Slayer - A Paragon Playset by Agent Fintcher]]
# [[Café El lobo aullador by Solo historias - Solo juegos]]
# [[A Fairy’s Day Adventure into the Human World by DarkJaguar]]
# [[The Truth About Jevallik by Rule 42 Arts Coalition]]
# [[Candylight by ImagiNovel]]
# [[Spell Slingers: Trick or Treat by Honeycomb Interactive]]
# [[Gambit: Suits edition by Lee K Hulme]]
# [[Rhythm 'n Bullets by DB Creations]]
# [[Sudoku Zenkai by ImaginationOverflow]]
# [[The Sink Gods by Little Glyph Games]]
# [[Cecconoid by Triple Eh?]]
# [[Zzap! by NeonRetroTech]]
# [[Serious Scramblers by chinykian]]
# [[T.A.R.S by GreatherGames]]
# [[Gig Life by JoshJayOnline]]
# [[Unity Book II: Distribution by fluffy]]
# [[Lizard Lady vs the Cats by The Voices Games]]
# [[Lawn Buster for Hire by TurdBoomerang]]
# [[Renewal & Riot by Joan]]
# [[Drama! Drama! (and the Queen) by Fateful Seven]]
# [[Couch Goblins by Honeycomb Interactive]]
# [[A house interior asset pack ! by styloo]]
# [[Psychoballs by joemanaco]]
# [[[New Hi-Score] Pixel Art Font by Rodrigo BSL]]
# [[Bryluen's Bachelorette Brawl by Dylan Wayne Sanchez]]
# [[Sly Panda by Elastiskalinjen]]
# [[Food Flinger VR by Eric Guadara]]
# [[Goblins: Kwest 4 Sosijiz by Worldbuilder101]]
# [[Temple Of Tangram by joemanaco]]
# [[SKELERUN by Fireside Studio]]
# [[Derpy Deep Drive by Extrone]]
# [[Captain Backwater by joemanaco]]
# [[WIZLORDS! by Third Country Press]]
# [[[Inkbit] Pixel Art Font Set by Rodrigo BSL]]
# [[Air Dasher by Anton]]
# [[Monastery Battlemap [100 x 80] by gurkenlabs]]
# [[Volcanic Sinkhole Battlemap [20 x 40] by gurkenlabs]]
# [[Speckled Forest Battlemap [30 x 30] by gurkenlabs]]
no
https://itch.io/b/1316/bundle-for-ukraine
Bundle for Ukraine
$:/core/ui/AdvancedSearch/Filter
yes
$:/core/ui/AdvancedSearch/Filter
$:/core/ui/ControlPanel/Toolbars
$:/core/ui/ControlPanel/Basics
$:/core/ui/ControlPanel/Info
$:/core/ui/SideBar/Open
no


{
    "tiddlers": {
        "$:/themes/tiddlywiki/snowwhite/base": {
            "title": "$:/themes/tiddlywiki/snowwhite/base",
            "tags": "[[$:/tags/Stylesheet]]",
            "text": "\\define sidebarbreakpoint-minus-one()\n<$text text={{{ [{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}removesuffix[px]subtract[1]addsuffix[px]] ~[{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}] }}}/>\n\\end\n\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n.tc-sidebar-header {\n\ttext-shadow: 0 1px 0 <<colour sidebar-foreground-shadow>>;\n}\n\n.tc-tiddler-info {\n\t<<box-shadow \"inset 1px 2px 3px rgba(0,0,0,0.1)\">>\n}\n\n@media screen {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow \"1px 1px 5px rgba(0, 0, 0, 0.3)\">>\n\t}\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow none>>\n\t}\n}\n\n.tc-page-controls button svg, .tc-tiddler-controls button svg, .tc-topbar button svg {\n\t<<transition \"fill 150ms ease-in-out\">>\n}\n\n.tc-tiddler-controls button.tc-selected,\n.tc-page-controls button.tc-selected {\n\t<<filter \"drop-shadow(0px -1px 2px rgba(0,0,0,0.25))\">>\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-edit-tags {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-tiddler-frame .tc-edit-tags input.tc-edit-texteditor {\n\t<<box-shadow \"none\">>\n\tborder: none;\n\toutline: none;\n}\n\ntextarea.tc-edit-texteditor {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n}\n\ncanvas.tc-edit-bitmapeditor  {\n\t<<box-shadow \"2px 2px 5px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-drop-down {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-block-dropdown {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-modal {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n}\n\n.tc-modal-footer {\n\tborder-radius: 0 0 6px 6px;\n\t<<box-shadow \"inset 0 1px 0 #fff\">>;\n}\n\n\n.tc-alert {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.6)\">>\n}\n\n.tc-notification {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n\ttext-shadow: 0 1px 0 rgba(255,255,255, 0.8);\n}\n\n.tc-sidebar-lists .tc-tab-set .tc-tab-divider {\n\tborder-top: none;\n\theight: 1px;\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.0) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.01) 0%, rgba(0,0,0,0.1) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.05) 0%, rgba(255,255,255,0.05) 100%\">>\n}\n\n.tc-message-box img {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n\n.tc-plugin-info {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n"
        }
    }
}
{
    "tiddlers": {
        "$:/themes/tiddlywiki/vanilla/themetweaks": {
            "title": "$:/themes/tiddlywiki/vanilla/themetweaks",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ThemeTweaks/ThemeTweaks}}",
            "text": "\\define lingo-base() $:/language/ThemeTweaks/\n\n\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n\\define backgroundimage-dropdown()\n<div class=\"tc-drop-down-wrapper\">\n<$button popup=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"\n\t$value=<<imageTitle>>\n/>\n\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n\\end\n\n\\define backgroundimageattachment-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\" default=\"scroll\">\n<option value=\"scroll\"><<lingo Settings/BackgroundImageAttachment/Scroll>></option>\n<option value=\"fixed\"><<lingo Settings/BackgroundImageAttachment/Fixed>></option>\n</$select>\n\\end\n\n\\define backgroundimagesize-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\" default=\"scroll\">\n<option value=\"auto\"><<lingo Settings/BackgroundImageSize/Auto>></option>\n<option value=\"cover\"><<lingo Settings/BackgroundImageSize/Cover>></option>\n<option value=\"contain\"><<lingo Settings/BackgroundImageSize/Contain>></option>\n</$select>\n\\end\n\n<<lingo ThemeTweaks/Hint>>\n\n! <<lingo Options>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><<lingo Options/SidebarLayout>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><option value=\"fixed-fluid\"><<lingo Options/SidebarLayout/Fixed-Fluid>></option><option value=\"fluid-fixed\"><<lingo Options/SidebarLayout/Fluid-Fixed>></option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><<lingo Options/StickyTitles>></$link><br>//<<lingo Options/StickyTitles/Hint>>// |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><option value=\"no\">{{$:/language/No}}</option><option value=\"yes\">{{$:/language/Yes}}</option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><<lingo Options/CodeWrapping>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><option value=\"pre\">{{$:/language/No}}</option><option value=\"pre-wrap\">{{$:/language/Yes}}</option></$select> |\n\n! <<lingo Settings>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"><<lingo Settings/FontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\"><<lingo Settings/CodeFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\"><<lingo Settings/EditorFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"><<lingo Settings/BackgroundImage>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" default=\"\" tag=\"input\"/> |<<backgroundimage-dropdown>> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\"><<lingo Settings/BackgroundImageAttachment>></$link> |<<backgroundimageattachment-dropdown>> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\"><<lingo Settings/BackgroundImageSize>></$link> |<<backgroundimagesize-dropdown>> | |\n\n! <<lingo Metrics>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\"><<lingo Metrics/FontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\"><<lingo Metrics/LineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\"><<lingo Metrics/BodyFontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\"><<lingo Metrics/BodyLineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\"><<lingo Metrics/StoryLeft>></$link><br>//<<lingo Metrics/StoryLeft/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\"><<lingo Metrics/StoryTop>></$link><br>//<<lingo Metrics/StoryTop/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\"><<lingo Metrics/StoryRight>></$link><br>//<<lingo Metrics/StoryRight/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\"><<lingo Metrics/StoryWidth>></$link><br>//<<lingo Metrics/StoryWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"><<lingo Metrics/TiddlerWidth>></$link><br>//<<lingo Metrics/TiddlerWidth/Hint>>//<br> |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\"><<lingo Metrics/SidebarBreakpoint>></$link><br>//<<lingo Metrics/SidebarBreakpoint/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\"><<lingo Metrics/SidebarWidth>></$link><br>//<<lingo Metrics/SidebarWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\" default=\"\" tag=\"input\"/> |\n"
        },
        "$:/themes/tiddlywiki/vanilla/base": {
            "title": "$:/themes/tiddlywiki/vanilla/base",
            "tags": "[[$:/tags/Stylesheet]]",
            "text": "\\define custom-background-datauri()\n<$set name=\"background\" value={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}>\n<$list filter=\"[<background>is[image]]\">\n`background: url(`\n<$list filter=\"[<background>!has[_canonical_uri]]\">\n`\"`<$macrocall $name=\"datauri\" title={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}/>`\"`\n</$list>\n<$list filter=\"[<background>has[_canonical_uri]]\">\n`\"`<$view tiddler={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}} field=\"_canonical_uri\"/>`\"`\n</$list>\n`) center center;`\n`background-attachment: `{{$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment}}`;\n-webkit-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-moz-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-o-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\nbackground-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;`\n</$list>\n</$set>\n\\end\n\n\\define sidebarbreakpoint()\n<$text text={{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}/>\n\\end\n\n\\define sidebarbreakpoint-minus-one()\n<$text text={{{ [{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}removesuffix[px]subtract[1]addsuffix[px]] ~[{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}] }}}/>\n\\end\n\n\\define if-fluid-fixed(text,hiddenSidebarText)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" type=\"match\" text=\"fluid-fixed\">\n$text$\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">\n$hiddenSidebarText$\n</$reveal>\n</$reveal>\n\\end\n\n\\define if-editor-height-fixed(then,else)\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n$then$\n</$reveal>\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n$else$\n</$reveal>\n\\end\n\n\\define set-type-selector-min-width()\n<$set name=\"typeLength\" value={{{ [all[shadows+tiddlers]prefix[$:/language/Docs/Types/]get[name]length[]maxall[]] }}}>\n\n\t.tc-type-selector-dropdown-wrapper {\n\t\tmin-width: calc(<<typeLength>>ch + 4em);\n\t}\n\n\t.tc-type-selector-dropdown-wrapper input.tc-edit-typeeditor {\n\t\tmin-width: <<typeLength>>ch;\n\t}\n\n</$set>\n\\end\n\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\n\n/*\n** Start with the normalize CSS reset, and then belay some of its effects\n*/\n\n{{$:/themes/tiddlywiki/vanilla/reset}}\n\n*, input[type=\"search\"] {\n\tbox-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\t-webkit-box-sizing: border-box;\n}\n\ninput[type=\"search\"] {\n  outline-offset: initial;\n}\n\nhtml button {\n\tline-height: 1.2;\n\tcolor: <<colour button-foreground>>;\n\tfill: <<colour button-foreground>>;\n\tbackground: <<colour button-background>>;\n\tborder-color: <<colour button-border>>;\n}\n\n/*\n** Basic element styles\n*/\n\nhtml, body {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/fontfamily}};\n\ttext-rendering: optimizeLegibility; /* Enables kerning and ligatures etc. */\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\nhtml:-webkit-full-screen {\n\tbackground-color: <<colour page-background>>;\n}\n\nbody.tc-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/lineheight}};\n\tword-wrap: break-word;\n\t<<custom-background-datauri>>\n\tcolor: <<colour foreground>>;\n\tbackground-color: <<colour page-background>>;\n\tfill: <<colour foreground>>;\n}\n\n<<if-background-attachment \"\"\"\n\nbody.tc-body {\n        background-color: transparent;\n}\n\n\"\"\">>\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n\tfont-size: 2em;\n}\n\nh1, h2, h3, h4, h5, h6 {\n\tline-height: 1.2;\n\tfont-weight: 300;\n}\n\npre {\n\tdisplay: block;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n\tword-break: normal;\n\tword-wrap: break-word;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tbackground-color: <<colour pre-background>>;\n\tborder: 1px solid <<colour pre-border>>;\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\ncode {\n\tcolor: <<colour code-foreground>>;\n\tbackground-color: <<colour code-background>>;\n\tborder: 1px solid <<colour code-border>>;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\nblockquote {\n\tborder-left: 5px solid <<colour blockquote-bar>>;\n\tmargin-left: 25px;\n\tpadding-left: 10px;\n\tquotes: \"\\201C\"\"\\201D\"\"\\2018\"\"\\2019\";\n}\n\nblockquote > div {\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n}\n\nblockquote.tc-big-quote {\n\tfont-family: Georgia, serif;\n\tposition: relative;\n\tbackground: <<colour pre-background>>;\n\tborder-left: none;\n\tmargin-left: 50px;\n\tmargin-right: 50px;\n\tpadding: 10px;\n    border-radius: 8px;\n}\n\nblockquote.tc-big-quote cite:before {\n\tcontent: \"\\2014 \\2009\";\n}\n\nblockquote.tc-big-quote:before {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: open-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n    left: -50px;\n    top: 42px;\n}\n\nblockquote.tc-big-quote:after {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: close-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n    right: -80px;\n    bottom: -20px;\n}\n\ndl dt {\n\tfont-weight: bold;\n\tmargin-top: 6px;\n}\n\nbutton, textarea, input, select {\n\toutline-color: <<colour primary>>;\n}\n\ntextarea,\ninput[type=text],\ninput[type=search],\ninput[type=\"\"],\ninput:not([type]) {\n\tcolor: <<colour foreground>>;\n\tbackground: <<colour background>>;\n}\n\ninput[type=\"checkbox\"] {\n  vertical-align: middle;\n}\n\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-results-button,\ninput[type=\"search\"]::-webkit-search-results-decoration {\n\t-webkit-appearance:none;\n}\n\n.tc-muted {\n\tcolor: <<colour muted-foreground>>;\n}\n\nsvg.tc-image-button {\n\tpadding: 0px 1px 1px 0px;\n}\n\n.tc-icon-wrapper > svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\nkbd {\n\tdisplay: inline-block;\n\tpadding: 3px 5px;\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tcolor: <<colour foreground>>;\n\tvertical-align: middle;\n\tbackground-color: <<colour background>>;\n\tborder: solid 1px <<colour muted-foreground>>;\n\tborder-bottom-color: <<colour muted-foreground>>;\n\tborder-radius: 3px;\n\tbox-shadow: inset 0 -1px 0 <<colour muted-foreground>>;\n}\n\n::selection {\n\tbackground-color: Highlight;\n\tcolor: HighlightText;\n\tbackground-color: <<colour selection-background>>;\n\tcolor: <<colour selection-foreground>>;\n}\n\n/*\nMarkdown likes putting code elements inside pre elements\n*/\npre > code {\n\tpadding: 0;\n\tborder: none;\n\tbackground-color: inherit;\n\tcolor: inherit;\n}\n\ntable {\n\tborder: 1px solid <<colour table-border>>;\n\twidth: auto;\n\tmax-width: 100%;\n\tcaption-side: bottom;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n\t/* next 2 elements needed, since normalize 8.0.1 */\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n}\n\ntable th, table td {\n\tpadding: 0 7px 0 7px;\n\tborder-top: 1px solid <<colour table-border>>;\n\tborder-left: 1px solid <<colour table-border>>;\n}\n\ntable thead tr td, table th {\n\tbackground-color: <<colour table-header-background>>;\n\tfont-weight: bold;\n}\n\ntable tfoot tr td {\n\tbackground-color: <<colour table-footer-background>>;\n}\n\n.tc-csv-table {\n\twhite-space: nowrap;\n}\n\n.tc-tiddler-frame img,\n.tc-tiddler-frame svg,\n.tc-tiddler-frame canvas,\n.tc-tiddler-frame embed,\n.tc-tiddler-frame iframe {\n\tmax-width: 100%;\n}\n\n.tc-tiddler-body > embed,\n.tc-tiddler-body > iframe {\n\twidth: 100%;\n\theight: 600px;\n}\n\n/*\n** Links\n*/\n\nbutton.tc-tiddlylink,\na.tc-tiddlylink {\n\ttext-decoration: none;\n\tfont-weight: 500;\n\tcolor: <<colour tiddler-link-foreground>>;\n\t-webkit-user-select: inherit; /* Otherwise the draggable attribute makes links impossible to select */\n}\n\n.tc-sidebar-lists a.tc-tiddlylink {\n\tcolor: <<colour sidebar-tiddler-link-foreground>>;\n}\n\n.tc-sidebar-lists a.tc-tiddlylink:hover {\n\tcolor: <<colour sidebar-tiddler-link-foreground-hover>>;\n}\n\nbutton.tc-tiddlylink:hover,\na.tc-tiddlylink:hover {\n\ttext-decoration: underline;\n}\n\na.tc-tiddlylink-resolves {\n}\n\na.tc-tiddlylink-shadow {\n\tfont-weight: bold;\n}\n\na.tc-tiddlylink-shadow.tc-tiddlylink-resolves {\n\tfont-weight: normal;\n}\n\na.tc-tiddlylink-missing {\n\tfont-style: italic;\n}\n\na.tc-tiddlylink-external {\n\ttext-decoration: underline;\n\tcolor: <<colour external-link-foreground>>;\n\tbackground-color: <<colour external-link-background>>;\n}\n\na.tc-tiddlylink-external:visited {\n\tcolor: <<colour external-link-foreground-visited>>;\n\tbackground-color: <<colour external-link-background-visited>>;\n}\n\na.tc-tiddlylink-external:hover {\n\tcolor: <<colour external-link-foreground-hover>>;\n\tbackground-color: <<colour external-link-background-hover>>;\n}\n\n.tc-drop-down a.tc-tiddlylink:hover {\n\tcolor: <<colour tiddler-link-background>>;\n}\n\n/*\n** Drag and drop styles\n*/\n\n.tc-tiddler-dragger {\n\tposition: relative;\n\tz-index: -10000;\n}\n\n.tc-tiddler-dragger-inner {\n\tposition: absolute;\n\ttop: -1000px;\n\tleft: -1000px;\n\tdisplay: inline-block;\n\tpadding: 8px 20px;\n\tfont-size: 16.9px;\n\tfont-weight: bold;\n\tline-height: 20px;\n\tcolor: <<colour dragger-foreground>>;\n\ttext-shadow: 0 1px 0 rgba(0, 0, 0, 1);\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour dragger-background>>;\n\tborder-radius: 20px;\n}\n\n.tc-tiddler-dragger-cover {\n\tposition: absolute;\n\tbackground-color: <<colour page-background>>;\n}\n\n.tc-dropzone {\n\tposition: relative;\n}\n\n.tc-dropzone.tc-dragover:before {\n\tz-index: 10000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour dropzone-background>>;\n\ttext-align: center;\n\tcontent: \"<<lingo DropMessage>>\";\n}\n\n.tc-droppable > .tc-droppable-placeholder {\n\tdisplay: none;\n}\n\n.tc-droppable.tc-dragover > .tc-droppable-placeholder {\n\tdisplay: block;\n\tborder: 2px dashed <<colour dropzone-background>>;\n}\n\n.tc-draggable {\n\tcursor: move;\n}\n\n.tc-sidebar-tab-open .tc-droppable-placeholder, .tc-tagged-draggable-list .tc-droppable-placeholder,\n.tc-links-draggable-list .tc-droppable-placeholder {\n\tline-height: 2em;\n\theight: 2em;\n}\n\n.tc-sidebar-tab-open-item {\n\tposition: relative;\n}\n\n.tc-sidebar-tab-open .tc-btn-invisible.tc-btn-mini svg {\n\tfont-size: 0.7em;\n\tfill: <<colour muted-foreground>>;\n}\n\n/*\n** Plugin reload warning\n*/\n\n.tc-plugin-reload-warning {\n\tz-index: 1000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour alert-background>>;\n\ttext-align: center;\n}\n\n/*\n** Buttons\n*/\n\nbutton svg, button img, label svg, label img {\n\tvertical-align: middle;\n}\n\n.tc-btn-invisible {\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\tcursor: pointer;\n\tcolor: <<colour foreground>>;\n\tfill: <<colour foreground>>;\n}\n\n.tc-btn-boxed {\n\tfont-size: 0.6em;\n\tpadding: 0.2em;\n\tmargin: 1px;\n\tbackground: none;\n\tborder: 1px solid <<colour tiddler-controls-foreground>>;\n\tborder-radius: 0.25em;\n}\n\nhtml body.tc-body .tc-btn-boxed svg {\n\tfont-size: 1.6666em;\n}\n\n.tc-btn-boxed:hover {\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n}\n\nhtml body.tc-body .tc-btn-boxed:hover svg {\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded {\n\tfont-size: 0.5em;\n\tline-height: 2;\n\tpadding: 0em 0.3em 0.2em 0.4em;\n\tmargin: 1px;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n\tborder-radius: 2em;\n}\n\nhtml body.tc-body .tc-btn-rounded svg {\n\tfont-size: 1.6666em;\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded:hover {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tcolor: <<colour muted-foreground>>;\n}\n\nhtml body.tc-body .tc-btn-rounded:hover svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-icon svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-text {\n\tpadding: 0;\n\tmargin: 0;\n}\n\n/* used for documentation \"fake\" buttons */\n.tc-btn-standard {\n\tline-height: 1.8;\n\tcolor: #667;\n\tbackground-color: #e0e0e0;\n\tborder: 1px solid #888;\n\tpadding: 2px 1px 2px 1px;\n\tmargin: 1px 4px 1px 4px;\n}\n\n.tc-btn-big-green {\n\tdisplay: inline-block;\n\tpadding: 8px;\n\tmargin: 4px 8px 4px 8px;\n\tbackground: <<colour download-background>>;\n\tcolor: <<colour download-foreground>>;\n\tfill: <<colour download-foreground>>;\n\tborder: none;\n\tborder-radius: 2px;\n\tfont-size: 1.2em;\n\tline-height: 1.4em;\n\ttext-decoration: none;\n}\n\n.tc-btn-big-green svg,\n.tc-btn-big-green img {\n\theight: 2em;\n\twidth: 2em;\n\tvertical-align: middle;\n\tfill: <<colour download-foreground>>;\n}\n\n.tc-primary-btn {\n \tbackground: <<colour primary>>;\n}\n\n.tc-sidebar-lists input {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-sidebar-lists button {\n\tcolor: <<colour sidebar-button-foreground>>;\n\tfill: <<colour sidebar-button-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini {\n\tcolor: <<colour sidebar-muted-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini:hover {\n\tcolor: <<colour sidebar-muted-foreground-hover>>;\n}\n\n.tc-sidebar-lists button small {\n\tcolor: <<colour foreground>>;\n}\n\nbutton svg.tc-image-button, button .tc-image-button img {\n\theight: 1em;\n\twidth: 1em;\n}\n\n.tc-unfold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 100%;\n\twidth: calc(100% + 2px);\n\tmargin-left: -43px;\n\ttext-align: center;\n\tborder-top: 2px solid <<colour tiddler-info-background>>;\n\tmargin-top: 4px;\n}\n\n.tc-unfold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n\tborder-top: 2px solid <<colour tiddler-info-border>>;\n}\n\n.tc-unfold-banner svg, .tc-fold-banner svg {\n\theight: 0.75em;\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-unfold-banner:hover svg, .tc-fold-banner:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n.tc-fold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 23px;\n\ttext-align: center;\n\tmargin-left: -35px;\n\ttop: 6px;\n\tbottom: 6px;\n}\n\n.tc-fold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\n\t.tc-unfold-banner {\n\t\tposition: static;\n\t\twidth: calc(100% + 59px);\n\t}\n\n\t.tc-fold-banner {\n\t\twidth: 16px;\n\t\tmargin-left: -16px;\n\t\tfont-size: 0.75em;\n\t}\n\n}\n\n/*\n** Tags and missing tiddlers\n*/\n\n.tc-tag-list-item {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin-right: 7px;\n}\n\n.tc-tags-wrapper {\n\tmargin: 4px 0 14px 0;\n}\n\n.tc-missing-tiddler-label {\n\tfont-style: italic;\n\tfont-weight: normal;\n\tdisplay: inline-block;\n\tfont-size: 11.844px;\n\tline-height: 14px;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n}\n\n.tc-block-tags-dropdown > .tc-btn-invisible:hover {\n\tbackground-color: <<colour primary>>;\n}\n\nbutton.tc-tag-label, span.tc-tag-label {\n\tdisplay: inline-block;\n\tpadding: 0.16em 0.7em;\n\tfont-size: 0.9em;\n\tfont-weight: 400;\n\tline-height: 1.2em;\n\tcolor: <<colour tag-foreground>>;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour tag-background>>;\n\tborder-radius: 1em;\n}\n\n.tc-sidebar-scrollable .tc-tag-label {\n\ttext-shadow: none;\n}\n\n.tc-untagged-separator {\n\twidth: 10em;\n\tleft: 0;\n\tmargin-left: 0;\n\tborder: 0;\n\theight: 1px;\n\tbackground: <<colour tab-divider>>;\n}\n\nbutton.tc-untagged-label {\n\tbackground-color: <<colour untagged-background>>;\n}\n\n.tc-tag-label svg, .tc-tag-label img {\n\theight: 1em;\n\twidth: 1em;\n\tmargin-right: 3px; \n\tmargin-bottom: 1px;\n\tvertical-align: bottom;\n}\n\n.tc-edit-tags button.tc-remove-tag-button svg {\n\tfont-size: 0.7em;\n\tvertical-align: middle;\n}\n\n.tc-tag-manager-table .tc-tag-label {\n\twhite-space: normal;\n}\n\n.tc-tag-manager-tag {\n\twidth: 100%;\n}\n\nbutton.tc-btn-invisible.tc-remove-tag-button {\n\toutline: none;\n}\n\n.tc-tag-button-selected,\n.tc-list-item-selected a.tc-tiddlylink, a.tc-list-item-selected {\n\tbackground-color: <<colour primary>>;\n\tcolor: <<colour tiddler-background>>;\n}\n\n/*\n** Page layout\n*/\n\n.tc-topbar {\n\tposition: fixed;\n\tz-index: 1200;\n}\n\n.tc-topbar-left {\n\tleft: 29px;\n\ttop: 5px;\n}\n\n.tc-topbar-right {\n\ttop: 5px;\n\tright: 29px;\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\n\t.tc-topbar-right {\n\t\tright: 10px;\n\t}\n\n}\n\n.tc-topbar button {\n\tpadding: 8px;\n}\n\n.tc-topbar svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-topbar button:hover svg {\n\tfill: <<colour foreground>>;\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\n\t.tc-show-sidebar-btn svg.tc-image-chevron-left, .tc-hide-sidebar-btn svg.tc-image-chevron-right {\n\t\ttransform: rotate(-90deg);\n\t}\n\n}\n\n.tc-sidebar-header {\n\tcolor: <<colour sidebar-foreground>>;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-sidebar-header .tc-title a.tc-tiddlylink-resolves {\n\tfont-weight: 300;\n}\n\n.tc-sidebar-header .tc-sidebar-lists p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-sidebar-header .tc-missing-tiddler-label {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-advanced-search input {\n\twidth: 60%;\n}\n\n.tc-search a svg {\n\twidth: 1.2em;\n\theight: 1.2em;\n\tvertical-align: middle;\n}\n\n.tc-page-controls {\n\tmargin-top: 14px;\n\tfont-size: 1.5em;\n}\n\n.tc-page-controls .tc-drop-down {\n  font-size: 1rem;\n}\n\n.tc-page-controls button {\n\tmargin-right: 0.5em;\n}\n\n.tc-page-controls a.tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-page-controls img {\n\twidth: 1em;\n}\n\n.tc-page-controls svg {\n\tfill: <<colour sidebar-controls-foreground>>;\n}\n\n.tc-page-controls button:hover svg, .tc-page-controls a:hover svg {\n\tfill: <<colour sidebar-controls-foreground-hover>>;\n}\n\n.tc-sidebar-lists .tc-menu-list-item {\n\twhite-space: nowrap;\n}\n\n.tc-menu-list-count {\n\tfont-weight: bold;\n}\n\n.tc-menu-list-subitem {\n\tpadding-left: 7px;\n}\n\n.tc-story-river {\n\tposition: relative;\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\n\t.tc-sidebar-header {\n\t\tpadding: 14px;\n\t\tmin-height: 32px;\n\t\tmargin-top: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\ttransition:  min-height {{$:/config/AnimationDuration}}ms ease-in-out, padding-top {{$:/config/AnimationDuration}}ms ease-in-out, padding-bottom {{$:/config/AnimationDuration}}ms ease-in-out;\n\t}\n\t\n\t<<if-no-sidebar \"\"\"\n\n\t\t.tc-sidebar-header {\n\t\t\tmin-height: 0;\n\t\t\tpadding-top: 0;\n\t\t\tpadding-bottom: 0;\n\t\t}\n\n\t\"\"\">>\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tpadding: 0;\n\t}\n}\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\n\t.tc-message-box {\n\t\tmargin: 21px -21px 21px -21px;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tposition: fixed;\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t\tbottom: 0;\n\t\tright: 0;\n\t\toverflow-y: auto;\n\t\toverflow-x: auto;\n\t\t-webkit-overflow-scrolling: touch;\n\t\tmargin: 0 0 0 -42px;\n\t\tpadding: 71px 0 28px 42px;\n\t}\n\n\thtml[dir=\"rtl\"] .tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tright: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/storywidth}};\n\t\tpadding: 42px 42px 42px 42px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-story-river {\n\t\twidth: calc(100% - {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}});\n\t}\n\n\">>\n\n\t.tc-story-river.tc-static-story-river {\n\t\tmargin-right: 0;\n\t\tpadding-right: 42px;\n\t}\n\n}\n\n@media print {\n\n\tbody.tc-body {\n\t\tbackground-color: transparent;\n\t}\n\n\t.tc-sidebar-header, .tc-topbar {\n\t\tdisplay: none;\n\t}\n\n\t.tc-story-river {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\t.tc-story-river .tc-tiddler-frame {\n\t\tmargin: 0;\n\t\tborder: none;\n\t\tpadding: 0;\n\t}\n}\n\n/*\n** Tiddler styles\n*/\n\n.tc-tiddler-frame {\n\tposition: relative;\n\tmargin-bottom: 28px;\n\tbackground-color: <<colour tiddler-background>>;\n\tborder: 1px solid <<colour tiddler-border>>;\n}\n\n{{$:/themes/tiddlywiki/vanilla/sticky}}\n\n.tc-tiddler-info {\n\tpadding: 14px 42px 14px 42px;\n\tbackground-color: <<colour tiddler-info-background>>;\n\tborder-top: 1px solid <<colour tiddler-info-border>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-border>>;\n}\n\n.tc-tiddler-info p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-tiddler-info .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour tiddler-info-tab-background>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-tab-background>>;\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\n\t.tc-tiddler-info {\n\t\tpadding: 14px 14px 14px 14px;\n\t}\n\n}\n\n.tc-view-field-table {\n\twidth: 100%;\n}\n\n.tc-view-field-name {\n\twidth: 1%; /* Makes this column be as narrow as possible */\n\ttext-align: right;\n\tfont-style: italic;\n\tfont-weight: 200;\n}\n\n.tc-view-field-value {\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\t.tc-tiddler-frame {\n\t\tpadding: 14px 14px 14px 14px;\n\t\tmargin-bottom: .5em;\n\t}\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -14px 0 -14px;\n\t}\n}\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\t.tc-tiddler-frame {\n\t\tpadding: 28px 42px 42px 42px;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth}};\n\t\tborder-radius: 2px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\">>\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -42px 0 -42px;\n\t}\n}\n\n.tc-site-title,\n.tc-titlebar {\n\tfont-weight: 300;\n\tfont-size: 2.35em;\n\tline-height: 1.35em;\n\tcolor: <<colour tiddler-title-foreground>>;\n\tmargin: 0;\n}\n\n.tc-site-title {\n\tcolor: <<colour site-title-foreground>>;\n}\n\n.tc-tiddler-title-icon {\n\tvertical-align: middle;\n\tmargin-right: .1em;\n}\n\n.tc-system-title-prefix {\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-titlebar h2 {\n\tfont-size: 1em;\n\tdisplay: inline;\n}\n\n.tc-titlebar img {\n\theight: 1em;\n}\n\n.tc-subtitle {\n\tfont-size: 0.9em;\n\tcolor: <<colour tiddler-subtitle-foreground>>;\n\tfont-weight: 300;\n}\n\n.tc-subtitle .tc-tiddlylink {\n\tmargin-right: .3em;\n}\n\n.tc-tiddler-missing .tc-title {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.tc-tiddler-frame .tc-tiddler-controls {\n\tfloat: right;\n}\n\n.tc-tiddler-controls .tc-drop-down {\n\tfont-size: 0.6em;\n}\n\n.tc-tiddler-controls .tc-drop-down .tc-drop-down {\n\tfont-size: 1em;\n}\n\n.tc-tiddler-controls > span > button,\n.tc-tiddler-controls > span > span > button,\n.tc-tiddler-controls > span > span > span > button {\n\tvertical-align: baseline;\n\tmargin-left:5px;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img,\n.tc-search button svg, .tc-search a svg {\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img {\n\theight: 0.75em;\n}\n\n.tc-search button svg, .tc-search a svg {\n    height: 1.2em;\n    width: 1.2em;\n    margin: 0 0.25em;\n}\n\n.tc-tiddler-controls button.tc-selected svg,\n.tc-page-controls button.tc-selected svg  {\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n}\n\n.tc-tiddler-controls button.tc-btn-invisible:hover svg,\n.tc-search button:hover svg, .tc-search a:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n@media print {\n\t.tc-tiddler-controls {\n\t\tdisplay: none;\n\t}\n}\n\n.tc-tiddler-help { /* Help prompts within tiddler template */\n\tcolor: <<colour muted-foreground>>;\n\tmargin-top: 14px;\n}\n\n.tc-tiddler-help a.tc-tiddlylink {\n\tcolor: <<colour very-muted-foreground>>;\n}\n\n.tc-tiddler-frame .tc-edit-texteditor {\n\twidth: 100%;\n\tmargin: 4px 0 4px 0;\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor,\n.tc-tiddler-frame textarea.tc-edit-texteditor,\n.tc-tiddler-frame iframe.tc-edit-texteditor {\n\tpadding: 3px 3px 3px 3px;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tline-height: 1.3em;\n\t-webkit-appearance: none;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor,\n.tc-tiddler-frame textarea.tc-edit-texteditor {\n\tbackground-color: <<colour tiddler-editor-background>>;\n}\n\n.tc-tiddler-frame iframe.tc-edit-texteditor {\n\tbackground-color: <<colour tiddler-background>>;\n}\n\n.tc-tiddler-frame .tc-binary-warning {\n\twidth: 100%;\n\theight: 5em;\n\ttext-align: center;\n\tpadding: 3em 3em 6em 3em;\n\tbackground: <<colour alert-background>>;\n\tborder: 1px solid <<colour alert-border>>;\n}\n\ncanvas.tc-edit-bitmapeditor  {\n\tborder: 6px solid <<colour tiddler-editor-border-image>>;\n\tcursor: crosshair;\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tmargin-top: 6px;\n\tmargin-bottom: 6px;\n}\n\n.tc-edit-bitmapeditor-width {\n\tdisplay: block;\n}\n\n.tc-edit-bitmapeditor-height {\n\tdisplay: block;\n}\n\n.tc-tiddler-body {\n\tclear: both;\n}\n\n.tc-tiddler-frame .tc-tiddler-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/bodylineheight}};\n}\n\n.tc-titlebar, .tc-tiddler-edit-title {\n\toverflow: hidden; /* https://github.com/Jermolene/TiddlyWiki5/issues/282 */\n}\n\nhtml body.tc-body.tc-single-tiddler-window {\n\tmargin: 1em;\n\tbackground: <<colour tiddler-background>>;\n}\n\n.tc-single-tiddler-window img,\n.tc-single-tiddler-window svg,\n.tc-single-tiddler-window canvas,\n.tc-single-tiddler-window embed,\n.tc-single-tiddler-window iframe {\n\tmax-width: 100%;\n}\n\n/*\n** Editor\n*/\n\n.tc-editor-toolbar {\n\tmargin-top: 8px;\n}\n\n.tc-editor-toolbar button {\n\tvertical-align: middle;\n\tbackground-color: <<colour tiddler-controls-foreground>>;\n\tcolor: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n\tborder-radius: 4px;\n\tpadding: 3px;\n\tmargin: 2px 0 2px 4px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-adjunct {\n\tmargin-left: 1px;\n\twidth: 1em;\n\tborder-radius: 8px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-start-group {\n\tmargin-left: 11px;\n}\n\n.tc-editor-toolbar button.tc-selected {\n\tbackground-color: <<colour primary>>;\n}\n\n.tc-editor-toolbar button svg {\n\twidth: 1.6em;\n\theight: 1.2em;\n}\n\n.tc-editor-toolbar button:hover {\n\tbackground-color: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour background>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more {\n\twhite-space: normal;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more button {\n\tdisplay: inline-block;\n\tpadding: 3px;\n\twidth: auto;\n}\n\n.tc-editor-toolbar .tc-search-results {\n\tpadding: 0;\n}\n\n/*\n** Adjustments for fluid-fixed mode\n*/\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\n<<if-fluid-fixed text:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 0;\n\t\tposition: relative;\n\t\twidth: auto;\n\t\tleft: 0;\n\t\tmargin-left: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\tmargin-right: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tbottom: 0;\n\t\tright: 0;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 42px);\n\t}\n\n\"\"\" hiddenSidebarText:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 3em;\n\t\tmargin-right: 0;\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 84px);\n\t}\n\n\"\"\">>\n\n}\n\n/*\n** Toolbar buttons\n*/\n\n.tc-page-controls svg.tc-image-new-button {\n  fill: <<colour toolbar-new-button>>;\n}\n\n.tc-page-controls svg.tc-image-options-button {\n  fill: <<colour toolbar-options-button>>;\n}\n\n.tc-page-controls svg.tc-image-save-button {\n  fill: <<colour toolbar-save-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-info-button {\n  fill: <<colour toolbar-info-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-edit-button {\n  fill: <<colour toolbar-edit-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-close-button {\n  fill: <<colour toolbar-close-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-delete-button {\n  fill: <<colour toolbar-delete-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-cancel-button {\n  fill: <<colour toolbar-cancel-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-done-button {\n  fill: <<colour toolbar-done-button>>;\n}\n\n/*\n** Tiddler edit mode\n*/\n\n.tc-tiddler-edit-frame em.tc-edit {\n\tcolor: <<colour muted-foreground>>;\n\tfont-style: normal;\n}\n\n.tc-edit-type-dropdown a.tc-tiddlylink-missing {\n\tfont-style: normal;\n}\n\n.tc-type-selector .tc-edit-typeeditor {\n\twidth: auto;\n}\n\n.tc-type-selector-dropdown-wrapper {\n\tdisplay: inline-block;\n}\n\n<<set-type-selector-min-width>>\n\n.tc-edit-tags {\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tpadding: 4px 8px 4px 8px;\n}\n\n.tc-edit-add-tag {\n\tdisplay: inline-block;\n}\n\n.tc-edit-add-tag .tc-add-tag-name input {\n\twidth: 50%;\n}\n\n.tc-edit-add-tag .tc-keyboard {\n\tdisplay:inline;\n}\n\n.tc-edit-tags .tc-tag-label {\n\tdisplay: inline-block;\n}\n\n.tc-edit-tags-list {\n\tmargin: 14px 0 14px 0;\n}\n\n.tc-remove-tag-button {\n\tpadding-left: 4px;\n}\n\n.tc-tiddler-preview {\n\toverflow: auto;\n}\n\n.tc-tiddler-preview-preview {\n\tfloat: right;\n\twidth: 49%;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tmargin: 4px 0 3px 3px;\n\tpadding: 3px 3px 3px 3px;\n}\n\n<<if-editor-height-fixed then:\"\"\"\n\n.tc-tiddler-preview-preview {\n\toverflow-y: scroll;\n\theight: {{$:/config/TextEditor/EditorHeight/Height}};\n}\n\n\"\"\">>\n\n.tc-tiddler-frame .tc-tiddler-preview .tc-edit-texteditor {\n\twidth: 49%;\n}\n\n.tc-tiddler-frame .tc-tiddler-preview canvas.tc-edit-bitmapeditor {\n\tmax-width: 49%;\n}\n\n.tc-edit-fields {\n\twidth: 100%;\n}\n\n.tc-edit-fields.tc-edit-fields-small {\n\tmargin-top: 0;\n\tmargin-bottom: 0;\n}\n\n.tc-edit-fields table, .tc-edit-fields tr, .tc-edit-fields td {\n\tborder: none;\n\tpadding: 4px;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(odd) {\n\tbackground-color: <<colour tiddler-editor-fields-odd>>;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(even) {\n\tbackground-color: <<colour tiddler-editor-fields-even>>;\n}\n\n.tc-edit-field-name {\n\ttext-align: right;\n}\n\n.tc-edit-field-value input {\n\twidth: 100%;\n}\n\n.tc-edit-field-remove {\n}\n\n.tc-edit-field-remove svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n\tvertical-align: middle;\n}\n\n.tc-edit-field-add-name-wrapper input.tc-edit-texteditor {\n\twidth: auto;\n}\n\n.tc-edit-field-add-name-wrapper {\n\tdisplay: inline-block;\n}\n\n.tc-edit-field-add-value {\n\tdisplay: inline-block;\n}\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\n\t.tc-edit-field-add-value {\n\t\twidth: 35%;\n\t}\n\n}\n\n.tc-edit-field-add-button {\n\tdisplay: inline-block;\n\twidth: 10%;\n}\n\n/*\n** Storyview Classes\n*/\n\n.tc-viewswitcher .tc-image-button {\n\tmargin-right: .3em;\n}\n\n.tc-storyview-zoomin-tiddler {\n\tposition: absolute;\n\tdisplay: block;\n\twidth: 100%;\n}\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\n\t.tc-storyview-zoomin-tiddler {\n\t\twidth: calc(100% - 84px);\n\t}\n\n}\n\n/*\n** Dropdowns\n*/\n\n.tc-btn-dropdown {\n\ttext-align: left;\n}\n\n.tc-btn-dropdown svg, .tc-btn-dropdown img {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-drop-down-wrapper {\n\tposition: relative;\n}\n\n.tc-drop-down {\n\tmin-width: 380px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\ttext-shadow: none;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-drop-down {\n\tmargin-left: 14px;\n}\n\n.tc-drop-down button svg, .tc-drop-down a svg  {\n\tfill: <<colour foreground>>;\n}\n\n.tc-drop-down button.tc-btn-invisible:hover svg {\n\tfill: <<colour background>>;\n}\n\n.tc-drop-down .tc-drop-down-info {\n\tpadding-left: 14px;\n}\n\n.tc-drop-down p {\n\tpadding: 0 14px 0 14px;\n}\n\n.tc-drop-down svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-drop-down img {\n\twidth: 1em;\n}\n\n.tc-drop-down a, .tc-drop-down button {\n\tdisplay: block;\n\tpadding: 0 14px 0 14px;\n\twidth: 100%;\n\ttext-align: left;\n\tcolor: <<colour foreground>>;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-tab-set .tc-tab-buttons button {\n\tdisplay: inline-block;\n    width: auto;\n    margin-bottom: 0px;\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n}\n\n.tc-drop-down .tc-prompt {\n\tpadding: 0 14px;\n}\n\n.tc-drop-down .tc-chooser {\n\tborder: none;\n}\n\n.tc-drop-down .tc-chooser .tc-swatches-horiz {\n\tfont-size: 0.4em;\n\tpadding-left: 1.2em;\n}\n\n.tc-drop-down .tc-file-input-wrapper {\n\twidth: 100%;\n}\n\n.tc-drop-down .tc-file-input-wrapper button {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-drop-down a:hover, .tc-drop-down button:hover, .tc-drop-down .tc-file-input-wrapper:hover button {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-tab-buttons button {\n\tbackground-color: <<colour dropdown-tab-background>>;\n}\n\n.tc-drop-down .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour dropdown-tab-background-selected>>;\n\tborder-bottom: 1px solid <<colour dropdown-tab-background-selected>>;\n}\n\n.tc-drop-down-bullet {\n\tdisplay: inline-block;\n\twidth: 0.5em;\n}\n\n.tc-drop-down .tc-tab-contents a {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-block-dropdown-wrapper {\n\tposition: relative;\n}\n\n.tc-block-dropdown {\n\tposition: absolute;\n\tmin-width: 220px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\tz-index: 1000;\n\ttext-shadow: none;\n}\n\n.tc-block-dropdown.tc-search-drop-down {\n\tmargin-left: -12px;\n}\n\n.tc-block-dropdown a {\n\tdisplay: block;\n\tpadding: 4px 14px 4px 14px;\n}\n\n.tc-block-dropdown.tc-search-drop-down a {\n\tdisplay: block;\n\tpadding: 0px 10px 0px 10px;\n}\n\n.tc-drop-down .tc-dropdown-item-plain,\n.tc-block-dropdown .tc-dropdown-item-plain {\n\tpadding: 4px 14px 4px 7px;\n}\n\n.tc-drop-down .tc-dropdown-item,\n.tc-block-dropdown .tc-dropdown-item {\n\tpadding: 4px 14px 4px 7px;\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-block-dropdown a.tc-tiddlylink:hover {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-search-results {\n\tpadding: 0 7px 0 7px;\n}\n\n.tc-image-chooser, .tc-colour-chooser {\n\twhite-space: normal;\n}\n\n.tc-image-chooser a,\n.tc-colour-chooser a {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\ttext-align: center;\n\tposition: relative;\n}\n\n.tc-image-chooser a {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 2px;\n\tmargin: 2px;\n\twidth: 4em;\n\theight: 4em;\n}\n\n.tc-colour-chooser a {\n\tpadding: 3px;\n\twidth: 2em;\n\theight: 2em;\n\tvertical-align: middle;\n}\n\n.tc-image-chooser a:hover,\n.tc-colour-chooser a:hover {\n\tbackground: <<colour primary>>;\n\tpadding: 0px;\n\tborder: 3px solid <<colour primary>>;\n}\n\n.tc-image-chooser a svg,\n.tc-image-chooser a img {\n\tdisplay: inline-block;\n\twidth: auto;\n\theight: auto;\n\tmax-width: 3.5em;\n\tmax-height: 3.5em;\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\tmargin: auto;\n}\n\n/*\n** Modals\n*/\n\n.tc-modal-wrapper {\n\tposition: fixed;\n\toverflow: auto;\n\toverflow-y: scroll;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 900;\n}\n\n.tc-modal-backdrop {\n\tposition: fixed;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 1000;\n\tbackground-color: <<colour modal-backdrop>>;\n}\n\n.tc-modal {\n\tz-index: 1100;\n\tbackground-color: <<colour modal-background>>;\n\tborder: 1px solid <<colour modal-border>>;\n}\n\n@media (max-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 1em;\n\t\tleft: 1em;\n\t\tright: 1em;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n@media (min-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 2em;\n\t\tleft: 25%;\n\t\twidth: 50%;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n.tc-modal-header {\n\tpadding: 9px 15px;\n\tborder-bottom: 1px solid <<colour modal-header-border>>;\n}\n\n.tc-modal-header h3 {\n\tmargin: 0;\n\tline-height: 30px;\n}\n\n.tc-modal-header img, .tc-modal-header svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-modal-body {\n\tpadding: 15px;\n}\n\n.tc-modal-footer {\n\tpadding: 14px 15px 15px;\n\tmargin-bottom: 0;\n\ttext-align: right;\n\tbackground-color: <<colour modal-footer-background>>;\n\tborder-top: 1px solid <<colour modal-footer-border>>;\n}\n\n\n/*\n** Centered modals\n*/\n.tc-modal-centered .tc-modal {\n\twidth: auto;\n\ttop: 50%;\n\tleft: 50%;\n\ttransform: translate(-50%, -50%) !important;\n}\n\n/*\n** Notifications\n*/\n\n.tc-notification {\n\tposition: fixed;\n\ttop: 14px;\n\tright: 42px;\n\tz-index: 1300;\n\tmax-width: 280px;\n\tpadding: 0 14px 0 14px;\n\tbackground-color: <<colour notification-background>>;\n\tborder: 1px solid <<colour notification-border>>;\n}\n\n/*\n** Tabs\n*/\n\n.tc-tab-set.tc-vertical {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tab-buttons {\n\tfont-size: 0.85em;\n\tpadding-top: 1em;\n\tmargin-bottom: -2px;\n}\n\n.tc-tab-buttons.tc-vertical  {\n\tz-index: 100;\n\tdisplay: block;\n\tpadding-top: 14px;\n\tvertical-align: top;\n\ttext-align: right;\n\tmargin-bottom: inherit;\n\tmargin-right: -1px;\n\tmax-width: 33%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n}\n\n.tc-tab-buttons button.tc-tab-selected {\n\tcolor: <<colour tab-foreground-selected>>;\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-left: 1px solid <<colour tab-border-selected>>;\n\tborder-top: 1px solid <<colour tab-border-selected>>;\n\tborder-right: 1px solid <<colour tab-border-selected>>;\n}\n\n.tc-tab-buttons button {\n\tcolor: <<colour tab-foreground>>;\n\tpadding: 3px 5px 3px 5px;\n\tmargin-right: 0.3em;\n\tfont-weight: 300;\n\tborder: none;\n\tbackground: inherit;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-right: 1px solid <<colour tab-border>>;\n\tborder-top-left-radius: 2px;\n\tborder-top-right-radius: 2px;\n\tborder-bottom-left-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n.tc-tab-buttons.tc-vertical button {\n\tdisplay: block;\n\twidth: 100%;\n\tmargin-top: 3px;\n\tmargin-right: 0;\n\ttext-align: right;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tborder-right: none;\n\tborder-top-left-radius: 2px;\n\tborder-bottom-left-radius: 2px;\n\tborder-top-right-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n.tc-tab-buttons.tc-vertical button.tc-tab-selected {\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-right: 1px solid <<colour tab-background-selected>>;\n}\n\n.tc-tab-divider {\n\tborder-top: 1px solid <<colour tab-divider>>;\n}\n\n.tc-tab-divider.tc-vertical  {\n\tdisplay: none;\n}\n\n.tc-tab-content {\n\tmargin-top: 14px;\n}\n\n.tc-tab-content.tc-vertical  {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-top: 0;\n\tpadding-left: 14px;\n\tborder-left: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 70%;\n\tflex: 1 0 70%;\n\toverflow: auto;\n}\n\n.tc-sidebar-lists .tc-tab-buttons {\n\tmargin-bottom: -1px;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tcolor: <<colour sidebar-tab-foreground-selected>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border-selected>>;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button {\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tcolor: <<colour sidebar-tab-foreground>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border>>;\n}\n\n.tc-sidebar-lists .tc-tab-divider {\n\tborder-top: 1px solid <<colour sidebar-tab-divider>>;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\tdisplay: block;\n\twidth: 100%;\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tborder-top: none;\n\tborder-left: none;\n\tborder-bottom: none;\n\tborder-right: 1px solid #ccc;\n\tmargin-bottom: inherit;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tborder: none;\n}\n\n/*\n** Manager\n*/\n\n.tc-manager-wrapper {\n\t\n}\n\n.tc-manager-controls {\n\t\n}\n\n.tc-manager-control {\n\tmargin: 0.5em 0;\n}\n\n.tc-manager-list {\n\twidth: 100%;\n\tborder-top: 1px solid <<colour muted-foreground>>;\n\tborder-left: 1px solid <<colour muted-foreground>>;\n\tborder-right: 1px solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item {\n\n}\n\n.tc-manager-list-item-heading {\n    display: block;\n    width: 100%;\n    text-align: left;\t\n\tborder-bottom: 1px solid <<colour muted-foreground>>;\n\tpadding: 3px;\n}\n\n.tc-manager-list-item-heading-selected {\n\tfont-weight: bold;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n\tbackground-color: <<colour foreground>>;\n}\n\n.tc-manager-list-item-heading:hover {\n\tbackground: <<colour primary>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-manager-list-item-content {\n\tdisplay: flex;\n}\n\n.tc-manager-list-item-content-sidebar {\n    flex: 1 0;\n    background: <<colour tiddler-editor-background>>;\n    border-right: 0.5em solid <<colour muted-foreground>>;\n    border-bottom: 0.5em solid <<colour muted-foreground>>;\n    white-space: nowrap;\n}\n\n.tc-manager-list-item-content-item-heading {\n\tdisplay: block;\n\twidth: 100%;\n\ttext-align: left;\n    background: <<colour muted-foreground>>;\n\ttext-transform: uppercase;\n\tfont-size: 0.6em;\n\tfont-weight: bold;\n    padding: 0.5em 0 0.5em 0;\n}\n\n.tc-manager-list-item-content-item-body {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-manager-list-item-content-item-body > pre {\n\tmargin: 0.5em 0 0.5em 0;\n\tborder: none;\n\tbackground: inherit;\n}\n\n.tc-manager-list-item-content-tiddler {\n    flex: 3 1;\n    border-left: 0.5em solid <<colour muted-foreground>>;\n    border-right: 0.5em solid <<colour muted-foreground>>;\n    border-bottom: 0.5em solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item-content-item-body > table {\n\tborder: none;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.tc-manager-list-item-content-item-body > table td {\n\tborder: none;\n}\n\n.tc-manager-icon-editor > button {\n\twidth: 100%;\n}\n\n.tc-manager-icon-editor > button > svg,\n.tc-manager-icon-editor > button > button {\n\twidth: 100%;\n\theight: auto;\n}\n\n/*\n** Import table\n*/\n\n.tc-import-table {\n\twidth: 100%;\n}\n\n.tc-import-table svg.tc-image-edit-button {\n\tmax-width: unset;\n}\n\n.tc-import-table th:first-of-type {\n\twidth: 10%;\n}\n\n.tc-import-table th:last-of-type {\n\twidth: 30%;\n}\n\n.tc-import-table .tc-row-disabled {\n\tbackground: <<colour very-muted-foreground>>10;\n\topacity: 0.8;\n}\n\n.tc-import-table .tc-row-warning {\n\tbackground: <<colour diff-delete-background>>50;\n}\n\n/*\n** Alerts\n*/\n\n.tc-alerts {\n\tposition: fixed;\n\ttop: 28px;\n\tleft: 0;\n\tright: 0;\n\tmax-width: 50%;\n\tz-index: 20000;\n}\n\n.tc-alert {\n\tposition: relative;\n\tmargin: 14px;\n\tpadding: 7px;\n\tborder: 1px solid <<colour alert-border>>;\n\tbackground-color: <<colour alert-background>>;\n}\n\n.tc-alert-toolbar {\n\tposition: absolute;\n\ttop: 7px;\n\tright: 7px;\n    line-height: 0;\n}\n\n.tc-alert-toolbar svg {\n\tfill: <<colour alert-muted-foreground>>;\n}\n\n.tc-alert-subtitle {\n\tcolor: <<colour alert-muted-foreground>>;\n\tfont-weight: bold;\n    font-size: 0.8em;\n    margin-bottom: 0.5em;\n}\n\n.tc-alert-body > p {\n\tmargin: 0;\n}\n\n.tc-alert-highlight {\n\tcolor: <<colour alert-highlight>>;\n}\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\n\t.tc-static-alert {\n\t\tposition: relative;\n\t}\n\n\t.tc-static-alert-inner {\n\t\tposition: absolute;\n\t\tz-index: 100;\n\t}\n\n}\n\n.tc-static-alert-inner {\n\tpadding: 0 2px 2px 42px;\n\tcolor: <<colour static-alert-foreground>>;\n}\n\n/*\n** Floating drafts list\n*/\n\n.tc-drafts-list {\n\tz-index: 2000;\n\tposition: fixed;\n\tfont-size: 0.8em;\n\tleft: 0;\n\tbottom: 0;\n}\n\n.tc-drafts-list a {\n\tmargin: 0 0.5em;\n\tpadding: 4px 4px;\n\tborder-top-left-radius: 4px;\n\tborder-top-right-radius: 4px;\n\tborder: 1px solid <<colour background>>;\n\tborder-bottom-none;\n\tbackground: <<colour dirty-indicator>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n}\n\n.tc-drafts-list a:hover {\n\ttext-decoration: none;\n\tbackground: <<colour foreground>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n}\n\n.tc-drafts-list a svg {\n\twidth: 1em;\n\theight: 1em;\n\tvertical-align: text-bottom;\n}\n\n/*\n** Control panel\n*/\n\n.tc-control-panel td {\n\tpadding: 4px;\n}\n\n.tc-control-panel table, .tc-control-panel table input, .tc-control-panel table textarea {\n\twidth: 100%;\n}\n\n.tc-plugin-info {\n\tdisplay: flex;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tfill: <<colour muted-foreground>>;\n\tbackground-color: <<colour background>>;\n\tmargin: 0.5em 0 0.5em 0;\n\tpadding: 4px;\n    align-items: center;\n}\n\n.tc-plugin-info-sub-plugins .tc-plugin-info {\n    margin: 0.5em;\n\tbackground: <<colour background>>;\n}\n\n.tc-plugin-info-sub-plugin-indicator {\n\tmargin: -16px 1em 0 2em;\n}\n\n.tc-plugin-info-sub-plugin-indicator button {\n\tcolor: <<colour background>>;\n\tbackground: <<colour foreground>>;\n\tborder-radius: 8px;\n    padding: 2px 7px;\n    font-size: 0.75em;\n}\n\n.tc-plugin-info-sub-plugins .tc-plugin-info-dropdown {\n\tmargin-left: 1em;\n\tmargin-right: 1em;\n}\n\n.tc-plugin-info-disabled {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n\tbackground: repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n}\n\n.tc-plugin-info-disabled:hover {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n\tbackground: repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n}\n\na.tc-tiddlylink.tc-plugin-info:hover {\n\ttext-decoration: none;\n\tbackground-color: <<colour primary>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour foreground>>;\n}\n\na.tc-tiddlylink.tc-plugin-info:hover > .tc-plugin-info-chunk > svg {\n\tfill: <<colour background>>;\n}\n\n.tc-plugin-info-chunk {\n    margin: 2px;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-toggle {\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tline-height: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-icon {\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tline-height: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description {\n\tflex-grow: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-buttons {\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tflex-grow: 0;\n\tflex-shrink: 0;\n    text-align: right;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description h1 {\n\tfont-size: 1em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description h2 {\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description div {\n\tfont-size: 0.7em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-toggle img, .tc-plugin-info-chunk.tc-plugin-info-toggle svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-icon img, .tc-plugin-info-chunk.tc-plugin-info-icon svg {\n\twidth: 2em;\n\theight: 2em;\n}\n\n.tc-plugin-info-dropdown {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tmargin-top: -8px;\n}\n\n.tc-plugin-info-dropdown-message {\n\tbackground: <<colour message-background>>;\n\tpadding: 0.5em 1em 0.5em 1em;\n\tfont-weight: bold;\n\tfont-size: 0.8em;\n}\n\n.tc-plugin-info-dropdown-body {\n\tpadding: 1em 1em 0 1em;\n\tbackground: <<colour background>>;\n}\n\n.tc-plugin-info-sub-plugins {\n\tpadding: 0.5em;\n    margin: 0 1em 1em 1em;\n\tbackground: <<colour notification-background>>;\n}\n\n.tc-install-plugin {\n\tfont-weight: bold;\n\tbackground: green;\n\tcolor: white;\n\tfill: white;\n\tborder-radius: 4px;\n\tpadding: 3px;\n}\n\n.tc-install-plugin.tc-reinstall-downgrade {\n\tbackground: red;\n}\n\n.tc-install-plugin.tc-reinstall {\n\tbackground: blue;\n}\n\n.tc-install-plugin.tc-reinstall-upgrade {\n\tbackground: orange;\n}\n\n.tc-check-list {\n\tline-height: 2em;\n}\n\n.tc-check-list .tc-image-button {\n\theight: 1.5em;\n}\n\n/*\n** Message boxes\n*/\n\n.tc-message-box {\n\tborder: 1px solid <<colour message-border>>;\n\tbackground: <<colour message-background>>;\n\tpadding: 0px 21px 0px 21px;\n\tfont-size: 12px;\n\tline-height: 18px;\n\tcolor: <<colour message-foreground>>;\n}\n\n.tc-message-box svg {\n\twidth: 1em;\n\theight: 1em;\n    vertical-align: text-bottom;\n}\n\n/*\n** Pictures\n*/\n\n.tc-bordered-image {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 5px;\n\tmargin: 5px;\n}\n\n/*\n** Floats\n*/\n\n.tc-float-right {\n\tfloat: right;\n}\n\n/*\n** Chooser\n*/\n\n.tc-chooser {\n\tborder-right: 1px solid <<colour table-header-background>>;\n\tborder-left: 1px solid <<colour table-header-background>>;\n}\n\n\n.tc-chooser-item {\n\tborder-bottom: 1px solid <<colour table-header-background>>;\n\tborder-top: 1px solid <<colour table-header-background>>;\n\tpadding: 2px 4px 2px 14px;\n}\n\n.tc-drop-down .tc-chooser-item {\n\tpadding: 2px;\n}\n\n.tc-chosen,\n.tc-chooser-item:hover {\n\tbackground-color: <<colour table-header-background>>;\n\tborder-color: <<colour table-footer-background>>;\n}\n\n.tc-chosen .tc-tiddlylink {\n\tcursor:default;\n}\n\n.tc-chooser-item .tc-tiddlylink {\n\tdisplay: block;\n\ttext-decoration: none;\n\tbackground-color: transparent;\n}\n\n.tc-chooser-item:hover .tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-chosen .tc-tiddlylink,\n.tc-drop-down .tc-chooser-item .tc-tiddlylink:hover {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-chosen > .tc-tiddlylink:before {\n\tmargin-left: -10px;\n\tposition: relative;\n\tcontent: \"» \";\n}\n\n.tc-chooser-item svg,\n.tc-chooser-item img{\n\twidth: 1em;\n\theight: 1em;\n\tvertical-align: middle;\n}\n\n.tc-language-chooser .tc-image-button img {\n\twidth: 2em;\n\tvertical-align: -0.15em;\n}\n\n/*\n** Palette swatches\n*/\n\n.tc-swatches-horiz {\n}\n\n.tc-swatches-horiz .tc-swatch {\n\tdisplay: inline-block;\n}\n\n.tc-swatch {\n\twidth: 2em;\n\theight: 2em;\n\tmargin: 0.4em;\n\tborder: 1px solid #888;\n}\n\ninput.tc-palette-manager-colour-input {\n\twidth: 100%;\n\tpadding: 0;\n}\n\n/*\n** Table of contents\n*/\n\n.tc-sidebar-lists .tc-table-of-contents {\n\twhite-space: nowrap;\n}\n\n.tc-table-of-contents button {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents svg {\n\twidth: 0.7em;\n\theight: 0.7em;\n\tvertical-align: middle;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents ol {\n\tlist-style-type: none;\n\tpadding-left: 0;\n}\n\n.tc-table-of-contents ol ol {\n\tpadding-left: 1em;\n}\n\n.tc-table-of-contents li {\n\tfont-size: 1.0em;\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li a {\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li li {\n\tfont-size: 0.95em;\n\tfont-weight: normal;\n\tline-height: 1.4;\n}\n\n.tc-table-of-contents li li a {\n\tfont-weight: normal;\n}\n\n.tc-table-of-contents li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n\tline-height: 1.5;\n}\n\n.tc-table-of-contents li li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n}\n\n.tc-tabbed-table-of-contents {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents {\n\tz-index: 100;\n\tdisplay: inline-block;\n\tpadding-left: 1em;\n\tmax-width: 50%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n\tbackground: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a,\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tdisplay: block;\n\tpadding: 0.12em 1em 0.12em 0.25em;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a {\n\tborder-top: 1px solid <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-background>>;\n\tborder-bottom: 1px solid <<colour tab-background>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a:hover {\n\ttext-decoration: none;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour background>>;\n\tmargin-right: -1px;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a:hover {\n\ttext-decoration: none;\n}\n\n.tc-tabbed-table-of-contents .tc-tabbed-table-of-contents-content {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-left: 1.5em;\n\tpadding-right: 1.5em;\n\tborder: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 50%;\n\tflex: 1 0 50%;\n}\n\n/*\n** Dirty indicator\n*/\n\nbody.tc-dirty span.tc-dirty-indicator, body.tc-dirty span.tc-dirty-indicator svg {\n\tfill: <<colour dirty-indicator>>;\n\tcolor: <<colour dirty-indicator>>;\n}\n\n/*\n** File inputs\n*/\n\n.tc-file-input-wrapper {\n\tposition: relative;\n\toverflow: hidden;\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\n\n.tc-file-input-wrapper input[type=file] {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tfont-size: 999px;\n\tmax-width: 100%;\n\tmax-height: 100%;\n\tfilter: alpha(opacity=0);\n\topacity: 0;\n\toutline: none;\n\tbackground: white;\n\tcursor: pointer;\n\tdisplay: inline-block;\n}\n\n::-webkit-file-upload-button {\n\tcursor:pointer;\n}\n\n/*\n** Thumbnail macros\n*/\n\n.tc-thumbnail-wrapper {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin: 6px;\n\tvertical-align: top;\n}\n\n.tc-thumbnail-right-wrapper {\n\tfloat:right;\n\tmargin: 0.5em 0 0.5em 0.5em;\n}\n\n.tc-thumbnail-image {\n\ttext-align: center;\n\toverflow: hidden;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-image svg,\n.tc-thumbnail-image img {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n\tmin-width: 100%;\n\tmin-height: 100%;\n\tmax-width: 100%;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image img {\n\tfilter: alpha(opacity=0.8);\n\topacity: 0.8;\n}\n\n.tc-thumbnail-background {\n\tposition: absolute;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-icon svg,\n.tc-thumbnail-icon img {\n\twidth: 3em;\n\theight: 3em;\n\t<<filter \"drop-shadow(2px 2px 4px rgba(0,0,0,0.3))\">>\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon img {\n\tfill: #fff;\n\t<<filter \"drop-shadow(3px 3px 4px rgba(0,0,0,0.6))\">>\n}\n\n.tc-thumbnail-icon {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tdisplay: -webkit-flex;\n\t-webkit-align-items: center;\n\t-webkit-justify-content: center;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.tc-thumbnail-caption {\n\tposition: absolute;\n\tbackground-color: #777;\n\tcolor: #fff;\n\ttext-align: center;\n\tbottom: 0;\n\twidth: 100%;\n\tfilter: alpha(opacity=0.9);\n\topacity: 0.9;\n\tline-height: 1.4;\n\tborder-bottom-left-radius: 3px;\n\tborder-bottom-right-radius: 3px;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-caption {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n}\n\n/*\n** Diffs\n*/\n\n.tc-diff-equal {\n\tbackground-color: <<colour diff-equal-background>>;\n\tcolor: <<colour diff-equal-foreground>>;\n}\n\n.tc-diff-insert {\n\tbackground-color: <<colour diff-insert-background>>;\n\tcolor: <<colour diff-insert-foreground>>;\n}\n\n.tc-diff-delete {\n\tbackground-color: <<colour diff-delete-background>>;\n\tcolor: <<colour diff-delete-foreground>>;\n}\n\n.tc-diff-invisible {\n\tbackground-color: <<colour diff-invisible-background>>;\n\tcolor: <<colour diff-invisible-foreground>>;\n}\n\n.tc-diff-tiddlers th {\n\ttext-align: right;\n\tbackground: <<colour background>>;\n\tfont-weight: normal;\n\tfont-style: italic;\n}\n\n.tc-diff-tiddlers pre {\n    margin: 0;\n    padding: 0;\n    border: none;\n    background: none;\n}\n\n/*\n** Errors\n*/\n\n.tc-error {\n\tbackground: #f00;\n\tcolor: #fff;\n}\n\n/*\n** Tree macro\n*/\n\n.tc-tree div {\n    \tpadding-left: 14px;\n}\n\n.tc-tree ol {\n    \tlist-style-type: none;\n    \tpadding-left: 0;\n    \tmargin-top: 0;\n}\n\n.tc-tree ol ol {\n    \tpadding-left: 1em;    \n}\n\n.tc-tree button { \n    \tcolor: #acacac;\n}\n\n.tc-tree svg {\n     \tfill: #acacac;\n}\n\n.tc-tree span svg {\n    \twidth: 1em;\n    \theight: 1em;\n    \tvertical-align: baseline;\n}\n\n.tc-tree li span {\n    \tcolor: lightgray;\n}\n\nselect {\n        color: <<colour select-tag-foreground>>;\n        background: <<colour select-tag-background>>;\n}\n\n/*\n** Utility classes for SVG icons\n*/\n\n.tc-fill-background {\n\tfill: <<colour background>>;\n}\n\n/*\n** Flexbox utility classes\n*/\n\n.tc-flex {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-flex-column {\n\tflex-direction: column;\n}\n\n.tc-flex-row {\n\tflex-direction: row;\n}\n\n.tc-flex-grow-1 {\n\tflex-grow: 1;\n}\n\n.tc-flex-grow-2 {\n\tflex-grow: 2;\n}\n\n/*\n** Other utility classes\n*/\n\n.tc-small-gap {\n\tmargin-left: .5em;\n\tmargin-right: .5em;\n}\n\n.tc-small-gap-left {\n\tmargin-left: .5em;\n}\n\n.tc-small-gap-right {\n\tmargin-right: .5em;\n}\n\n.tc-big-gap {\n\tmargin-left: 1em;\n\tmargin-right: 1em;\n}\n\n.tc-big-gap-left {\n\tmargin-left: 1em;\n}\n\n.tc-big-gap-right {\n\tmargin-right: 1em;\n}\n\n.tc-word-break {\n\tword-break: break-all;\n}\n"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize",
            "text": "15px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/bodylineheight": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/bodylineheight",
            "text": "22px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/fontsize": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/fontsize",
            "text": "14px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/lineheight": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/lineheight",
            "text": "20px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/storyleft": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/storyleft",
            "text": "0px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/storytop": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/storytop",
            "text": "0px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/storyright": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/storyright",
            "text": "770px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/storywidth": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/storywidth",
            "text": "770px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth",
            "text": "686px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint",
            "text": "960px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth",
            "text": "350px"
        },
        "$:/themes/tiddlywiki/vanilla/options/stickytitles": {
            "title": "$:/themes/tiddlywiki/vanilla/options/stickytitles",
            "text": "no"
        },
        "$:/themes/tiddlywiki/vanilla/options/sidebarlayout": {
            "title": "$:/themes/tiddlywiki/vanilla/options/sidebarlayout",
            "text": "fixed-fluid"
        },
        "$:/themes/tiddlywiki/vanilla/options/codewrapping": {
            "title": "$:/themes/tiddlywiki/vanilla/options/codewrapping",
            "text": "pre-wrap"
        },
        "$:/themes/tiddlywiki/vanilla/reset": {
            "title": "$:/themes/tiddlywiki/vanilla/reset",
            "type": "text/plain",
            "text": "/*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */\n\n/*\nDocument\n========\n*/\n\n/**\nUse a better box model (opinionated).\n*/\n\n*,\n*::before,\n*::after {\n  box-sizing: border-box;\n}\n\n/**\nUse a more readable tab size (opinionated).\n*/\n\n:root {\n  -moz-tab-size: 4;\n  tab-size: 4;\n}\n\n/**\n1. Correct the line height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n*/\n\nhtml {\n  line-height: 1.15; /* 1 */\n  -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/*\nSections\n========\n*/\n\n/**\nRemove the margin in all browsers.\n*/\n\nbody {\n  margin: 0;\n}\n\n/**\nImprove consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)\n*/\n\nbody {\n  font-family:\n    system-ui,\n    -apple-system, /* Firefox supports this but not yet `system-ui` */\n    'Segoe UI',\n    Roboto,\n    Helvetica,\n    Arial,\n    sans-serif,\n    'Apple Color Emoji',\n    'Segoe UI Emoji';\n}\n\n/*\nGrouping content\n================\n*/\n\n/**\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n*/\n\nhr {\n  height: 0; /* 1 */\n  color: inherit; /* 2 */\n}\n\n/*\nText-level semantics\n====================\n*/\n\n/**\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr[title] {\n  text-decoration: underline dotted;\n}\n\n/**\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n  font-weight: bolder;\n}\n\n/**\n1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)\n2. Correct the odd 'em' font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n  font-family:\n    ui-monospace,\n    SFMono-Regular,\n    Consolas,\n    'Liberation Mono',\n    Menlo,\n    monospace; /* 1 */\n  font-size: 1em; /* 2 */\n}\n\n/**\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n  font-size: 80%;\n}\n\n/**\nPrevent 'sub' and 'sup' elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline;\n}\n\nsub {\n  bottom: -0.25em;\n}\n\nsup {\n  top: -0.5em;\n}\n\n/*\nTabular data\n============\n*/\n\n/**\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n*/\n\ntable {\n  text-indent: 0; /* 1 */\n  border-color: inherit; /* 2 */\n}\n\n/*\nForms\n=====\n*/\n\n/**\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit; /* 1 */\n  font-size: 100%; /* 1 */\n  line-height: 1.15; /* 1 */\n  margin: 0; /* 2 */\n}\n\n/**\nRemove the inheritance of text transform in Edge and Firefox.\n1. Remove the inheritance of text transform in Firefox.\n*/\n\nbutton,\nselect { /* 1 */\n  text-transform: none;\n}\n\n/**\nCorrect the inability to style clickable types in iOS and Safari.\n*/\n\nbutton,\n[type='button'],\n[type='reset'],\n[type='submit'] {\n  -webkit-appearance: button;\n}\n\n/**\nRemove the inner border and padding in Firefox.\n*/\n\n::-moz-focus-inner {\n  border-style: none;\n  padding: 0;\n}\n\n/**\nRestore the focus styles unset by the previous rule.\n*/\n\n:-moz-focusring {\n  outline: 1px dotted ButtonText;\n}\n\n/**\nRemove the additional ':invalid' styles in Firefox.\nSee: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737\n*/\n\n:-moz-ui-invalid {\n  box-shadow: none;\n}\n\n/**\nRemove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.\n*/\n\nlegend {\n  padding: 0;\n}\n\n/**\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n  vertical-align: baseline;\n}\n\n/**\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n  height: auto;\n}\n\n/**\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n  -webkit-appearance: textfield; /* 1 */\n  outline-offset: -2px; /* 2 */\n}\n\n/**\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n/**\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to 'inherit' in Safari.\n*/\n\n::-webkit-file-upload-button {\n  -webkit-appearance: button; /* 1 */\n  font: inherit; /* 2 */\n}\n\n/*\nInteractive\n===========\n*/\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n  display: list-item;\n}\n"
        },
        "$:/themes/tiddlywiki/vanilla/settings/fontfamily": {
            "title": "$:/themes/tiddlywiki/vanilla/settings/fontfamily",
            "text": "system-ui, -apple-system, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\""
        },
        "$:/themes/tiddlywiki/vanilla/settings/codefontfamily": {
            "title": "$:/themes/tiddlywiki/vanilla/settings/codefontfamily",
            "text": "\"SFMono-Regular\",Consolas,\"Liberation Mono\",Menlo,Courier,monospace"
        },
        "$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment": {
            "title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment",
            "text": "fixed"
        },
        "$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize": {
            "title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize",
            "text": "auto"
        },
        "$:/themes/tiddlywiki/vanilla/sticky": {
            "title": "$:/themes/tiddlywiki/vanilla/sticky",
            "text": "<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\" type=\"match\" text=\"yes\">\n``\n.tc-tiddler-title {\n\tposition: -webkit-sticky;\n\tposition: -moz-sticky;\n\tposition: -o-sticky;\n\tposition: -ms-sticky;\n\tposition: sticky;\n\ttop: 0px;\n\tbackground: ``<<colour tiddler-background>>``;\n\tz-index: 500;\n}\n\n``\n<$list filter=\"[range[100]]\">\n`.tc-story-river .tc-tiddler-frame:nth-child(100n+`<$text text=<<currentTiddler>>/>`) {\nz-index: `<$text text={{{ [[200]subtract<currentTiddler>] }}}/>`;\n}\n`\n</$list>\n</$reveal>\n"
        }
    }
}
350px
870px
770px
786px
fixed-fluid
<p><img src="https://img.itch.zone/aW1nLzM1MDUwODMucG5n/original/Fauhol.png" loading="lazy"></p>
<h3>Don't go in there!</h3>
<p>Low level characters are pretty fragile, and gray oozes punch above their weight class. But sometimes, a party sees the glint of gold at the back of the cave and wades in.<br></p>
<h2>Print &amp; play 5th edition micro-module with almost no prep at all!</h2>
<p><strong><em>Experienced DM</em></strong>? Great for a one-shot evening when some of your players couldn't make it, or to help make a smooth transition between your big set piece adventures!</p>
<p><strong><em>New DM</em></strong>? This micro-module gives you support in running a fight with some oozes without making you run off to the reference books, a little help making up NPC names, and some ideas for future encounters in the area, if that's useful to you. Hey, I'm just trying to help.</p>
<p><em><strong>Any DM!</strong></em> If you've got some 2nd level characters in the hills and need a place to go next, this download will take care of you! <em>1-6 Oozes in the Dark</em> is a <strong>full-featured micro-module</strong> for a threatening little cave - 8 zine-sized pages of setup, NPCs, story hooks, maps, loot, and an easy combat tracker.</p>
<h2>This&nbsp;little booklet brings the game to the table&nbsp;with everything a big module has, and more!</h2>
<ul><li>Setup&nbsp;<strong>hooks</strong>&nbsp;to bring the characters in.</li><li>Some local&nbsp;<strong>NPCs</strong>&nbsp;(and a list of names to choose from if you hate making up names on the spot)</li><li><strong>Gray Ooze</strong> stat block so you don't have to look up a thing!</li><li>a print-n-play&nbsp;<strong>battle map</strong>&nbsp;you can just have the fight right on.</li><li><strong>Initiative tracker</strong>&nbsp;and HP checkboxes for the oozes so you don't need separate scratch paper</li><li>Ooze<strong> tactics</strong> are not subtle, ambush and eat! (Rescue NPC included if your characters are too fragile for gray ooze.)</li><li>What happens after the encounter?&nbsp;<strong>Loot, experience, 1d6 random rewards</strong>!</li><li>An <strong>area map </strong>and open-ended <strong>regional lore</strong>!</li></ul>
<h2>Designed for Print</h2>
<p>The PDF makes an 8-page mini-zine. Two sheets of paper - print both sides, fold, optional staple, and you are in the game!&nbsp;<em>Keep this in your toolbox and bring it out any time you need a fight in a cave!</em></p>
<h3>Art Asset Shoutout</h3>
<p><em>Map tiles for the full color micro-module designed by <a href="http://www.stevencolling.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Steven Colling</a> and available <a href="https://stevencolling.itch.io/isle-of-lore-2-hex-tiles-regular" target="_blank">here on Itch.io</a>.</em></p>
<h3>Fifth Edition Compatible</h3>
<p>This game supplement is published under the terms of the Wizards of the Coast Open Game License version 1.0a.</p>
<h3>Supported on Patreon</h3>
<p>If you'd like to have adventures like this on the regular, check out my Patreon page (<a href="https://patreon.com/deusexminima" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Patreon.com/DeusExMinima</a>) and thank you for your support!</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjUyODg5LzM1MDUyNjkucG5n/original/gZWTDT.png]]
<p>[NOTE!]&nbsp; If you are thinking of purchasing these assets, please wait a few weeks, as I am planning on adding them to a bundle to help victims from Ukraine,, and would much rather you purchase them via the bundle. I will update&nbsp; once I know more &lt;3<br></p>
<p><br></p>
<p>An 8*8px&nbsp; 1-bit tileset (Pulp compliant)&nbsp;</p>
<p>**This is a base environment pack to help get you started with your own project. It is very likely you will have to make custom tiles, or edit existing tiles to fit your exact needs. However, this tileset should help you flesh out the majority of your game, and save you time, so you can concentrate on the rest of your game**</p>
<ul><li>[UPDATE ] Now with a colour-coded guide! (do not use this in the pulp editor!)</li><li>Over 1800 unique tiles&nbsp;
</li><li>1-bit (black and white)</li><li>indoor and outdoor tiles</li><li>floor tiles</li><li>wall tiles</li><li>roof tiles</li><li>decoration objects</li><li>Confirmed to work with Playdate's Pulp editor (instructions on how to use this tileset in Pulp included in this downloadable file) for more info on Pulp, see&nbsp;<a href="https://play.date/dev/" rel="nofollow noopener" referrerpolicy="origin">https://play.date/dev/</a></li></ul>
<p>*please note, due to the extremely optimised nature of the tiles, I will not be sharing the full tile set as a sample. Sample in header and cover image include a screen shot of tiles working in Playdate's Pulp editor, and screens of parts of the tileset in ProMotion NG.<br></p>
<p>License:&nbsp;
</p>
<ul><li>Can be used and edited for commercial and academic game development purposes.
</li><li>Can be used for table top game purposes.
</li><li>It is recommended that If the assets are used&nbsp;for commercial use, an additional donation is made at&nbsp;<a href="https://ko-fi.com/gamedevmum" rel="nofollow noopener" referrerpolicy="origin">https://ko-fi.com/gamedevmum</a>
</li><li>Not to be sold-on as assets or in a bundle in edited or original form.
</li><li>It is&nbsp;<strong>strictly forbidden</strong>&nbsp;to use&nbsp;<strong>any&nbsp;</strong>of the contents of this tile set in&nbsp;<strong>any</strong>&nbsp;relation to&nbsp; block-chain related technology, including but not limited to; NFTs, Crypto, or bitcoin.&nbsp;
</li></ul>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM3MTU3Ny83OTk1MTcxLmdpZg==/original/ACBr2t.gif]]
<h1>10 Classic Pixel Art Village NPCs:</h1>
<h3><a href="http://cyangmou.itch.io/">Back to my Shop-page</a></h3>
<p>This pack contains 10 highly detailed, top quality human fantasy sprites.<br></p>
<p>They are intented to be used in:          </p>
<ul><li>Common&nbsp;rpg battle system scenes (e.g. early Final Fantasy / Dragon Quest  like battles, Lufia, Pokemon, Shadows of Adam) 
</li><li>Classic 3d dungeoncrawlers (e.g. Lands of Lore, Eye of The Beholder)  
</li><li>2D topdown dungeoncrawlers (e.g. original Rogue and similar games, Stoneshard etc) 
</li></ul>
<p>Every sprite has a native size of 64×64 pixels, which makes them perfect to use for current pixel art game resolutions. <br></p>
<p> The borderless style with strong colors also ensures that the   sprites will set themselves clearly apart on common game background art.         </p>
<ul><li>every sprite is delivered with a cast shadow which also can be placed indepently for flying/floating sprites 
</li><li>every sprite has 4 different skin colors.</li><li>no animations
</li></ul>
<p><strong>Sprites:</strong>         </p>
<ul><li>Shepherd 
</li><li><span></span>Villager 
</li><li>Mother &amp; Child</li><li>Boy</li><li>Girl</li><li>Blacksmith</li><li>Monk </li><li>Tavern Keeper</li><li>Apothecary</li><li>Old Woman</li></ul>
<p><strong>Does this set fit together with any other assetpacks?</strong>&nbsp;         </p>
<p>Yes, this assetpack fits together with many other assets I am offfering:         </p>
<p>It fits together with the <a href="https://cyangmou.itch.io/pixel-rpg-monster">50 16-Bit Designer Monsters</a> and the <a href="https://cyangmou.itch.io/25-classic-pixel-art-fantasy-characters-16bit">25 Classic Fantasy Characters</a> with all packs you have enough monsters and humans - for a complete game.
    <br><strong class=""> </strong>         </p>
<p> <strong class=""></strong>         </p>
<p><strong>Will you keep this assetpack updated?</strong>         </p>
<p>There are chances that I will extend this set later or add other   assetpacks to my store which will fit together with this pack. Every   asset I sell supports my itch shop and the money from sales gets   invested into the creation of new assets.         </p>
<p><strong>Quick Licence Overview: </strong>         </p>
<p>-You CAN edit and repurpose the assets.         </p>
<p>-You CAN use the assets in commercial and free projects.         </p>
<p>-You CAN'T redistribute / resell the assets.         </p>
<p>-You CAN'T use the assets in any printed media or physical product.       <strong class=""></strong><strong class=""> </strong>         </p>
<p><strong class="">Important: By buying the Asset you also agree to the following Licence Agreement which outlines the exact Term's of Use: <a href="https://docs.google.com/document/d/1tNBRxfKhTqwgsrTTRD-nMbe6zew1c-u7yMaOj6vOKrI/edit?usp=sharing" class="" rel="nofollow noopener" referrerpolicy="origin">Cyangmou's Itch.io Licence Agreement</a> </strong>         </p>
<p><strong class="">You MUSTN'T redistribute the assets as your own, or use them in any printed media, or as design basis for any physical product. </strong>         </p>
<p><strong>For more information follow me: </strong>         </p>
<p><strong>on Twitter: <u><a href="https://twitter.com/Cyangmou" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/Cyangmou</a> </u> </strong>         </p>
<p><strong>on Deviantart: <a href="https://www.deviantart.com/cyangmou" rel="nofollow noopener" referrerpolicy="origin">https://www.deviantart.com/cyangmou</a></strong> 
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAxNzg2MC81Nzk4ODAwLnBuZw==/original/4rkfgH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAxNzg2MC81Nzk4Nzk5LnBuZw==/original/FIf8D8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAxNzg2MC81Nzk4ODAxLnBuZw==/original/EfPgxo.png]]
<p><em>10 Flights of Ballooning</em> is a cornucopia of games based on the Balloon Trip mode in the original <em>Balloon Fight</em>.</p>
<p>Relish in discovering the different flavors of games.</p>
<p>What ingredients can be added, subtracted, substituted, etc. to the original recipe?  What are the resulting dishes?</p>
<p>I don't know about you, but I'm hungry.</p>
<p>Enjoy!</p>
<hr>
<p>Serious stuff:</p>
<p>This was made in a graduate class based on Pippin Barr's 2016 IndieCade East talk, <sup><a href="https://www.pippinbarr.com/2016/05/04/36-reasons-to-make-the-same-game-36-times/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">"36 Reasons to Make the Same Game 36 Times."</a></sup></p>
<p><em>10 Flights</em> works on PC and Mac OSX.  You can use a keyboard, a DualShock 4 controller, or whatever Xbox controller you have (tested with Xbox One and Xbox 360).  There's a readme in there with more info, but I strongly suggest you just boot up the game and play and have a good time.</p>
<p>The credits are in the secret game.  Try to unlock them and see all the people I thanked!</p>
<hr>
<p>Update 5-1-2017</p>
<p>I fixed some typos in the credits and also made sure the Mac build is correct.  Balloon Light should play correctly now, and a couple of other minor issues that nobody will ever notice were also fixed.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/x04yGz2_gPg" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM1Njc3LzYyMjc0Ni5naWY=/original/IDelp%2B.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM1Njc3LzYyMjg1MC5qcGc=/original/3x%2FhSo.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM1Njc3LzYyMjg1MS5qcGc=/original/sjUbQF.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM1Njc3LzYyMjg1Mi5qcGc=/original/7RINjL.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM1Njc3LzYyMjg1My5qcGc=/original/k5qzMH.jpg]]
<figure><a href="https://itch.io/b/619/10mg-collection" target="_blank"><img src="https://img.itch.zone/aW1nLzQzNzk0MDEucG5n/original/QaonYJ.png" alt="10mg Bundle" title="10mg Bundle" loading="lazy"></a><br><strong>10mg</strong> is a collection of 10 minute long games, a tiny dose of something special.<br></figure>
<p><strong>SEALED ESTATE</strong>&nbsp;is psychological horror game, in which you are locked inside by a creature ready to hunt you down, whilst you figure out how to escape from the estate you have been locked inside. who lived here? who are the voices haunting your every step?</p>
<p>What you will find in your exploration:</p>
<ul><li>Lights are not working in the home.</li><li>An enigmatic creature hunting you down.</li><li>other creatures laying in wait, staring at you.</li></ul>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/H0CKxdwURX4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzczODgzLzQzNDc4MTYucG5n/original/Iij%2BZl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzczODgzLzQzNDc4MTcucG5n/original/gthwUy.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzczODgzLzQzNDc4MTgucG5n/original/2PSYZT.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzczODgzLzQzNDc4MTkucG5n/original/nw6jIz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzczODgzLzQzNDc4MjAucG5n/original/CwbCqO.png]]
<p><strong><a href="https://itch.io/b/619/10mg-collection"><img src="https://img.itch.zone/aW1nLzQ0MTI4NzAucG5n/original/guLOUA.png" alt="10mg" title="10mg" loading="lazy"></a><br></strong></p>
<p><strong>10mg </strong>is a collection of 10 minute long games.
</p>
<p><strong>SNAAAK </strong>is a short atmospheric Snakevania.</p>
<p><br>Traverse a forgotten laboratory while encarnating a formless critter.<br>Experience a study on snake’s mechanics that explores different takes and turns on the core of its design as you roam through an extensive metroidvania setting.</p>
<ul><li>Smooth Gameplay</li><li>An ethereal underground lab filled with mysterious hazards</li><li>Evocative ambience and sound design</li><li>Non-linear exploration</li><li>Full Controller Support</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/-Gq7QZ4uK1M" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzgyOTYxLzQ0MTI4NTMuZ2lm/original/gUKLbU.gif]]
<p>A game of 10S.<br></p>
<p><strong>1.3 RELEASED:</strong><br>* TUTORIAL stage added<br><br><strong>BASIC FEATURES:</strong><br>* Gamepad support (xinput only)<br>* Local 2P VS mode<br><br>Report any game-breaking bugs or crashes to&nbsp;<a href="http://www.twitter.com/owch_hurts" rel="nofollow noopener" referrerpolicy="origin">@owch_hurts</a>&nbsp;on twitter.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/xzF6QDnv7OI" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjg5MDg2LzQxNDgyMTAuZ2lm/original/8U9Gjs.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjg5MDg2LzQxNDgyMTMuZ2lm/original/2NRYln.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjg5MDg2LzQxNDgxOTguZ2lm/original/BN6oSn.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjg5MDg2LzQxNDgxOTkuZ2lm/original/J1Kd9x.gif]]
<p>A small tileset, with a wide range of settings you can use.</p>
<p><strong>Includes
</strong></p>
<p><em><img src="https://img.itch.zone/aW1nLzQzMjYzMDIuZ2lm/original/Fg0Muz.gif" loading="lazy">
</em></p>
<ul><li><strong>71 </strong>Sprites
</li><li><strong>5 </strong>Animations</li><li><strong>Tons </strong>of foliage variants</li></ul>
<p><em></em><em><img src="https://img.itch.zone/aW1nLzQzMjYzMjYuZ2lm/original/tqn%2FXw.gif" loading="lazy"></em></p>
<p><strong>Specs:
</strong></p>
<p>Each sprite&nbsp;is&nbsp;16x16,&nbsp;and&nbsp;uses&nbsp;<a href="https://opengameart.org/content/complete-palette-perfect-for-asesprite" target="_blank" rel="nofollow noopener" referrerpolicy="origin">this palette</a>. Included is a spritesheet, an example.png, and preset tileset(.tsx) and map(.tmx) files for <a href="https://thorbjorn.itch.io/tiled">Tiled</a>. Importing into Unity is as simple as a drag and drop. Every sprite receives light from the top right, so using sprites that don't follow that pattern will look messy.
</p>
<p><strong>Themes:</strong></p>
<ul><li>Grassy Plain</li><li>Dungeon</li><li>Graveyard</li></ul>
<p><img src="https://img.itch.zone/aW1nLzQzMjYzMjkuZ2lm/original/XGzWlX.gif" loading="lazy"></p>
<p><strong>Intended Use:
</strong></p>
<p>This pack will work best with multiple layers, and some sprites could even be broken into objects that move around. Water should have particles at its base to look nice. Most animations are intended to run at 200ms, but the dungeon eye animation looks best at 1000ms or higher. (I have it at 10,000ms in Tiled).
</p>
<p><strong>Support me!
</strong></p>
<p>My assets are made in my free time, and I can make a whole lot more with your support. Also, becoming a patron includes all assets I've made, for free with your patronage, and is uploaded on my patreon<strong> BEFORE</strong> public release. <br></p>
<div><iframe src="https://www.patreon.com/platform/iframe?widget=become-patron-button&amp;redirectURI=https%3A%2F%2Fitch.io%2Fgame%2Fedit%2F732354&amp;creatorID=3848167" scrolling="no" style="width: 176px; height: 34px" frameborder="0"><br></iframe></div>
<p></p>
<p><strong>Licensing</strong></p>
<p><a href="http://creativecommons.org/licenses/by/4.0/" rel="nofollow noopener" referrerpolicy="origin"><em></em></a><em>
This work is licensed under a <a href="http://creativecommons.org/licenses/by/4.0/" rel="nofollow noopener" referrerpolicy="origin">Creative Commons Attribution 4.0 International License</a>.</em><em><br></em></p>
<p><em><br></em></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzMyMzU0LzQzMjYzMzYucG5n/original/sWWUY%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzMyMzU0LzQzMjYzMzcucG5n/original/W%2BVhM7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzMyMzU0LzQzMjYzNDEucG5n/original/hEue9s.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzMyMzU0LzQzMjYzNDIucG5n/original/3AlETC.png]]
<p><strong>THE DREAM REALM WELCOMES YOU: </strong>This land has always been here, visited by some, forgotten by many. Something changed. An increasing number of people have been waking with fantastical ideas and feelings.&nbsp;Now, dreams are becoming more solid: books, paintings, scores…&nbsp;</p>
<p>The barrier is thinner. Some are trapped here, some search for what they can’t reach elsewhere, some just roam, exploring and helping others. <strong>What meaning is hidden in your dreams?</strong></p>
<ul><li>Inspired in many works of 19th century (books, paintings, symphonies...)</li><li>Nonsensical places and characters</li><li>Emotions are currency, tools, flavor, powers...</li></ul>
<p><strong>DREAMS&nbsp;</strong>is a 24XX microgame. See more at&nbsp;<a href="https://jasontocci.itch.io/2400" target="_blank">jasontocci.itch.io/2400</a>&nbsp;or make your own&nbsp;<a href="http://jasontocci.itch.io/24xx" target="_blank">using the SRD</a>.&nbsp;
</p>
<p>Cover art by&nbsp;<a href="http://beeple-crap.com/" target="_blank" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">BEEPLE</a>&nbsp;(Mike Winkelmann).<br></p>
<p><em><strong>DREAMS&nbsp;</strong>is the<strong>&nbsp;6th</strong><strong>&nbsp;title&nbsp;</strong>of the&nbsp;<strong>18XX series</strong>. Every event in that series occur roughly at the same time period. In other words,&nbsp;<strong>they can be combined in a single scenario</strong>&nbsp;with characters from different games!</em></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM0NjI2NS83ODM2OTM4LnBuZw==/original/xkwLQK.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM0NjI2NS83ODM2OTM3LnBuZw==/original/p55Vs9.png]]
<p>-: SPACE SHOOTERS NEVER DIE :-<br>1993 is a testament to that, honoring classics like Life Force,<br> R-Type and Xenon II. We're keeping the genre alive.<br>⠀⠀⠀⠀⠀⠀⠀⠀<em><img src="https://cdn.akamai.steamstatic.com/steam/apps/373480/extras/skull.gif?t=1644241525" loading="lazy"><br><br>1993 S.M was made in 1993. It is not made to look retro. <br>It is not polished for today's tech - this is the genuine thing!&nbsp;<br></em>It's 1993 - Today! (Further updated in 2020!)</p>
<p><strong>IN SHORT:</strong></p>
<ul><li>9 Ships to choose from<br>
</li><li>25 Different weapons with 3 power levels<br>
</li><li>14 Levels<br>
</li><li>10 Different Bosses
</li><li>co-up</li></ul>
<p>⠀⠀⠀⠀⠀⠀⠀⠀<img src="https://cdn.akamai.steamstatic.com/steam/apps/373480/extras/forest.gif?t=1644241525" loading="lazy"><br><br>Started in the age of the Amiga 500, this game was <br>featured in Amiga format and Commodore User <br>- two of the largest gaming magazines of the time. <br>A series of unfortunate events prevented this space<br> shooter to get finished. We plan to do that now!</p>
<p><br>⠀<img src="https://cdn.akamai.steamstatic.com/steam/apps/373480/extras/storyintro_GIF.gif?t=1644241525" loading="lazy"></p>
<p class="text-center">-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;</p>
<p class="text-center"><em><strong>- : GAME STORY : -</strong><br>"Towards the end of the interstellar wars, chaos spread <br>and one band of elite mercenaries acted more like pirates <br>and looters than actual soldiers. The leader of this group <br>was the notorious and infamous Colonel Nestor.<br><br>Without a doubt the biggest prize of their looting campaigns <br>was the Spacemachine: a device designed to terraform barren <br>planets and making them habitable. With this device, and the rest <br>of their treasure, Nestor and his men started to build an army <br>that now poses a great threat to the known star systems.<br><br>Mission:&nbsp;Bring back the Space Machine."</em><br><br></p>
<p>-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;.&nbsp;-&nbsp;. -</p>
<p><strong>What reviewers say:</strong></p>
<ul><li>Holy moly! I'm in! I'm sold! This is a freaking phenomenal game.&nbsp;<em>8-Bit Eric</em>
*I am so dead chuffed with this game.&nbsp;<em>Jamie from the Games Shed</em>
*1993 Shenandoah has that same level of addictive quality in design and execution.&nbsp;<em>Elliot Ossange - Bonusstage</em>
*I absolutely love this game! It is soo charming!&nbsp;<em>Jamie from the Games Shed</em>
*The enemy is varied and vast, coming in many flavours and types. There are basically everything and anything you can think of.&nbsp;<em>Elliot Ossange - Bonusstage</em>
*This is an absolute gem! I really really recommend this!&nbsp;<em>Jamie from the Games Shed</em>
*I can’t recommend 1993 Shenandoah enough. The aesthetics of the design, the levels...&nbsp;<em>Elliot Ossange - Bonusstage</em>
*I'm definitely digging the hell out of this game.&nbsp;<em>8-Bit Eric</em>
</li></ul>
<ul><li>You're in charge! Explore and secure the different worlds in the order that fits your taste and urge.<br><br>
</li><li>The kick ass weapon system lets you unlock weapons for use in later play sessions. We feature both classic powerful weapons plus some fresh smart weapons.<br><br>
</li><li>Of almost 100 deadly enemy types, we have crafted unique evil behaviours for most of them.<br><br>
</li><li>As an extra game mechanic we have introduced a new health and shield system for more interesting game play.<br><br>
</li><li>Up to four player co-op mode.
</li></ul>
<p><br><br><strong>Featured on:</strong><br><a rel="nofollow noopener" referrerpolicy="origin"><img src="https://cdn.akamai.steamstatic.com/steam/apps/373480/extras/polygon.png?t=1644241525" style="padding: 0px; margin: 0px; border-style: none" loading="lazy"></a>&nbsp;<a rel="nofollow noopener" referrerpolicy="origin"><img src="https://cdn.akamai.steamstatic.com/steam/apps/373480/extras/GR_logo.jpg?t=1644241525" style="padding: 0px; margin: 0px; border-style: none" loading="lazy"></a>&nbsp;<a rel="nofollow noopener" referrerpolicy="origin"><img src="https://cdn.akamai.steamstatic.com/steam/apps/373480/extras/koalition.png?t=1644241525" style="padding: 0px; margin: 0px; border-style: none" loading="lazy"></a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/9eDmTy3-RAo" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTM2OC84MzA3MjcwLmpwZw==/original/PKz%2BUB.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTM2OC84MzA3MjcxLmpwZw==/original/a8OCs3.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTM2OC84MzA3MjczLmpwZw==/original/2RbKZy.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTM2OC84MzA3MjcyLmpwZw==/original/iC5uFH.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTM2OC84MzA3Mjc0LmpwZw==/original/u6jMdj.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTM2OC84MzA3Mjc1LmpwZw==/original/di4Tsu.jpg]]
<p>&gt;&gt; [<a href="https://www.magentaskull.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">PLAY ONLINE @&nbsp;MAGENTASKULL.COM</a>]<br>trashy cyberpunk sim -- time/mood mgmt!<br>no ticking clock-- time acts when you do<br></p>
<p><strong>Experience daily life in bustling&nbsp;<br>PRODCITY#2901 in year 2901!</strong><br></p>
<p><strong>scavenge, work, sell drugs, freelance<br>and make ends meet any way you can&nbsp;<br>to find a way to survive.&nbsp;</strong><br><br></p>
<p><strong>Play a Fun Time-Management Simulation,<br>or just chill and&nbsp;explore the art in the city! </strong>This is a game you can eat a sandwich while you play, yes it's that good. we are breaking barriers<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDI4NDM0LzI3MzAxMTQucG5n/original/gRMr1w.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDI4NDM0LzI3MjY1NTkucG5n/original/lb6vXb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDI4NDM0LzM1ODI5NDUucG5n/original/rKQ9bA.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDI4NDM0LzM1ODI5MTcuZ2lm/original/oA6IAn.gif]]
<p><img src="https://img.itch.zone/aW1nLzE1NTMxNDAucG5n/original/bUihUl.png" loading="lazy"></p>
<p><em>2064: Read Only Memories</em> merges old-school adventure gaming with modern storytelling to explore some of the social challenges we will face in the near future. Explore the colorful future metropolis of Neo-San Francisco, meeting a huge cast of fascinating characters and solving a far-reaching mystery. Think carefully about your choices, because you never know how they will affect this dynamic, branching narrative further down the line.</p>
<p><img src="https://img.itch.zone/aW1nLzE1NTMxNDMucG5n/original/dI96tQ.png" loading="lazy"></p>
<p>The world is changing.</p>
<p>Genetic alteration of humans is now commonplace, with many choosing to radically alter their bodies to express their individuality. Virtual intelligences called ROMs (Relationship and Organizational Managers), created as simple digital assistants, are exerting greater control over people’s lives. Some are terrified by this rapid change, and they are willing to go to extreme lengths to prevent it.</p>
<p><img src="https://img.itch.zone/aW1nLzE1NTMxNDQucG5n/original/FuDopi.png" loading="lazy"></p>
<p>A lost ROM named Turing breaks into the apartment of a struggling journalist to ask for help. They claim to be the first sapient machine—not a simulation of life but a genuinely self-aware artificial being—and the technical genius who created them has gone missing. Can you unravel the shocking conspiracy that threatens to rock an entire society? Or will the darkness that lies behind the bright neon lights of Neo-SF consume you?</p>
<p><img src="https://img.itch.zone/aW1nLzE1NTMxNDUucG5n/original/Y%2FEgpw.png" loading="lazy"><br></p>
<ul><li><p><strong>Old-school, cutting-edge -</strong> Classic point-and-click adventuring inspired by the likes of <em>Gabriel Knight</em> and <em>Snatcher</em> is melded with modern branching storytelling that delves into identity, individuality, and what it means to be human.</p></li><li><p><strong>People of the future </strong>- Get to know a diverse cross-section of Neo-SF’s population, brought to life by some of the best voice talent working in games today, including <a href="https://en.wikipedia.org/wiki/Melissa_Hutchison" rel="nofollow noopener" referrerpolicy="origin">Melissa Hutchison</a> and <a href="https://en.wikipedia.org/wiki/Dave_Fennoy" rel="nofollow noopener" referrerpolicy="origin">Dave Fennoy</a> (<a href="https://telltale.com/series/the-walking-dead/" rel="nofollow noopener" referrerpolicy="origin"><em>The Walking Dead</em></a>), <a href="https://en.wikipedia.org/wiki/Erin_Yvette" rel="nofollow noopener" referrerpolicy="origin">Erin Yvette</a> (<a href="http://nightschoolstudio.com/oxenfree/" rel="nofollow noopener" referrerpolicy="origin"><em>Oxenfree</em></a>), Austin Creed (WWE’s <a href="http://www.wwe.com/superstars/xavier-woods" rel="nofollow noopener" referrerpolicy="origin">Xavier Woods</a>), and internet stars Jim Sterling (<a href="http://www.thejimquisition.com/" rel="nofollow noopener" referrerpolicy="origin">Jimquisition</a>) and SungWon Cho (<a href="https://www.youtube.com/channel/UC6MFZAOHXlKK1FI7V0XQVeA" rel="nofollow noopener" referrerpolicy="origin">ProZD</a>).</p></li><li><p><strong>High tech nostalgia</strong> - The city of Neo-San Francisco is rendered in beautiful pixel art, and your adventure is accompanied by a catchy low-fi electronic synth soundtrack.</p></li><li><p><strong>Solve the mystery</strong> - Enjoy over ten hours of adventure gaming goodness, featuring exploration, dynamic branching conversations, multiple endings, and many challenges to overcome.</p></li><li><p><strong>The definitive PC edition</strong> - Since its launch two years ago, the team has made many improvements and additions to an already amazing game, making this the ultimate version. Additions have included new characters and voice performers, additional facial animations, Japanese language support, and the “Endless Christmas” extended epilogue that allows you to hang out with your favorite Neo-SF locals.</p></li></ul>
<div><div><hr><p><u>More about the Sights &amp; Sounds of Neo-SF Deluxe Edition</u><br></p></div></div>
<p>
	<strong>Sights of Neo-SF (Artbook)</strong><br>
</p>
<p>
	The world of 2064 can be hard to navigate. The Sights of Neo-SF is the official art book by Read Only Memories director and lead artist John "JJSignal" James. Highly stylized and specific in its visuals, ROM's progression from early sketches to final form is fully outlined in this 50-page PDF. You will see early concepts fully realized, previous versions of your favorite characters and even some characters that didn't make the final cut. JJ lists Bubblegum Crisis, Akira, Megazone 23, and the Pluto manga as his biggest style inspirations. Come see where the ideas behind the game began and watch them evolve into the vibrant city of Neo-SF we know and love.
	<br>
</p>
<p>
	<strong>Sounds of Neo-SF (Soundtrack)</strong>
</p>
<p>
	Composed by 2 Mello, the Sounds Of Neo-SF is the FM-synthy, funky, and positively-charged soundtrack to MidBoss' cyberpunk adventure game Read Only Memories. Not content with a soundtrack that was merely fitting for its game, 2 Mello crafted these sounds to embody the dual nature of Neo-San Francisco, all its charm and its hidden dangers. But who said that our cyberpunk future has to be dark and dreary? You'll be humming these melodies to 2064 and beyond.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/worK_x-ffQk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTY3MjYvNTIwNzEzLnBuZw==/original/xEWCV%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY3MjYvNTIwNzE0LnBuZw==/original/UdgLVb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY3MjYvNTIwNzIyLnBuZw==/original/cq4VGF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY3MjYvNTIwNzIwLnBuZw==/original/M566DQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY3MjYvNTIwNzE3LnBuZw==/original/0nAaGo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY3MjYvNTIwNzIxLnBuZw==/original/43yg24.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY3MjYvNTIwNzE5LnBuZw==/original/ZqPMmG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY3MjYvNTIwNzI0LnBuZw==/original/NU%2BwbD.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY3MjYvNTIwNzIzLnBuZw==/original/sh8pO%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY3MjYvNTIwNzI1LnBuZw==/original/xDuUHl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY3MjYvNTIwNzE1LnBuZw==/original/M5rIpS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY3MjYvNTIwNzE2LnBuZw==/original/RV3yAp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY3MjYvNTIwNzE4LnBuZw==/original/0QdUe%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY3MjYvNTIwNzI2LnBuZw==/original/wjAPuM.png]]
<p>Originally published circa 2010, now available as pdf here! :D</p><p>(I'm more interested in getting these games in folks' hands than making a couple of bucks, so if you can't swing twelve bucks, drop me a line, and I'll totally hook you up.)</p><p>What is a “game poem”? Basically, it’s a little game that you can pick up and play
in fifteen minutes or so, give or take.There’s no preparation time, nothing to
get between you and playing immediately.They generally address some specific
mood or emotion, or focus on one particular notion, but not all of the games
here strictly adhere to that definition. First and foremost, a game poem is just
there to be taken in and experienced with a friend or group of friends for a
few moments, and then those moments are over – and hopefully, something
small and wonderful will happen in the process.&nbsp;</p><p>(I guess folks are calling these "lyric games" now? So, that's cool, it's awesome to see a billion of these out now!)</p>

[img width=500 [https://img.itch.zone/aW1nLzM2MTA2NjguanBn/original/voxnq8.jpg]]
<p>PLAY BREAKBEAT LIVE &gt; GET IN THE CIRCLE LOSER<br><br>2901//DRUM_DREAMvol2&nbsp; &nbsp;____ SHE DREAM ____<br><br>volume 1 : <a href="https://notsleeping.itch.io/proto20202/">https://notsleeping.itch.io/proto20202/</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/QbKxEbUY1Xg" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzQyMTA4LzQxNzY5MDQucG5n/original/FKIVGq.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQyMTA4LzQxNzIwNTcucG5n/original/qXRSKm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQyMTA4LzQxNzI2MTUucG5n/original/3RAe17.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQyMTA4LzQxNzY5MjQucG5n/original/wdHuHY.png]]
<p>I like making games. Sometimes i make them just for the sake of making them and to enjoy the process. Here are 6 things that are too small to be posted or sold on their own, but are still something I'm proud of and want to share with the world.</p>
<p>Includes versions for all major OS + sourcecode for godot projects<br></p>
<h3>Chat Stashers:</h3>
<p>RP as undercover agents transmitting secret messages in plain sight. Played in&nbsp;your groupchat of choice, preferably full of people who are not aware you &amp; your pals are playing. Includes a rulebook and a spreadsheet to keep track of active stashes and score. Inspired by the Stashers Bible, a russian essay of tips &amp; best practices on how to make deaddrops in an urban environment. <br></p>
<h3>Bubble Herder:</h3>
<p>This January i joined a 2 day hackathon. For that hackathon i made a bubble diagram maker where bubbles can push and pull on each other to organize themselves. It ended up getting first place. I quite like it myself as well, so it will likely be turned into a full scale project when i have enough free time to do that.<br></p>
<h3>Planet Maker:</h3>
<p>Procedural planet generator, looks pretty, sounds nice. You can make some dope wallpapers from it, or just sit and ponder the orb. Was an experiment in using bitwise XOR shader to make something that is neither intense nor ugly colored, grew a bit too big for my shader collection project.<br></p>
<h3>Ladybug Window:</h3>
<p>This autumn, on warm sunny days ladybugs would come and chill on my window at sunset. They were very calm and i enjoyed their presence. This vignette attempts to capture the vibe of those evenings for you and future me to enjoy.<br></p>
<h3>Games fast:</h3>
<p>I make a lot of small things from scratch all the time. This taught me some stuff. Wrote a condensed 3 page thing about how to make small things really fast. Idk if it's good advice, so don't be too mad if it doesn't work.</p>
<h3>Desktop Incense Burner:</h3>
<p> Love watching the incense smoke, it's got good vibes. I like things with good vibes, so i made a vignette that recreates that. Burns in real time, stick runs out after 10 ish minutes, relaunch application to reset it.</p>
<h3>The pricing:<br>
</h3>
<p>In the spirit of doing weird wacky things for their own sake, as with the rest of the pack, the pricing will also be wacky and utilize the <strong><em>Fibonacci sequence pricing</em></strong><strong>™</strong>&nbsp;(patent pending).<br></p>
<p>Alternatively you could just sub to any tier of my <a href="https://www.patreon.com/ash_k" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Patreon</a> and get this pack that way :P <br></p>
<p>Special thanks to <a href="https://brin-o.itch.io/" target="_blank">Brin </a>who made this page pretty<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMyNTI3Ny83NzIxNjM1LnBuZw==/original/7xmWyi.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMyNTI3Ny84MTIzMzkzLmdpZg==/original/2P7dWH.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMyNTI3Ny84MTIzNDIwLmdpZg==/original/OWBVWS.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMyNTI3Ny84MTIzNTAxLmdpZg==/original/aOQgqB.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMyNTI3Ny84MTIzMTAxLnBuZw==/original/1lr%2BDc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMyNTI3Ny84MTIzNDU4LmdpZg==/original/mWRoJa.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMyNTI3Ny84MTIzNjg0LmdpZg==/original/hvuEaL.gif]]
<h2 class="text-center">This asset pack will give you everything you need to make your very own 2D platformer</h2>
<h4 class="text-center"></h4>
<h4 class="text-center">Contents:</h4>
<ul><li>21 different tilesets including: Grass, Underground, Sand, Snow, Ice,&nbsp;Underwater, Forest, Cloud, Volcano and more!</li><li>A fully animated player character with animations for Running, Jumping, Falling, Crouching, Crawling, Climbing, Dying, Swimming, Shooting a gun, being frozen, and many other actions.</li><li>Over a dozen different enemies such as floor spikes, icicles, quicksand, fireballs, iceballs, and others.</li><li>Dozens of different blocks from question &amp; exclamation blocks to tiles for animated water, lava &amp; poison; to many different kinds of crates including as TNT, Nitro and Spring creates, and much more!</li><li>Many decorations to spruce up the background like grass, trees, bushes, flowers, cacti, mushrooms, clouds, pile or sand &amp; snow, and others.</li><li>A number of neat particles effects like explosions, sparkles, dust clouds and energy bullets.</li><li>Countless items and gimmicks like coins, buttons, conveyer belts, springs, pipes, keys, hearts, wind currents, etc.</li><li>A number of mockups showing how the assets could be used.</li><li>To top it all off, there's a <strong>free version&nbsp;</strong>containing 3 tilesets, a few player character animations, 4 enemies, 9 blocks, 5 decorations, 6 items/gimmicks and 3 mockups.<br>
</li></ul>
<h4 class="text-center"></h4>
<h4 class="text-center">File Type:</h4>
<p>All tilesets, enemies, blocks, decorations, effects, items, gimmicks and the player character come as&nbsp;PNG files. Mockups are the logo are GIF files.</p>
<p>Additionally, all assets&nbsp;come with&nbsp;their ASEPRITE source files.&nbsp;</p>
<p><em>The assets in this itch.io pack my be used in any game engine for as long as and as much as you would like. You can also adjust, modify, tweak or otherwise all of the assets to your liking. They can be used in commercial or non-commercial projects. All I ask is that you please do not resell the assets. Credit is not required but is appreciated.</em></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTEzMjEyNy82NTU5NDY1LmdpZg==/original/6Ck4sd.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEzMjEyNy82NTU5NDY2LmdpZg==/original/%2BzGQRB.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEzMjEyNy82NTU5NDY0LmdpZg==/original/GqueD%2F.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEzMjEyNy82NTU5NDYzLmdpZg==/original/x0EUeX.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEzMjEyNy82NTU5NDY3LmdpZg==/original/gqWIhG.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEzMjEyNy82NTYxNDc2LnBuZw==/original/NLxh1m.png]]
<p><br></p>
<h2>An 8bit tileset steeped in NES charm!</h2>
<p>This is topdown tileset suitable to create RPG overworlds or strategy games,&nbsp;inspired by the old NES classics. It mimics the aesthetics of the NES and keeps the amount of tiles to a minimum to both make it&nbsp;easy to use and give it that genuine 8-bit feel.&nbsp;</p>
<p>The tile resolution is 16x16px and it uses the NES palette.</p>
<p>This tileset pairs well with the following asset pack:&nbsp;<a href="https://itchabop.itch.io/8bit-inventory">https://itchabop.itch.io/8bit-inventory</a></p>
<h2>Contents:</h2>
<ul><li>Tileset as a spritesheet&nbsp;in PNG format</li><li>Animated water tiles&nbsp; available in GIF format as well as a separate spritesheet.</li><li>Sample image showing possible use of the tiles.</li><li>Animated sprites as separate spritesheets</li><li><strong>Static tiles:</strong>&nbsp;<ul><li>Dirt&nbsp;</li><li>Grass&nbsp;</li><li>Mountains&nbsp;</li><li>Forests&nbsp;</li><li>Water</li><li>Swamp</li><li>Roads</li></ul></li><li><strong>Sprites:</strong>&nbsp;<ul><li>Flower (animated)&nbsp;</li><li>Torch (animated)</li><li>Brazier (animated)</li><li>Cave-entrance</li><li>Large temple</li><li>Towns&nbsp;</li><li>Tower</li><li>Boulder</li><li>and more.&nbsp;</li></ul></li><li><strong>Characters</strong> (All comes with walking-in-place animations in three directions)<ul><li>Melee-type character / knight</li><li>Range-type character&nbsp;/ elf</li></ul></li></ul>
<p><br></p>
<p></p>
<p><br></p>
<h2>Licensing:</h2>
<p><strong>You may use this asset pack in both&nbsp;free and commercial projects. You can modify it after your own needs. You may not redistribute it,&nbsp; resell it or use them in any printed media or physical products. Credit is not necessary but much appreciated.</strong><br></p>
<p><br></p>
<p>Contact: anders.gullmarsvik@gmail.com</p>
<p><strong></strong></p>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTEwMjMzLzI4MzMzNzYucG5n/original/G5h4Qw.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEwMjMzLzI4MzMzOTAuZ2lm/original/4uyBmw.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEwMjMzLzM3MTU2NjcuZ2lm/original/Ds5q%2F9.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEwMjMzLzMzNjQwMzcuZ2lm/original/zFswuM.gif]]

<p>In this solo ttrpg game you play as a young Fae who has come of age and have finally been granted permission to explore the Human World on your own! You have been there a few times, but always with a guardian. This will be your first magical adventure on your own and you are excited to go adventuring!</p>
<p>What you will need:
</p>
<ul><li>1d4 and 1d6, or a rolling app (if you want a longer game, substitute d6 for a d8 or d10)
</li><li>A deck of playing cards (Jokers removed) OR the minor arcana of a tarot deck, Pages removed
</li><li>A way to record your adventure (ether a journal, a piece of paper, or electronic app
</li><li>30 minutes more or less depending on how descriptive you are
</li></ul>
<p>In many games, humans go adventuring into the fantastical. In others, fantastical beings go on wondrous adventures. The vision for this game is to reverse the usual adventure styles by playing to discover the magical in the mundane.
</p>
<p>This game was written for the <a href="https://itch.io/jam/fae-jam-2021">#FaeJam2021</a>
</p>
<p><br></p>
<p>Tarot Cards used in the image are from the “Tarot of Pagan Cats Mini Deck” by Lo Scarabeo
</p>
<p><br></p>
<p><u>Olivia Hill Rule</u>: Fascists, sexists, homophobes, transphobes, or other forms of bigots are not&nbsp;allowed to play or use this game in any way.&nbsp;</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE4ODA0NC82OTI4Mjg4LmpwZw==/original/Qe%2BVqT.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE4ODA0NC82OTI4Mjc1LnBuZw==/original/m3e%2FWX.png]]
<p><em>"In this final moment, our hopes, fears and uncertainties come together in action.
We'd joke that there's no going back now, but that's really the point, isn't it?"</em></p>
<p>With those fateful words, you join the team of Hope Labs. A group of scientists &amp; engineers, setting out to change the world.</p>
<p>Except, it all goes wrong. And now the team needs to band together, to fix the machine, to get back to normal, to before it all broke...</p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzQwODAzMTMuZ2lm/original/vB7c9w.gif" loading="lazy"><br></p>
<p>A Forgetful Loop is a time-based worker-placement puzzle game, where you need to weigh up  which nodes are more important at a given moment; To get closer to the core, closer to the finish line!</p>
<figure><img src="https://img.itch.zone/aW1nLzQwODAzMTUucG5n/original/mztFQV.png" loading="lazy"><br><img src="https://img.itch.zone/aW1nLzQwODAzMzIucG5n/original/IVKcCX.png" loading="lazy"><br></figure>
<ul><li>About <strong>5 Hours</strong> of content, with some more if you chase full completion</li><li><strong>48 Achievements</strong> to chase, with some tricky ones to challenge your skills</li><li><strong>Controls</strong>: Mouse, with Keyboard shortcuts</li><li>Made for <strong>Windows</strong> - Mac &amp; Linux builds are provided, but aren't tested</li></ul>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzQwODAzMzAuZ2lm/original/Tv0Oxx.gif" loading="lazy"><br></p>
<p><em></em>Like what you see? Check out my next game<strong> <a href="https://bighandinsky.itch.io/maintenance-day" target="_blank">A Day of Maintenance</a>!</strong><br></p>
<p><em>Like the music? <a href="https://mooncircuit.bandcamp.com/album/a-forgetful-loop-original-soundtrack" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Get the soundtrack here</a><br>Follow-up to <a href="https://bighandinsky.itch.io/gmtk2020" target="_blank">my entry to the GMTK Jam 2020</a>.<br>Check out Freya's work <a href="https://communistsister.itch.io/" target="_blank">here</a>!</em></p>
<p><em>"Jennifer, Isabel, whatever's happening with you, I'm sorry -"<br>"- but we've only got seconds until we loop again."<br>"If you remember this conversation... help us fix the machine!"<br>The loop restarts again.</em></p>
<p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/AsL0ZNCXPms" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzA4MDgzLzQxMzk2MzQucG5n/original/QTmtEa.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzA4MDgzLzQxMzk2OTIucG5n/original/YofzkP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzA4MDgzLzQxMzk2MzUucG5n/original/0lQ0%2FR.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzA4MDgzLzQxNDE3MTYucG5n/original/1z11eA.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzA4MDgzLzQxMzk3MTUucG5n/original/NZDKKx.png]]
<iframe src="https://www.youtube.com/embed/uWJIkfiKmQk?rel=0" allowfullscreen="" width="552" height="310" frameborder="0">
</iframe>
<h1 style="text-align: center; margin-top: 60px; margin-bottom: 60px">An adorable puzzle game about being a monster and making snowmen</h1>
<p style="width: 320px">
	 Lovingly-crafted puzzle design from 
	<a href="http://draknek.org" rel="nofollow noopener" referrerpolicy="origin">Alan Hazelden</a>, one of the creators of Sokobond
</p>
<p style="width: 320px; margin-left: 116px">
	<br>
	 Adorable graphics by 
	<a href="https://benjamindav.is" rel="nofollow noopener" referrerpolicy="origin">Benjamin Davis</a>
</p>
<p style="width: 320px; margin-left: 232px">
	<br>
	 Featuring an enchanting original soundtrack by 
	<a href="https://ghoulnoise.com" rel="nofollow noopener" referrerpolicy="origin">Priscilla Snow</a>
</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/uWJIkfiKmQk?rel=0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTgzODcvNzQ2NTQuanBn/original/0ID1G8.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTgzODcvNzQ2NTUuanBn/original/gaV7GR.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTgzODcvNzQ2NTYuanBn/original/Zn76Ro.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTgzODcvNzQ2NTcuanBn/original/m5X9NB.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTgzODcvNzQ2NTguanBn/original/W4O7q2.jpg]]
<p><strong>It is the year 19xx.</strong> The working class of The Empire is brutally oppressed. Out of necessity, there is resistance,&nbsp; protest, and, eventually, Revolution. Due to circumstance and anti-Semitism, the Jewish workers remain isolated. You and your comrades are a secret Jewish rebel unit. Together, you will fight for a better future.<br></p>
<ul><li>One-shot RPG for 3-6 players</li><li>Collaborative mechanics and storytelling similar to Belonging Outside Belonging games</li><li>Queer</li><li>Anti-fascist</li><li>Anti-capitalist</li><li>You'll need a dreidel to play this game</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvODUwMjc5LzQ3Njc1NjYuanBn/original/Rg3iAx.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODUwMjc5LzQ3Njc1NzQuanBn/original/JJuE6o.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODUwMjc5LzQ3Njc1NzUuanBn/original/6jlNoI.jpg]]
<p><strong>Dive into the formative moments of your characters life!</strong></p>
<p><strong>A</strong> <strong>History of Moments</strong>&nbsp;is a unique game where you explore the life of&nbsp;your character from a running or upcoming&nbsp;&nbsp;campaign and collaboratively explore their background with another player. You zoom into those moments that made them who they are and explore the places, persons and events that shaped your character.</p>
<p><strong>A </strong><strong>History of Moments</strong> is&nbsp;a game of&nbsp;collaborative character design with two players. One player embodies a character that they either are or will be playing in another campaign, while the other player injects tension and complications into that character's most meaningful memories. Together you explore your character's history while at the same time taking the first steps of characterization and embodiment. By playing out your characters formative memories you will deepen your understanding of them before even playing the first session of the campaign.</p>
<p><em>What happened that winter in the village you grew up in? Did your scoundrel shoot first when backed up against the wall? How did you escape the undead before hitting the road on you motorcycle? What was said in that last, fleeting meeting with your teenage love?</em></p>
<p><strong>What this game gets you:</strong></p>
<ul><li>A unique way to create and flesh out a character's background by actually playing them</li><li>An &nbsp;easy-to-learn and rewarding system of scene interaction that will get you a number of pivotal moments to base your characters background around.</li><li>A powerful collaborative dynamic between two players, with one in charge of their character and the other bringing tension to their story.</li><li>A hundred prompts that will spark your creativity and get you off to a running start!</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTExMTQ2OC82NDE5OTYyLmpwZw==/original/xa%2BLIh.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTExMTQ2OC82NDE5OTM2LnBuZw==/original/tSM%2BNY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTExMTQ2OC82NDE5OTM3LnBuZw==/original/U3n0%2Bg.png]]
<p>
The city is being invaded by monsters from the Upside Down World! You, the <strong>Potion Master</strong>, must defeat evil all alone, with no tutorials or "Easy Mode" to assist you. You'll have to rely on the help of <strong>Fäy</strong>, your companion fairy, and your potions!<span></span>
</p>
<p><br></p>
<p>
Jump and shoot like they did in the good ol' arcade days. Fight enemies in your world and in the Upside Down World! Defeat gigantic bosses and acquire their powers!
</p>
<ul><li>You already know how to play! The challenge is in the game, not in complicated controls!</li><li>Story Mode with five different worlds, Game+, Boss Rush Mode, Challenge Mode and multiple endings!</li><li>More than 30 different enemies, 7 boss battles and lots of secret characters to discover! </li></ul>
<p><br></p>
<p><strong>MINIMUM SYSTEM REQUIREMENTS</strong></p>
<ul><li>OS: Windows XP SP3 (or later)</li><li>Processor: 1,60 Ghz Intel Atom</li><li>Memory: 1 GB RAM</li><li>Graphics: OpenGL 3.0 compliant video card</li><li>Storage: 950 MB available space<span></span></li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/qQNRU5UD6aM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMwMjEvNjY1MTAzLmdpZg==/original/Xev4tc.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwMjEvNjY1MTE4LmdpZg==/original/6nBqHb.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwMjEvNjY1MTI2LmdpZg==/original/YFl5Xm.gif]]
<h1 class="text-center">&nbsp;House Interior asset pack !</h1>
<p>Hello guys,
</p>
<p>Here's some houses that i created for a project,
</p>
<h2 class="text-center">File content:</h2>
<p>- 1 Individual files with transparent background for each room (3).
</p>
<p>- 1 tilesheet with tranparent background for each room (3).</p>
<p>- 1 tilesheet with colored background for each room (3).</p>
<p>- More than 70&nbsp;individuals PNGs with tranparent background !!!</p>
<p><img src="https://img.itch.zone/aW1nLzcwNDE0NzUucG5n/original/f4Ev%2BT.png" loading="lazy"></p>
<p><img src="https://img.itch.zone/aW1nLzcwNDE0NzgucG5n/original/3dLKpA.png" loading="lazy"><br></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<img src="https://img.itch.zone/aW1nLzcwNDU3NTUucG5n/original/BB7XL1.png" loading="lazy"></p>
<p><img src="https://img.itch.zone/aW1nLzcwNDU3MzUucG5n/original/SWDi0K.png" loading="lazy">&nbsp; &nbsp; <img src="https://img.itch.zone/aW1nLzcwNDU3NDAucG5n/original/9h%2FhGI.png" loading="lazy">&nbsp; &nbsp; &nbsp; <img src="https://img.itch.zone/aW1nLzcwNDU3NDIucG5n/original/tKLUK5.png" loading="lazy">&nbsp; &nbsp; &nbsp; <img src="https://img.itch.zone/aW1nLzcwNDU3NDMucG5n/original/kvJVky.png" loading="lazy">&nbsp; &nbsp; &nbsp;<img src="https://img.itch.zone/aW1nLzcwNDU3NDQucG5n/original/8G6hJR.png" loading="lazy">&nbsp; &nbsp; &nbsp; &nbsp;<img src="https://img.itch.zone/aW1nLzcwNDU3NDUucG5n/original/NTW1oH.png" loading="lazy">&nbsp; &nbsp;&nbsp;<img src="https://img.itch.zone/aW1nLzcwNDU3NDkucG5n/original/uJ5UAB.png" loading="lazy">&nbsp;<img src="https://img.itch.zone/aW1nLzcwNDU3NTIucG5n/original/%2BogZjk.png" loading="lazy"><img src="https://img.itch.zone/aW1nLzcwNDU3NzUucG5n/original/TsfUbJ.png" loading="lazy">&nbsp; &nbsp; <img src="https://img.itch.zone/aW1nLzcwNDU3NzcucG5n/original/6AyIEe.png" loading="lazy">&nbsp; <img src="https://img.itch.zone/aW1nLzcwNDU3NzgucG5n/original/nSR6ei.png" loading="lazy">&nbsp; &nbsp; <img src="https://img.itch.zone/aW1nLzcwNDU3NzkucG5n/original/6Gkkg9.png" loading="lazy">&nbsp; &nbsp; <img src="https://img.itch.zone/aW1nLzcwNDU3ODAucG5n/original/HtjjwK.png" loading="lazy">&nbsp; &nbsp; &nbsp;<img src="https://img.itch.zone/aW1nLzcwNDU3ODEucG5n/original/Z2BEUR.png" loading="lazy">&nbsp; &nbsp; &nbsp;<img src="https://img.itch.zone/aW1nLzcwNDU3ODMucG5n/original/I5kF26.png" loading="lazy">&nbsp; &nbsp; &nbsp; &nbsp;<img src="https://img.itch.zone/aW1nLzcwNDU3ODQucG5n/original/uwDOtV.png" loading="lazy">&nbsp; &nbsp; &nbsp;<img src="https://img.itch.zone/aW1nLzcwNDU3ODUucG5n/original/kViV0B.png" loading="lazy">&nbsp; &nbsp; &nbsp;<img src="https://img.itch.zone/aW1nLzcwNDU3ODYucG5n/original/gAXDOw.png" loading="lazy">&nbsp; &nbsp;<img src="https://img.itch.zone/aW1nLzcwNDU3ODcucG5n/original/uxg0Ff.png" loading="lazy">&nbsp; &nbsp; <img src="https://img.itch.zone/aW1nLzcwNDU3OTIucG5n/original/7uQulk.png" loading="lazy">&nbsp; &nbsp;<img src="https://img.itch.zone/aW1nLzcwNDU3OTMucG5n/original/FQk5R9.png" loading="lazy">&nbsp; &nbsp;<img src="https://img.itch.zone/aW1nLzcwNDU3OTQucG5n/original/2XpBgB.png" loading="lazy"><span></span><span></span><span></span><span></span><span></span><span></span><span></span></p>
<p><span></span></p>
<p>-You can use it for your games,commercially or not, credit is not necessary but always appreciated. If you use this, comment down bellow so that i can see your game.You cannot redistribuate or resell this asset pack.
</p>
<p class="text-center">Have fun ;)
</p>
<p class="text-center">Styl0o_</p>
<p class="text-center"><br></p>
<p><br></p>
<iframe frameborder="0" src="https://itch.io/embed/1205540?linkback=true&amp;border_width=5&amp;bg_color=222222&amp;fg_color=eeeeee&amp;link_color=ff0000&amp;border_color=ff0000" width="560" height="175"><a href="https://styloo.itch.io/freebarassetspack"><span class=""></span>FREE Bar asset pack ! by styloo</a></iframe>
<iframe frameborder="0" src="https://itch.io/embed/1429118?border_width=0&amp;dark=true" width="550" height="165"><a href="https://styloo.itch.io/3d-weapons-asset-pack">3d weapons Asset pack by styloo</a></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIwNjczNy83MDQ1NzMxLnBuZw==/original/L9Wb%2BY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwNjczNy83MDQ1NzMyLnBuZw==/original/2L70PE.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwNjczNy83MDQ1NzMzLnBuZw==/original/Kpmxoj.png]]
<p>Welcome to the digital album release of "A Light Long&nbsp;Gone", which allows you to listen to individual instruments in any combination you want and explore my music in a more intimate way.</p>
<p>You can watch the complete instrumental mix on <a href="https://www.youtube.com/watch?v=lHuMNT0Mh0g" rel="nofollow noopener" referrerpolicy="origin">YouTube</a>, which is a recording of the running application that you can interact with.</p>
<p>All of the&nbsp;original songs (which include vocals for the most part)&nbsp;are available for free on <a href="https://www.youtube.com/watch?v=PdDDVfmAoiQ&amp;list=PLvRgeUqSM4fcPrP5Irzxt2ZpgpFCEodnA" target="_blank" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">YouTube</a><span style="color: inherit; font-size: inherit"></span><span style="color: inherit; font-size: inherit"></span>, in addition to&nbsp;<a href="https://www.youtube.com/redirect?redir_token=QYUV1ejUPEX-Ldh2B_9Ygxqc3yx8MTU4OTYzODgxN0AxNTg5NTUyNDE3&amp;v=lHuMNT0Mh0g&amp;q=https%3A%2F%2Fopen.spotify.com%2Falbum%2F5qJAEeIyTcw4SXkjnsZ2Ix&amp;event=video_description" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">Spotify</a><span style="color: inherit; font-size: inherit"></span> and various other digital music markets.</p>
<h3>About The Music</h3>
<p>In 2019, I decided to create one song per month. While mostly electronic, it contains instruments such as grand piano, acoustic guitar, vocals, with several additions by guest musicians (cello, violin, trumpet, e-bass, and many more). Most songs can probably be categorized as chill/downtempo, and revolve around dark/depressing themes, with a few rays of hope every now and then.<br></p>
<h3>Guest Musicians &amp; Artists</h3>
<ul><li>Funnycreature | e-guitar, percussion</li><li><a href="https://twitter.com/iarhiee" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Irene Muñoz</a>&nbsp;| album art</li><li>Jace Greywool | guitar</li><li>Khimitsu | recorder, keyboard, background vocals</li><li><a href="https://www.youtube.com/user/reckoner27cello" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Lou Dunand-Vincent</a>&nbsp;| cello, violin</li><li>Manuel Kröber | bass</li><li>Mark Valentine | bass</li><li><a href="http://www.onlyintheory.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Michael Hillard</a>&nbsp;| trumpet</li><li>Moonlyer | guitar, harmonica</li><li>Jared Powell | violin, viola</li><li>Pao Sebastian | recorder, percussion</li><li><a href="https://twitter.com/tipsheda" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Shane Yach</a>&nbsp;| music video (for "stillstand")</li><li>Sharpet | bass</li><li><a href="https://soundcloud.com/szaladdressing" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Szaladin</a>&nbsp;| bass</li></ul>
<p>Hint: If you download the game, make sure to read the ReadMe file for a handful of tips!</p>
<p>Thank you for your time!</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/lHuMNT0Mh0g" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1nLzM0NTUwNzguanBn/original/5AwhSB.jpg]]
<p><em>A rider looms on the
road ahead. His tattered clothes and ravaged face competes for grotesquery with
his mangy, tick-riddled horse. His hefty baggage bulges temptingly. Would you
dare rob a man on the road?</em></p>
<p>This pamphlet
adventure for <strong>Old-School Essentials</strong> answers the question: What if an apparently
typical random encounter held far more in store than the party would ever dream
of bargaining for. Contained here is a single, <strong>devilishly difficult to kill NPC</strong>
with endless tricks up his sleeves, including:<br></p>
<ul> <li><strong>False identities</strong> to lure the     party into careless complacency.</li> <li><strong>Fighting styles</strong> and     <strong>underhanded tactics</strong> to thwart any plan and keep the party on their toes.</li> <li><strong>Foul vulgarities</strong> unleashed by     his fetid tongue, such as: <em>Pestilent corpse fit only to satisfy     a blind mule</em> and     <em>blaspheming     devil-humper.</em></li> <li><strong>Worthy and strange loot</strong> to     reward the victorious.</li> <li>And more.</li></ul>
<p><img src="https://img.itch.zone/aW1nLzYyNjEyODgucG5n/original/ZQQOb9.png" loading="lazy"><br></p>
<p>Written by <strong>Ian Yusem</strong><br>Layout &amp; Design by <strong>David
Wilkie</strong><br>Illustration by<strong> </strong><a href="https://www.instagram.com/lf_osr/" rel="nofollow noopener" referrerpolicy="origin"><strong>L.F. OSR</strong></a></p>
<p>Inspired by the
excellent Troika pamphlet <a href="https://james-holloway.itch.io/mortsafe">Wanted:
Belladonna Mortsafe</a>.<br>Thanks to <strong>Luke
Gearing</strong> and <strong>Reece Carter</strong> for help with the vulgarities.</p>
<p><img src="https://img.itch.zone/aW1nLzYyNjQ4ODAucG5n/original/4DDoQ4.png" loading="lazy"><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODQ1OTg2LzQ3NDY5MzgucG5n/original/rej4tM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODQ1OTg2LzQ3NDY5NjguanBn/original/hBL%2Fep.jpg]]
<p><strong>A game by <a href="https://twitter.com/mqsalmon" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Mitchell Salmon</a></strong></p>
<blockquote><strong>In each of us, there are two natures... </strong><br>this primitive duality of man—<strong>good and evil</strong>...<br>It is the curse of mankind that these polar twins should be<strong> constantly struggling...</strong><br>—Dr Henry Jekyll, from <em>Jekyll and Hyde, the Gothic Musical Thriller</em></blockquote>
<p><strong>Content Warning: Body horror, violence.</strong></p>
<p class="text-center"><img src="https://www.gamesandgood.co/image/amp/Frankenstein's%20Monster's%20Monster.png" alt="A Game of Monsters" title="A Game of Monsters" loading="lazy"><br></p>
<p><strong>A&nbsp;Modern Prometheus&nbsp;</strong> is a gothic horror roleplaying game for 2 players based on the&nbsp;<em><a href="https://lumpley.itch.io/firebrands" target="_blank">Mobile Frame Zero: Firebrands</a></em> framework by D. Vincent Baker and Meguey Baker (Lumpley Games).</p>
<p>Players take on the role of a <strong>scientist </strong>dabbling with dark forces at the edge of the natural sciences, and the <strong>creation </strong>that they bring to life as a consequence. Together, you and your partner will discover through play <strong>who is human, and who is monstrous</strong>.</p>
<p>You will take turns&nbsp;choosing from a list of <strong>minigames</strong> specific to your character to craft a shared story of <strong>science, vengeance, humanity, and rage</strong>. No two minigames are exactly alike. Use crafted prompts to guide your interactions as you explore the depths of your character, and discover their fate in the final confrontation between creator and creation.</p>
<p><strong>Prepare for a emotional and horrific tale that only you and your chosen partner can tell.</strong><br></p>
<p>This game is inspired by works like Mary Shelley's <em>Frankenstein</em>, and Robert Louis Stevenson's&nbsp;<em>Strange Case of Dr Jekyll and Mr Hyde</em>, and adaptations.</p>
<table>
<tbody><tr>
<th><h3>Details</h3></th>
<th><h3>Themes</h3></th>
</tr>
<tr>
<td>
<p><img src="http://gamesandgood.co/image/icon/group.svg" style="max-width: 100%; height: 16px" loading="lazy">&nbsp;2 Players</p>
<p><img src="http://gamesandgood.co/image/icon/time.svg" style="max-width: 100%; height: 16px" loading="lazy">&nbsp;1-2 Hours</p>
<p><img src="http://gamesandgood.co/image/icon/player.svg" style="max-width: 100%; height: 16px; font-size: 14px; background-color: rgb(255, 255, 255)" loading="lazy">&nbsp;Ages 13+</p><p><img src="http://gamesandgood.co/image/icon/gmless.svg" style="max-width: 100%; height: 16px; font-size: 14px; background-color: rgb(255, 255, 255)" loading="lazy"> No GM or preparation required</p>
</td>
<td>
<p><img src="http://gamesandgood.co/image/icon/monster.svg" style="color: inherit; font-size: inherit; height: 16px" loading="lazy"> Gothic Horror</p>
<p><img src="http://gamesandgood.co/image/icon/lightning.svg" style="max-width: 100%; height: 16px; font-size: 14px; background-color: rgb(255, 255, 255)" loading="lazy"> Science Fiction</p>
<p><img src="http://gamesandgood.co/image/icon/compete.svg" style="height: 16px" loading="lazy"> Compete with a friend<br></p>
<p><img src="http://gamesandgood.co/image/icon/question.svg" style="height: 16px" loading="lazy"> Ask questions to find out what happens</p>
<p><img src="http://gamesandgood.co/image/icon/book.svg" style="color: inherit; font-size: inherit; height: 16px" loading="lazy"> Tell a story together</p>
</td>
</tr>
</tbody></table>
<figure><img src="https://www.gamesandgood.co/image/amp/Actual%20Play.png" alt="Actual Play" title="Actual Play" style="text-align: center; color: inherit; font-size: inherit" loading="lazy"><br></figure>
<p><em>Want to feature&nbsp;</em>A&nbsp;Modern Prometheus<em> on your podcast or stream? Go for it! Linking back to this store page is appreciated, and tag me on <a href="http://twitter.com/mqsalmon" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter</a>&nbsp;to let me know I can share your recording.</em><br></p>
<h3>Scene Play</h3>
<p><iframe src="https://player.fireside.fm/v2/us0am5MY+hzo-WTk3?theme=dark" width="100%" frameborder="0" scrolling="no"><span class=""></span><span class=""></span>&lt;/span&gt;</iframe></p>
<p>Tucker Lemos and Arya Burke weave a marvellous and horrifying tale that perfectly captures the mood and terror of&nbsp;<em>A Modern&nbsp;Prometheus</em>.&nbsp;</p>
<p>Website:&nbsp;<a href="https://sceneplay.fireside.fm/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">sceneplay.fireside.fm</a><br>Twitter: <a href="https://twitter.com/scene_play" target="_blank" rel="nofollow noopener" referrerpolicy="origin">twitter.com/scene_play</a></p>
<h3>Yes&nbsp;Indie'd</h3>
<p><iframe src="https://open.spotify.com/embed-podcast/episode/3HcLFkWBhJNhSThbkPJmZg" width="100%" height="232" frameborder="0"><span class=""></span></iframe></p>
<p>Marx Shepherd interviewed me for&nbsp;<em>Yes Indie'd</em>, a podcast about indie roleplaying games,&nbsp;inspiration, and the theory, process and practice of game design.&nbsp;</p>
<p>Website:&nbsp;<a href="https://www.yesindiedpod.com/" rel="nofollow noopener" referrerpolicy="origin">yesindiedpod.com</a><br>Twitter:&nbsp;<a href="https://twitter.com/yesindiedpod" rel="nofollow noopener" referrerpolicy="origin">twitter.com/yesindiedpod</a></p>
<h3>Inside the Caravan</h3>
<p><iframe height="150" width="100%" style="" scrolling="no" src="https://www.podbean.com/player-v2/?i=zf44x-1023f9a-pb&amp;from=embed&amp;share=1&amp;download=1&amp;skin=1&amp;btn-skin=7&amp;size=150"></iframe></p>
<p>Andrew the Halfling reads through indie games in 10-15 minutes for a great quick dive into new games, creative systems, and the indie scene. Check out his thoughts on <em>A Modern&nbsp;Prometheus</em>.</p>
<p>Website: <a href="https://halflingcaravan.podbean.com/" rel="nofollow noopener" referrerpolicy="origin">halflingcaravan.podbean.com<br></a>Twitter: <a href="https://twitter.com/HalflingCaravan" rel="nofollow noopener" referrerpolicy="origin">twitter.com/HalflingCaravan</a><span></span></p>
<p class="text-center">---</p>
<p><strong></strong><em>Update 20/10/2021:&nbsp;</em><strong><em>Itchfunding for this game has ended.&nbsp;</em><em></em></strong><em>Thank you to everybody who purchased this game during its Itchfunding period. I have made the decision to end Itchfunding. No further stretch-goal additions to the game are planned.&nbsp;</em><br></p>
<p class="text-center">---</p>
<p>I respectfully acknowledge the Wurundjeri people and the Boon Wurrung / Bunurong people of the Kulin Nations as the traditional owners of the land on which the majority of my work takes place. I pay respects to elders past and present. Sovereignty was never ceded.<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzQxMTQ4LzQ0MDA5MzQucG5n/original/XXGSfI.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQxMTQ4LzQ0MDA5MzUucG5n/original/V2GVTE.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQxMTQ4LzQ0MDA5MzYucG5n/original/o5%2F5hw.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQxMTQ4LzQ0MDA5MzcucG5n/original/bucPQs.png]]
<p><strong>A Mortician's Tale takes about 1 hour to play. It's a short, but deeply meaningful experience.</strong><br></p>
<p>A Mortician's Tale is a story-driven death positive video game where you play as a mortician tasked with running a funeral home. Take on the role of recent funeral direction graduate Charlie as she learns the ropes of the business and industry. Prepare the bodies of the deceased (via embalming or cremation), attend their funerals and listen to their loved ones' stories, and interact with Charlie's coworkers, clients, and bosses.</p>
<p>A Mortician's Tale is an informative, honest, and sometimes humorous look at the current state of and the future of the western death industry.</p>
<h2>Reviews</h2>
<p>“<strong>One Of 2017's Best Games</strong>... It elicits dark feelings, but asks players to consider where those feelings came from and what makes them dark.”<br>—&nbsp;<a href="https://kotaku.com/one-of-2017s-best-games-is-about-being-a-mortician-1819509818" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Kotaku</a></p>
<p><strong>One Of Polygon's Best Games of 2017</strong> — "The video game industry is built on the destruction of bodies of all kinds. How refreshing to play a game that asks you to care for them, even after their life has left."<br>— <a href="https://www.polygon.com/2017-best-games/2017/12/18/16781674/best-video-games-2017-top-50-mario-pubg-zelda" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Polygon</a></p>
<p>“<strong>82/100</strong> — An approachable and thought-provoking meditation on life’s only certainty.”<br>&nbsp;–&nbsp;<a href="http://www.pcgamer.com/a-morticians-tale-review/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">PC Gamer</a><br><br>“<strong>Recommended</strong> — This is a beautiful game. It scared me. It moved me. Most of all, it made me stop what I was doing and think.”<br>&nbsp;–&nbsp;<a href="https://steamcommunity.com/linkfilter/?url=http://www.eurogamer.net/articles/2017-10-19-a-morticians-tale-review" target="_blank" rel="nofollow noopener" referrerpolicy="origin">EuroGamer<br></a><a href="https://venturebeat.com/2017/10/16/a-morticians-tale-dissects-the-stigma-of-death/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"></a></p>
<p>"<strong>8/10</strong> — [A Mortician's Tale] is a short game, only an hour or so long, but it leaves an impact far beyond its runtime. Give it a chance, and it might just change the way you think about death."<br>—&nbsp;<a href="https://www.destructoid.com/review-a-mortician-s-tale-468436.phtml?utm_source=dlvr.it&amp;utm_medium=twitter" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Destructoid</a></p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzE2NDUxNzMucG5n/original/yrsLNn.png" loading="lazy">&nbsp;<img src="https://img.itch.zone/aW1nLzE2NDUxNzIucG5n/original/WNEoEz.png" loading="lazy">&nbsp;<img src="https://img.itch.zone/aW1nLzkwNzUxMC5wbmc=/original/Jb21G%2B.png" loading="lazy">&nbsp;<img src="https://img.itch.zone/aW1nLzkwNzUxMi5wbmc=/original/vgDEVv.png" loading="lazy">&nbsp;<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/0AzMmvXHyKQ" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE4MjQzLzgzMTI4MC5wbmc=/original/JsUaUW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE4MjQzLzgzMTI3Ni5wbmc=/original/T9iysF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE4MjQzLzgzMTI3Ny5wbmc=/original/w1a00o.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE4MjQzLzgzMTI3OS5wbmc=/original/3Gqcy6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE4MjQzLzgzMTI4MS5wbmc=/original/mDEJuv.png]]
<p>You are a hermit crab who has grown out of their shell.</p>
<p>It is time to find a new one, however scary that may be.</p>
<p><br></p>
<p>Reception:</p>
<p>"Yo this is one of those quintissential (sic) games that like really honor something as universal as transition in a ludicrously honest way..." - <a href="https://mariabumby.itch.io/" target="_blank">Maria Mison</a></p>

[img width=500 [https://img.itch.zone/aW1nLzIyMzIzMjYuZ2lm/original/e9VE1D.gif]]
<p>Adrien, a creature born of a young child’s nightmares, takes a little summer vacation.</p>
<p><em>A NIGHTMARE'S TRIP</em> is a short visual-novel game from the development team behind the upcoming&nbsp;<em>RE: DECEIVED VOICE</em>. Meet strange new characters. Tour around a colorful city. Turn the nightmares of the past into a fantastical dream made real.</p>
<p>Features:<br></p>
<ul><li>Enjoy a 2-3 hour modern-fantasy punk&nbsp;narrative set in familiar places!</li><li>Featuring original art from Moxie Riles (RE: DECEIVED VOICE), Christina Crichlow (Blissful Madness), and Sondelonnel!</li><li>Kinectic Storytelling - To the whim of several dialogue choices, change the story in subtle ways!</li><li>Meet a demon from hell! And play pachinko together?</li><li>Resolve (temporarily) sibling troubles, commit gay crimes, get chewed out by Gaoma, and more!</li><li>Steam keys for itch.io users!</li></ul>
<p>For an additional $7 (USD), you will acquire&nbsp;<em>A NIGHTMARE’S TRIP - FULL ITINERARY EDITION, </em>which&nbsp;comes with both the game and the “Carry-On Luggage’s Contents”, including the following:</p>
<ul><li><strong>A NIGHTMARE'S TRIP - Yume's Sketchbook</strong>&nbsp;(Digital Artbook PDF)</li><li><strong>A NIGHTMARE'S TRIP - CAMERA ROLL</strong>&nbsp;(Folder containing high quality CGs/backgrounds!)</li><li><strong>A NIGHTMARE'S TRIP - Tunes 4 Trip</strong>&nbsp;(Soundtrack Sampler, containing 3 tracks by Arachnibot!)</li></ul>
<p><a href="https://arachnibot.bandcamp.com/releases" rel="nofollow noopener" referrerpolicy="origin">The soundtrack is available now on Bandcamp!</a></p>
<p>If you enjoy the game, please consider supporting our ongoing projects via <a href="https://www.patreon.com/teamskyhour" rel="nofollow noopener" referrerpolicy="origin">Patreon</a>!&nbsp;We're just getting started - with you, we can change the world!&nbsp;(probably)</p>
<p><em><u>content warning: violent references (contained in the game's opening prologue), brief mention&nbsp;of a fictitious&nbsp;slur,&nbsp;appearances of both mall/airport security</u></em><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/Tk0oEh_xQGI" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDEzMzI1LzI1NDkwNjYuanBn/original/Vv0GN8.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDEzMzI1LzI1NDkwNjUuanBn/original/3rKPdl.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDEzMzI1LzI1NDkwNjguanBn/original/wvcREq.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDEzMzI1LzI1NDkwNjMuanBn/original/IABpDP.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDEzMzI1LzI1NDkwNjQuanBn/original/A9wrIp.jpg]]
<p class="text-justify"><em><strong>A Planet of Mine</strong></em><strong> is a mini procedural 4X. Starting from a single and unique planet, survive, gather and combine resources, develop your technologies and start the conquest of space.</strong></p>
<p><img src="https://img.itch.zone/aW1nLzUzODg5OTYuanBn/original/l6VTGY.jpg" loading="lazy"><br></p>
<p class="text-justify">Choose your strategy wisely to colonize the procedurally generated system and dominate opposing factions by force or exchanges.</p>
<p class="text-justify">This PC edition include all updates from the original awarded mobile version.</p>
<p class="text-justify"><strong>Features</strong></p>
<ul class="text-justify"><li class="text-justify">Real time simulation of resources (APOM Engine)
</li><li class="text-justify">Procedural generation of stellar systems, planets, biomes and resources
</li><li class="text-justify">3 game modes (infinite, time attack, builder)
</li><li class="text-justify">Personalized games
</li><li class="text-justify">10 scenarios to complete
</li><li class="text-justify">16 animal factions to unlock and play
</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/ob38WxthOrk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTUwNDAxLzUzODgxMDkuanBn/original/uWERfn.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTUwNDAxLzUzODgxMTAuanBn/original/bup4bo.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTUwNDAxLzUzODgxMTEuanBn/original/dmJhGs.jpg]]
<p><em><strong>Welcome to&nbsp;</strong><strong>The Halfcut Hospital Trust!</strong></em></p>
<p><em>Due to an unfortunate budgeting shortfall, we are sadly no longer able to provide separate uniforms for porters, nurses, doctors - or even patients! Everyone is now issued with daily sets of scrubs, which we can reuse again and again, saving the hospital lots of money which we can spend on <del>management consultants</del> patient care.</em></p>
<p><em>Sadly, the entire staff of our laundry department has recently gone on strike - they are asking for something called “holiday pay” - so please bear with us if the quality of our cleaning is temporarily less than satisfactory.</em></p>
<p></p>
<p><strong>You are a set of&nbsp;</strong><strong>hospital scrubs.</strong></p>
<p>You will live as that single set of scrubs through a daily change of wearers. Witness the wonder, sadness and drudgery that is the hospital experience. Slowly experience your material becoming stained, ripped, repaired and eventually discarded.&nbsp;</p>
<p>Perhaps you will recognise a symmetry between your fragile cloth and the human lives around you?</p>
<p><br></p>
<p>This game was made as part of the&nbsp;<a href="https://itch.io/jam/lost-and-found">#LostAndFoundJam</a>&nbsp;and is based on the&nbsp;<a href="https://srd.mousehole.press/" rel="nofollow noopener" referrerpolicy="origin">Lost and Found SRD</a>&nbsp;by&nbsp;<a href="https://mouseholepress.itch.io/">Jack Harrison</a>.<br></p>

[img width=500 [https://img.itch.zone/aW1nLzcwOTM4MzYucG5n/original/POcD9e.png]]
<p class="text-center"><img class="custom-bird" src="https://img.itch.zone/aW1nLzIyMDc3NjgucG5n/original/wq8uPX.png" width="220" loading="lazy"></p>
<p class="text-center custom-main-text">Hike, climb, and soar through the peaceful mountainside landscapes of Hawk Peak Provincial Park.</p>
<p class="text-center custom-main-text">Follow the marked trails or explore the backcountry as you make your way to the summit.</p>
<p class="text-center custom-main-text">Along the way, meet other hikers, discover hidden treasures, and take in the world around you.</p>
<p class="text-center"><img class="custom-divider" src="https://img.itch.zone/aW1nLzIyMTA3ODMucG5n/original/vHirJF.png" loading="lazy"></p>
<ul class="custom-extra-text"><li>Explore the island any way you like. Choose your own path to follow and see where it leads you!</li><li>Hike at your own pace — there’s no need to rush to the summit! Take your time fishing along the river banks or swimming by the lakeshore.</li><li>Collect hidden treasures to reach new heights. Try taking a dive off the mountain peaks to soar above the forests.</li><li>Chat with the other hikers you meet along your route. You might be able to help each other out!</li><li>Listen to a lush original soundtrack by <a href="https://marksparling.bandcamp.com/album/a-short-hike-original-soundtrack" rel="nofollow noopener" referrerpolicy="origin">Mark Sparling</a>&nbsp;that progresses dynamically as you explore the wilderness.</li></ul>
<h4 class="text-center">Purchase includes a Steam key!</h4>

<iframe width="720" height="450" src="https://www.youtube.com/embed/qsA5p0MKdoM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDI0ODk1LzIyNjQzODMuZ2lm/original/GYUdXi.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNDI0ODk1LzIyMDgwMDMuZ2lm/original/UQr4GT.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNDI0ODk1LzIyMDgwMjMuZ2lm/original/%2BL7B4s.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNDI0ODk1LzIyMDgwNTEuZ2lm/original/VJr5II.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNDI0ODk1LzIyNTEzMzUuZ2lm/original/FrVdVX.gif]]
<p><strong>DISCLAIMER FOR STREAMERS: This game contains copyrighted music.</strong></p>
<p>Confused about her feelings for someone, <strong>Lucia</strong>, the main character, decides to flee from her city and wanders through a smaller town where she’s never been, searching for herself while still tormented by the thought of the person she’s attracted to.<br></p>
<p>The project is an interactive experience divided into 11 segments, each corresponding to a song from <strong>Red Ribbon</strong>’s new album “<em>Planet X</em>”.<br>Lose yourself into Lucia’s mindscape, divided between her thoughts, drawings and music she’s listening to through her journey to re-discover her own self.</p>
<p><br></p>
<p>Features:</p>
<ul><li>A narrative shaped around Red Ribbon’s “Planet X” album
</li><li>An interactive stream of consciousness developed by the choices made during each scene
</li><li>A mixture of comics, animation and interactive fiction elements
</li><li>A short and replayable story</li></ul>
<p><a href="https://dangercollective.com/artists/red-ribbon" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzYwNDIwNDguanBn/original/EXQhya.jpg" loading="lazy"></a><br></p>
<p></p>
<p><a href="https://teamsoletude.carrd.co/" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzYwNDIwNDkuanBn/original/nHItMr.jpg" loading="lazy"></a><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/IkLlGJMMi9U" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NTYzMS82MTc1NjgxLnBuZw==/original/iIl23%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NTYzMS82MDQwNDg4LmpwZw==/original/wmj0pn.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NTYzMS82MDQwNDg5LnBuZw==/original/rPSTrb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NTYzMS82MTc1NjgwLnBuZw==/original/hWOxi1.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NTYzMS82MTc1NjgyLnBuZw==/original/3omdyk.png]]
<p>Hissssssss</p>
<p>A Snake's Tale is a puzzle game about snakes in cramped places. Clear a path to get to the hole, eat some eggs along the way, and make sure to press all the buttons.</p>
<ul><li>75+ brain-crushing puzzles (okay, not all of them are "brain-crushing" hard)</li><li>5 different environments, each with a unique mechanic</li><li>A whole ton of snakes</li><li>Play with mouse, keyboard, or gamepad</li><li>Procedurally generated art with a unique style</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/23pQmEuueNw" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI0MjgwLzYzNTk1MC5wbmc=/original/U70rKt.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0MjgwLzYzNTk1MS5wbmc=/original/KTC4Qf.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0MjgwLzYzNTk0OS5wbmc=/original/h5Ft%2B%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0MjgwLzYzNTk0OC5wbmc=/original/dyNj7B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0MjgwLzYzNTk1Mi5wbmc=/original/WrvHBz.png]]
<h2>San Sibilia</h2>
<p><span></span><em>This city never changes, this city never stays the same. Close to the coast in a river delta, San Sibilia’s sprawling districts are connected by rambling trams and ramshackle ferries.&nbsp;</em><em>You may have read about <em>San Sibilia</em> once in a 20-part encyclopedia in a dusty shop around the corner, but haven’t been able to find the bookstore since.</em></p>
<h2>A Visit to San Sibilia</h2>
<p><span></span><em>A visit to San Sibilia</em> is a solo journaling game in which you roleplay a character chronicling their visit to the city of San Sibilia. It is a city not found on any maps—San Sibilia is both part of and distinct from our world. The city manifests itself differently to every visitor.</p>
<h2>Buy the print zine</h2>
<p>The game is also available in print. Buy it at&nbsp;<a href="https://floatingchair.club/products/a-visit-to-san-sibilia" target="_blank" rel="nofollow noopener" referrerpolicy="origin">FloatingChair.Club</a>.</p><h2>Newsletter</h2><p>Want to keep track of what I'm doing? Subscribe to my&nbsp;<a href="https://tinyletter.com/monstermind" target="_blank" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">newsletter</a>&nbsp;and be the first to know about my games in development.<span></span><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA3NjA4MS82MTcwNTE5LnBuZw==/original/V7bryy.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3NjA4MS82MTcwNTIwLnBuZw==/original/GDGDl3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3NjA4MS82MTcwNTIxLnBuZw==/original/gOIKAA.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3NjA4MS82MTcwNTIyLnBuZw==/original/6p0MrU.png]]
<p>15 paper-minis for table-top rpgs or just to have some pals. a fairy-land fever dream. in full color &amp; black-and white! Two sided &amp; both the sides are different! Note that some of these are pretty messed up and/or semi-naked. <br></p>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MjA0Ni82NjkxODA0LmpwZw==/original/55vOO8.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MjA0Ni82NjkxODEyLmpwZw==/original/lzYW3k.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MjA0Ni82NjkxODIyLmpwZw==/original/M2MLwi.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MjA0Ni82NjkyMDI3LmpwZw==/original/ZpkbDs.jpg]]
<p><strong>About Love, Hate and the other ones</strong> is a puzzle game, in which you influence your surroundings by the force of Hate and the power of Love. <br><br>They shouldn't have pushed the button! Life on the hill was just perfect for Love and Hate before that shiny red device appeared. Suddenly, they are trapped in a dark and spooky cave, far away from home. <br><br>Now it is up to you to control the opposing forces of Love and Hate. They will soon meet a lot of Other Ones, wondering how they might react when Loved, or when Hated. Find a way through caves and ice, castles and factories, all by the might of your puzzling! If you ever return to that hill, life will be sweet again...<span></span></p>
<h4>SET YOUR BRAIN CELLS ABLAZE</h4>
<p>Master mind-bending puzzles and crack tricky riddles with a mix of Love, Hate and your analytical skills!</p>
<h4>MY, ISN'T THIS PLEASANT</h4>
<p>Those little personalities, as if taken right from a picture book, will warm your heart and bring joy to your vision!</p>
<h4>SIX OTHER ONES</h4>
<p>Figure out how each Other One reacts to Loveʻs and Hateʻs attitudes towards life. Make use of your findings to return back home.</p>
<p><br></p>
<hr>
<h5>Hardware requirements</h5>
<ul><li>Windows: XP or newer, 32 or 64 bit</li><li>Mac: OS X 10.6 (Snow Leopard) or newer</li><li>Linux: 32 or 64bit kernel with GLIBC 2.14 or newer</li><li>CPU with SSE2 support required (Core 2 Duo, Athlon X2 or newer). Core i3 or better recommended.</li><li><span></span>Memory: at least 1024 MB RAM, 2048 MB recommended.</li><li>OpenGL 2.1 compatible graphics card. Nvidia GeForce or AMD Radeon recommended.</li><li>600 MB available hard disk space</li></ul>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/T51k1UWcreg" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTEzMDgvMjI3ODQyLmpwZw==/original/%2FN3KF2.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEzMDgvMjI3ODM3LmpwZw==/original/NfQrMa.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEzMDgvMjI3ODQwLmpwZw==/original/BJS2%2BE.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEzMDgvMjI3ODQxLmpwZw==/original/ya4z0d.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEzMDgvMjI3ODM5LmpwZw==/original/WbXlg2.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEzMDgvMjI3ODM4LmpwZw==/original/PB56Hb.jpg]]
<p>Fight to save mankind in this fantastic 2d shooter! With 60 sectors of pure adrenaline pumping action, awesome graphics and sound, this game is sure to please. You can improve your ship with upgrades and power-ups to transform it into the devastating battle force needed to confront the endless waves of enemy fighters and creatures that will cross your path.<span></span></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/bMQT77YLySs" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODQ5ODQvNDAwNTIwLmpwZw==/original/DVkEMN.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODQ5ODQvNDAwNTIzLmpwZw==/original/Va17QO.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODQ5ODQvNDAwNTIxLmpwZw==/original/QmNt7x.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODQ5ODQvNDAwNTIyLmpwZw==/original/gWghUa.jpg]]
<p><strong>What happened is forgotten</strong><br></p>
<p><em>Take your Troika! games to a new world of anarchic Sultans, beautiful plastic men, azure apes, steel gods and acid death.</em></p>
<p>The second official <a href="https://melsonian-arts-council.itch.io/troika-numinous-edition">Troika!</a> <a href="https://melsonian-arts-council.itch.io/fronds-of-benevolence">chapbook</a>.&nbsp;45 pages, 36 new backgrounds and 36 new enemies come together to create&nbsp;a new and&nbsp;acid-stained world for you to explore.</p>
<p>Written by Luke Gearing (Fever Swamp) and illustrated by David Hoskins.</p>
<p>Physical book available from&nbsp;<a href="http://www.melsonia.com/" rel="nofollow noopener" referrerpolicy="origin">www.melsonia.com</a>&nbsp;</p>
<p>&nbsp;Book Details
</p>
<ul><li><strong>Written </strong>by Luke Gearing<strong>&nbsp;</strong></li><li><strong>illustrated</strong>&nbsp;by&nbsp;David Hoskins</li><li><strong>PDF:</strong>&nbsp;45 pages</li><li><strong>Publisher:</strong>&nbsp;Melsonian&nbsp;Arts Council (2020)</li><li><strong>ISBN:&nbsp;</strong>978-0-9957567-6-2</li></ul>

[img width=500 [https://img.itch.zone/aW1nLzQzMzk2ODQuanBn/original/7TgiMs.jpg]]
<figure><img class="custom-bit" src="https://img.itch.zone/aW1nLzUzODIyODkuZ2lm/original/7UOi2q.gif" style="color: inherit; font-size: inherit" loading="lazy"><br></figure>
<p class="text-center">Teach an AI named Bit to make a perfect procedural world.&nbsp;</p>
<p class="text-center"><br></p>
<p><img class="custom-screenshot" src="https://img.itch.zone/aW1nLzUzODIzMzgucG5n/original/t3jvYx.png" loading="lazy"><br></p>
<p class="text-center"><br></p>
<p class="text-center">A casual experience of exploring the unknown, and talking for a bit.</p>
<p class="text-center"><br></p><p>
</p><p><img class="custom-screenshot" src="https://img.itch.zone/aW1nLzYyOTA0MjkucG5n/original/sD6YUW.png" loading="lazy"><br></p>
<p class="text-center"><br></p>
<p class="text-center">A game by <strong><a href="https://justcamh.itch.io/" target="_blank">JUSTCAMH</a></strong> with music by <strong><a href="https://soundcloud.com/clockmaker1" target="_blank" rel="nofollow noopener" referrerpolicy="origin">ClockMaker</a></strong></p>
<p class="text-center">Part of the <a href="https://itch.io/b/812/care-package-bundle" target="_blank"><strong>Care Package Bundle</strong></a>, get 7 wholesome games for $7</p>
<p class="text-center"><a href="https://itch.io/b/812/care-package-bundle" target="_blank"><img src="https://img.itch.zone/aW1nLzUzOTAxNTgucG5n/original/pojznZ.png" loading="lazy"></a><br></p>
<p class="text-center"><br></p>
<p class="text-center"></p>
<div class="text-center"><iframe width="500" height="281" frameborder="0" src="https://www.youtube.com/embed/zH8BNYayM4Y" allowfullscreen=""></iframe></div>
<p class="text-center"><br></p>
<p class="text-center">~1 hour of game</p>
<p class="text-center">Recommended; A dedicated GPU + multicore CPU + 4GB memory</p>
<p class="text-center"><br></p>
<p class="text-center"><img class="custom-bit2" src="https://img.itch.zone/aW1nLzUzODI1NjUuZ2lm/original/c6z%2FaU.gif" loading="lazy"><br></p>
<p class="text-center"><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/zH8BNYayM4Y" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTM1NjE0LzUzODI2MTYucG5n/original/1evMU7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTM1NjE0LzUzODI2MTgucG5n/original/w6myNR.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTM1NjE0LzUzODI2MjMucG5n/original/eCgAz1.png]]
<h2 class="text-center">Exploration, brawls, strange chimeras, a heist in a thieves' school, kobolds making ice cream, a&nbsp;sports&nbsp;game...&nbsp;these good-natured adventures overflow with twists and turns but fit on one&nbsp;page.<span></span></h2>
<p>These adventures were written and (mostly) illustrated by <a href="http://janvanhouten.itch.io" target="_blank">Jan Van Houten</a>, edited and laid out by <a href="http://nicolas.folliot.net" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Nicolas Folliot</a>. They are compatible with your favorite TTRPG, but if you want to take the opportunity to discover a new one, there's <a href="http://jdrlab.itch.io/sodalitas" target="_blank"><em>Sodalitas</em></a><em></em>, a tiny tabletop roleplaying game to play for an hour or so with too many young players.</p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzc4NzAxMjQucG5n/original/nOrKf3.png" loading="lazy"><br></p>
<p>Thanks to a progressive financing of this first season, we were able to invite several illustrators of wide variety of styles and backgrounds to come and draw some adventures (in chronological order):</p>
<ul><li><a href="https://www.instagram.com/francois_maumont/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">François&nbsp;Maumont</a>&nbsp;(<em>The Baron's First Dungeon</em>, adventure #8)
</li><li><a href="https://www.instagram.com/evlynmoreau/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Evlyn&nbsp;Moreau</a>&nbsp;(<em>Magus Moreau's Island</em>, adventure #9)<br>
</li><li><a href="https://www.instagram.com/elodie_shanta/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Élodie&nbsp;Shanta</a>&nbsp;(<em>Mysteries &amp; Tentacles</em>, adventure #11)<br>
</li><li><a href="https://guypradel.fr/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Guy&nbsp;Pradel</a>&nbsp;(<em>The Elven Temple</em>, adventure #9)<br>
</li><li><a href="http://helkarava.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Helkarava</a>&nbsp;(<em>Wizard Tower for Sale</em>, adventure #14)</li><li><a href="https://www.instagram.com/sax_la_bagarre/" target="_blank" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">Sax la Bagarre</a>&nbsp;(<em>The Game</em>, adventure #15)</li></ul>
<h4 class="text-center"><img src="https://img.itch.zone/aW1nLzc4NzAyNzAucG5n/original/VG%2Byuz.png" loading="lazy"></h4>
<h4>Are you an educator?</h4>
<p>These adventures as well as the game&nbsp;<em>Sodalitas</em>&nbsp;have been designed for you, and we want you to be able to get as many children as possible playing, so for you it's free if you want it! Just send a message to <a href="mailto:aventures-sodalitas@jdrlab.fr" target="_blank" rel="nofollow noopener" referrerpolicy="origin">aventures-sodalitas@jdrlab.fr</a> to introduce yourself.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzczMjU5Lzc4NzAyNjYucG5n/original/SK%2Bd4H.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzczMjU5Lzc4NzAxMTMucG5n/original/gLpi9T.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzczMjU5Lzc4NzAxMTAucG5n/original/eVf32n.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzczMjU5Lzc4NzAxMTEucG5n/original/LDi3nN.png]]
<h2>About This Game</h2>
<p> Humanity has all but disappeared from its original planet and home, with only its remnants remaining loosely scattered across the cosmos. Those who were not worthy did not graduate the cycle. By chance encounter with an intelligent being, you begin your journey to unravel the great mystery of the universe itself.</p>
<p><strong>After The End: The Harvest</strong> is an expansive open-universe style RPG with the classic look and feel of a classic action adventure game.</p>
<p><strong>Key Features</strong></p>
<ul><li>A unique &amp; non-linear story-driven experience
</li><li>Combines open-world game elements and classic RPG aesthetics
</li><li>Action RPG Combat with Rune/Socketing system
</li><li>100+ weapons,armors and spells
</li><li>Plenty of unique planets to discover, towns to explore and secrets to unearth
</li><li>Over 100 unique monsters to catch, train, and battle
</li><li>A plethora of side quests to explore
</li><li>Two Modes with varying difficulty levels (Story Mode, Adventure Mode)
</li><li>Two endings to unlock
</li><li>New Game+
</li><li>Real-time spaceship combat</li></ul>
<p>How will you be remembered?<br>Will you kill, or be kind to those that you encounter?</p>
<p>Go anywhere and do anything.<br>The Universe is yours to do what you wish!</p>
<p><strong>This purchase includes the official 300+ page Official Strategy Guide (CODEX) + Apollo Prequel (DLC) Game is also available on Steam.</strong></p>
<div class=""><iframe style="width: 500px; height: 281px" src="https://www.youtube.com/embed/l4Fi7Lk3qUQ" frameborder="0" allowfullscreen=""></iframe></div>
<div class=""><iframe style="width: 500px; height: 281px" src="//www.youtube.com/embed/MqSmiKBGYK4" frameborder="0" allowfullscreen=""></iframe></div>

<iframe width="720" height="450" src="https://www.youtube.com/embed/l4Fi7Lk3qUQ" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjAzMzIzLzM5MTI2NDUuanBn/original/SjJOaK.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzMzIzLzM5MTI2NTMucG5n/original/8mK16H.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzMzIzLzM5MTI2NDguanBn/original/0uAvg5.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzMzIzLzM5MTI2NTEuanBn/original/TiC%2BW2.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzMzIzLzM5MTI2NDcuanBn/original/ak%2Bwf5.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzMzIzLzM5MTI2NDYuanBn/original/aEJ%2FWf.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzMzIzLzM5MTI2NDkuanBn/original/3qwYEJ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzMzIzLzM5MTI2NTIucG5n/original/jgloNe.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzMzIzLzM5MTI2NTYucG5n/original/btJSif.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzMzIzLzM5MTI2NTAuanBn/original/iqtJyc.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzMzIzLzM5MTI2NTcucG5n/original/ujcnPo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzMzIzLzM5MTI2NTUucG5n/original/%2Bn1pRG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzMzIzLzM5MTI2NTQucG5n/original/Nhc5EM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzMzIzLzM5MTI2NTgucG5n/original/FRTX16.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzMzIzLzM5MTMwMjYuanBn/original/gIwECm.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzMzIzLzM5MTMxMDcuanBn/original/ttvdU1.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzMzIzLzM5MTMxMDguanBn/original/Kge7zu.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzMzIzLzM5MTMxMTAuanBn/original/kL4ke%2B.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzMzIzLzM5MTMxMDkuanBn/original/oKox0t.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzMzIzLzM5MTMxMjUuanBn/original/Y4gphY.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzMzIzLzM5MTMxMjYuanBn/original/h5jiiD.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzMzIzLzM5MTMxMjQuanBn/original/uStzKE.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzMzIzLzM5MTMxMjIuanBn/original/V957iA.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzMzIzLzM5MTMxMjMuanBn/original/L%2Fj98F.jpg]]
<p><strong>It's been ten years since the war. 
</strong></p>
<p>It's been ten years since the war. The Song was our enemy, a memetic virus which indoctrinated its victims into the Great Choir. The Song spread like a galactic cancer and overran the defenses of our multi-species Galactic Union. The Earth was scorched, Martian domes cracked, and the Belt was broken.</p>
<p>Millions of survivors fled our ruined homeworlds on the Exodus Fleet. We developed a terrible memetic weapon to strike back at the Great Choir. Now the song is dormant and we have a chance to rebuild on the frontier world of Polvo.</p>
<p>We'll never be able to replace what we've lost, but at least the millions of survivors have a chance for a new beginning.</p>
<p><strong>After the War</strong> is a tabletop science-fiction roleplaying game of memetic horror. Ten years after the galactic war, millions of survivors try to rebuild on the frontier world of Polvo. They seek to guard their new homes from internal strife and the psychic fallout from the war. In this game you are…</p>
<ul><li><strong>Survivors</strong> of the galactic war, who refused to surrender to the horror.&nbsp;&nbsp;</li><li><strong>Protectors </strong>who shelter your fragile new community from danger.&nbsp; &nbsp;&nbsp;</li><li><strong>Believers</strong>, whose passionate hearts and fervent convictions drive them.&nbsp; &nbsp;</li><li><strong>Dreamers</strong>, with a vision of a brighter future lighting your way.</li></ul>
<p>After the War is a game of memetic horror, where even your own mind can betray you. It's a tabletop roleplaying game of community, trauma, and healing, where players learn how to lead with compassion.</p>
<ul><li><strong><em>2-5 Players </em></strong></li><li><strong><em>1 Game Master</em></strong></li><li><em><strong>2-4 Hours per Session</strong></em></li><li><em><strong>1-12 Sessions per Campaign</strong></em></li></ul>

[img width=500 [https://img.itch.zone/aW1nLzQ5NjI0MzEuanBn/original/lQnnL4.jpg]]
<h2>PLAYTEST MATERIAL</h2>
<p>This is the playtest version of the Against the&nbsp;Fall of Night TTRPG.&nbsp; More about the playtest status&nbsp;can be found below.&nbsp; What this means, in short, is that you can expect limited or no art, formatting, and incomplete rules all over the place.&nbsp; Your one-time purchase will entitle you to all playtest updates made, right up until the final playtest version.&nbsp;&nbsp;The final playtest version will be the complete text of the game, but will be missing elements like art and layout.&nbsp; The release version will be available separately when it is completed.</p>
<h1>Against the Fall of Night</h1>
<p>Against the Fall of Night (AFN) is a TTRPG about fighting against the coming darkness.&nbsp; The Night will fall.&nbsp; You can't stop it.&nbsp; That the fight is impossible makes it no less important.&nbsp; You can't stop the Night, but by bringing together and protecting as much as you can, you can keep the world together long enough to see the Dawn.</p>
<p>In the world of AFN, Night does not refer merely to what happens when the sun goes down.&nbsp;&nbsp;Night is an existential force, the terror that lies beyond, the darkness from without, a force and a place that is not of our world, but that wants very badly to make our world like it.&nbsp; Every day when the world shelters your view from the sun, that's not Night.&nbsp; That's just an ordinary night.&nbsp; Night is a longer cycle, when darkness creeps out from the places between shadows.&nbsp; When silence rings out, clear as a bell.&nbsp; When every mistake you have made, every fear you have, every dream you have been denied, rushes into your thoughts with crystal clarity.&nbsp; These things are the first stirrings of a true Night.&nbsp; Night is a slow corruption of the normal, a destruction of safety, a denial of predictability.&nbsp; When you hear a strange noise at 3 am, it could be anything.&nbsp; In the clear light of day, that was obviously just the house settling.&nbsp; At 3 am, it could have been an intruder or a monster or an extradimensional rift.&nbsp; These impressions are the leakage of true Night into any ordinary night.&nbsp; In an ordinary night, it is a passing fear, pushed away and laughed at nervously later.&nbsp; In true Night; who can say what fear might reveal, or what might pass through the darkness?</p>
<p>Night has fallen before, and it will fall again.&nbsp; Every time, the Dawn has come, its clear light banishing the Night.&nbsp; By default, an AFN campaign is set at&nbsp;Nightfall, when the Night is just beginning.&nbsp; Will your heroes be able to defend the world against the encroaching Night, and protect it long enough for Dawn to end this cursed Night?&nbsp; Will Night find a way to banish the light of hope, and prevent the Dawn from ever arriving?</p>
<p>Night falls, but heroes rise.&nbsp; In AFN, you play those heroes.&nbsp; With unique yet intuitive mechanical innovations, AFN keeps combat fresh and interesting without bogging itself down in the details.&nbsp; Powered by the Nightfall Engine, AFN aims to make sure that every choice offered to a player is an interesting choice; we don't believe that you need to waste your time making obvious choices or false choices.&nbsp; Resolution is quick and easy, using a system of Tests and Checks; Tests are rolled on a d20 and always have a fixed target number (10), while Checks are rolled on 2d6 and have varied TN by difficulty.&nbsp; In combat, characters spend Attack Points, Defense Points, and Magic Points to use combat techniques and cast spells, allowing all characters to make interesting choices with every action they take; but make sure you don't leave yourself open, as an attack that catches you off guard can cause serious harm to even an experienced hero.</p>
<p>In addition to the playtest document, a short introductory adventure is included, Heroes Rise.&nbsp;&nbsp;The heroes have found a village that has become a Nightmare.&nbsp; They must find the Anchor and defeat it to cleanse the Nightmare.</p>
<h2>PLAYTEST MATERIAL</h2>
<p>This is a playtest document.&nbsp; The current version is Playtest 0.1.&nbsp; Playtest 0.1 contains a full and complete core game system, along with multiple classes fully playable from level 1-6.&nbsp; (The level cap in AFN is 6.)</p>
<p>A selection of feats, spells, rituals, combat techniques, monsters, and magic items are included.&nbsp; Further expansion of these elements are planned.</p>
<p>Hints at what a setting region might be like are included.&nbsp; Expansion of the setting is planned.</p>
<p>One complete random generation table for Nightmare elements is included.&nbsp; Further expansions of these tables is planned.</p>
<p>There is no art included, and no editing, layout, or sensitivity reading has been performed on the playtest document.&nbsp; It is basically just text.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTExMzM2My82NDM1MTg1LnBuZw==/original/2B988m.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTExMzM2My82NDM1MTg3LnBuZw==/original/vQnYhh.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTExMzM2My82NDM1MTg2LnBuZw==/original/Zn1cNh.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTExMzM2My82NDM1MTg0LnBuZw==/original/%2BNRZDE.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTExMzM2My82NDM1MTgzLnBuZw==/original/pV%2FE0n.png]]
<hr>
<p>Air Dasher is Fast!</p>
<p>Air Dasher is Fluid!</p>
<p>Air Dasher is Platformer!</p>
<p>Air Dasher has 60 levels!</p>
<p>Air Dasher is on Android!</p>
<p><br></p>
<p>By AntonMakesGames</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA3MDc4LzgyOTQ3MzQuZ2lm/original/7uVxuS.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3MDc4LzgyOTQ0NTUuZ2lm/original/9ZdZTp.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3MDc4LzgyNzc4ODUuanBn/original/Gzq4Vc.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3MDc4LzgyOTQyNTEuanBn/original/BTwK2m.jpg]]
<h3 class="text-center">First-Person Sci-Fi Roguelite Dungeon in Space</h3>
<p class="text-center"><em>As an alien animal control specialist, wrangle up all of those vicious loose beasties on the Alien Life Lab Space Station using your stun pistol, stun shotgun and bio-sword. What caused the outbreak? Who knows?! It's up to you to find out!</em><em><span class=""><br></span></em></p>
<p class="text-center">We're still in early access so hit follow to get devlogs and announcements as the game evolves.<br><em></em><em></em></p><p><br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzMwNjQ5OTcucG5n/original/DhkoMl.png" loading="lazy"></p>
<ul><li>Tranquilize hostile aliens with <strong>3 Different Weapons</strong>: <strong>Sci Fi Pistol, Shotgun and Sword!
</strong></li><li><strong>Physics based</strong> bullets and gimmicks<strong>!<br></strong></li><li>Find <strong>survivors</strong> and tag <strong>aliens </strong>to earn credit coins!
</li><li><strong>7 Levels </strong>(<strong>4 </strong>Dungeons + <strong>3 </strong>Boss Scenes)!</li><li>Procedural Generation to give you a unique play-through!</li><li><strong>20 </strong>Different <strong>Voice Phrases</strong>!</li><li><strong>XBox Game Pad</strong> Friendly!</li></ul>
<ol class="text-center"><img src="https://img.itch.zone/aW1nLzgyMTIxNjQuanBn/original/7GKuIw.jpg" loading="lazy"><br></ol>

<iframe width="720" height="450" src="https://www.youtube.com/embed/PogNbyWIDvk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDk2NDQyLzc2NDE4NjQucG5n/original/SAeIHJ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDk2NDQyLzgxNzE2MzgucG5n/original/%2Fdfi1o.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDk2NDQyLzc4MDMzODMucG5n/original/2aWiyv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDk2NDQyLzc4MDMzODQucG5n/original/gm7k2x.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDk2NDQyLzc4MDMzODUucG5n/original/%2Frpo%2Bx.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDk2NDQyLzc4MDMzODIucG5n/original/fv%2B7wb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDk2NDQyLzc4MDMzODEucG5n/original/pxH%2BvG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDk2NDQyLzc4MDMzODYucG5n/original/tv4Fk1.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDk2NDQyLzgxNzE2MzYucG5n/original/%2FR9Q8m.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDk2NDQyLzQ3NDk4NjIucG5n/original/l3E3aO.png]]
<<list-links "[has:field[url]sort[title]]">>
<<list-links "[has:field[url]!sort[rating]]">>
<p>A gm-less, storytelling, D<em>escended From the Queen&nbsp;</em>game&nbsp;for three to six people&nbsp;about&nbsp;&nbsp;a ship, its crew, and the sea they sail on. It is a game about the relationships between those people, about relying on each other, about being an individual in a team.</p>
<p>Includes 52 story prompts and 12 public domain illustrations to be used as inspirations for your ship.</p>
<p></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI3NDAyNi83NjU3MTEwLmpwZw==/original/kNIW8A.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI3NDAyNi83NDE3OTc2LnBuZw==/original/hHsKXt.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI3NDAyNi83NDE3OTc5LnBuZw==/original/s09LW8.png]]
<p>A tabletop game about exploring the archive of a defunct network of webpages from decades ago.<br></p>
<p>This is a hack of Takuma Okada's <a href="http://noroadhome.itch.io/alone-among-the-stars">Alone Among the Stars.</a></p>
<p>Inspirations include <a href="https://jay-tholen.itch.io/hypnospace-outlaw" target="_blank">Hypnospace Outlaw</a> and the <a href="https://archive.org/index.php" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Internet Archive</a>.<br></p>
<p><br>For 1+ Players. <br></p>
<p>Uses a six-sided die and a 52 card deck of playing cards.</p>
<p><br></p>
<p><strong>If you like this game, you may also like:</strong></p>
<p><a href="https://noroadhome.itch.io/alone-in-the-ancient-city" target="_blank">Alone in the Ancient City</a></p>
<p><a href="https://jay-tholen.itch.io/hypnospace-outlaw" target="_blank">Hypnospace Outlaw</a></p>
<p><a href="https://janiejaffe.itch.io/routines" target="_blank">Routines</a><br></p>

[img width=500 [https://img.itch.zone/aW1nLzI1Njg2MjkucG5n/original/0sr5zh.png]]
<p><em>Alone in the Dungeon</em> is a hack of Takuma Okada's <a href="https://noroadhome.itch.io/alone-among-the-stars" target="_blank"><em>Alone Among the Stars</em></a>.&nbsp;In&nbsp;it,&nbsp;you are a&nbsp;Dungeon&nbsp;Delver,&nbsp;a&nbsp;solitary&nbsp;individual&nbsp;who&nbsp;ventures&nbsp;into the&nbsp;depths&nbsp;below&nbsp;the&nbsp;surface&nbsp;seeking treasure.</p>
<p>A standard deck of 52 cards and a six-sided die are used for your explorations. You can make a journal of what you find along the way. If you want, you can keep the journal, but you don't have to.</p>
<p>Cartography by Dyson Logos, some artwork copyright William McAusland, used with permission.</p>
<p>Want some ideas as to what to find in a dungeon? We have a number of supplements intended to help on DriveThruRPG. <a href="https://bit.ly/2ZmN9g6" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Click here</a> to see them.</p>
<p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/rEqOccSyLfw" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjgyMzE1LzM3NTI0MDEuanBn/original/ouzUew.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjgyMzE1LzM3NTI0MDUuanBn/original/a4Jgl0.jpg]]
<h1>About the Game</h1>
<p>Can love bloom on a doomed space colony? <strong>Alone With You</strong> is the tragic sci-fi follow-up to indie horror hit <em><a href="https://benjaminrivers.itch.io/home">Home</a></em>, in which you discover the fate of your crumbling installation with the help of a very emotive AI companion and four fully-realized holograms. Providing a rich story that adapts to your choices, <em>Alone With You</em> is the Space Quest-meets-OK Cupid adventure game you never knew you wanted — until now!</p>
<h1>Features</h1>
<ul><li>Over a dozen missions, multiple endings, and some surprising decisions provide a story you can sink your teeth into and experience multiple times</li><li>A love letter to the Sega CD — vibrant, colourful 16-bit visuals and detailed cut-scene vignettes paint a beautiful sci-fi universe</li><li>Completely original soundtrack with more than 30 foot-tapping, otherworldly tunes</li><li>Accessibility features: separate music/sound effects volume sliders; full-screen/windowed modes; simultaneous keyboard/controller support</li></ul>
<h1>Press</h1>
<h5><a href="https://www.destructoid.com/review-alone-with-you-381611.phtml" target="_blank" rel="nofollow noopener" referrerpolicy="origin">8/10&nbsp;– “Latches onto your heart and never lets go.”</a>&nbsp;<br>— Destructoid</h5>
<h5><a href="http://www.gamespot.com/reviews/alone-with-you-review/1900-6416503/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">8/10&nbsp;– “... Impactful scenes that shine thanks to a stellar script.”</a><br>— Gamespot</h5>
<h5><a href="http://www.theverge.com/2016/8/23/12609186/alone-with-you-ps4-vita-sci-fi-romance-game" target="_blank" rel="nofollow noopener" referrerpolicy="origin">“A romantic adventure game by way of&nbsp;Star Trek”</a><br>— The Verge</h5>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/A_HKHxOpzSY" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjQ0Njc0LzExNjg3NDEucG5n/original/fUerEP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjQ0Njc0LzExNjg3NDIucG5n/original/uRl3Au.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjQ0Njc0LzExNjg3NDMucG5n/original/CiL0AE.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjQ0Njc0LzExNjg3NDQucG5n/original/Cupq4s.png]]
<h4 class="text-center"></h4>
<h3 class="text-center">An audio mystery set in a time loop. Record, rewind time and broadcast snippets of radio shows to expose radio hosts, conspiracy theorists and politicians.</h3>
<p><br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzIxMTU2NTkuZ2lm/original/Ef4%2F%2FC.gif" loading="lazy"><br></p>
<p><br></p>
<h4><img src="https://img.itch.zone/aW1nLzIwMDM2MTQucG5n/original/fIlc%2Be.png" loading="lazy"></h4>
<p><strong>Alt-Frequencies</strong> is an audio-based game, revolving around radio stations that reset every 3 minutes. Populated with all sorts of different characters and personalities, players get an intimate look into the lives of radio hosts, conspiracy theorists, students, politicians, underground activists, train station managers - and a dog.<br></p>
<p>By redistributing information, you change what happens in the next 3 minute time loop and impact both news cycles and the lives of the people behind them.</p>
<p>Listen as their personal stories evolve, in a world that seems to stand still.</p>
<p><img src="https://img.itch.zone/aW1nLzIwMDM2MTYucG5n/original/JL20Mn.png" loading="lazy"><br></p>
<ul><li>A new kind of narrative game that blurs the lines between the fantastical and the everyday while examining our relationship with mainstream media through the prism of radio stations.</li><li>Built-in accessibility features that make the game available to a wide range of people - including blind and visually impaired players.</li><li>Brought to life by a diverse cast of 20+ amazing voice performers, including TV, podcasts and YouTube personalities such as Jasika Nicole (Fringe, Welcome to Night Vale).</li><li>By <strong>Accidental Queens</strong>, the studio behind the critically acclaimed <strong>A Normal Lost Phone</strong> and <strong>Another Lost Phone: Laura’s Story</strong>, and co-produced with ARTE, the European cultural network.</li></ul>
<p><span></span></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/NRTp8h3HD2U" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDAzNjMwLzIxMTUxMDkucG5n/original/p9u1NK.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDAzNjMwLzIxMTUxMTAucG5n/original/H03QTn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDAzNjMwLzIxMTUxMTEucG5n/original/knQV3l.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDAzNjMwLzIxMTUxMTIucG5n/original/IHC0E6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDAzNjMwLzIxMTUxMTMucG5n/original/j4FIDB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDAzNjMwLzIxMTUxMTQucG5n/original/skNLMw.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDAzNjMwLzIxMTUxMTUucG5n/original/AFKJ02.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDAzNjMwLzIxMTUxMTYucG5n/original/13z0NF.png]]
<p>Gentle and unobtrusive, designed for focused thought and relaxing background music. Great for puzzle games, space themes, and more!</p>
<p>8 songs with loopable versions, 53 sound effects &amp; stingers.</p>
<p><strong>Music and SFX Previews:</strong> <a href="https://soundcloud.com/chrislsound/sets/ambient-puzzle-musicsfx-pack" title="https://soundcloud.com/chrislsound/sets/ambient-puzzle-musicsfx-pack" rel="nofollow noopener" referrerpolicy="origin">https://soundcloud.com/chrislsound/sets/ambient-puzzle-musicsfx-pack</a></p>
<p><strong>MUSIC </strong><em>(.wav - stereo, 44.1kHz, 16bit)</em></p>
<ul><li>Level 1 <em>(3:56)</em></li><li>Level 1 Loop <em>(3:53)</em></li><li>Level 2 <em>(3:55)</em>
</li><li>Level 2 Loop <em>(3:53)</em></li><li>Level 3 <em>(3:58)</em>
</li><li>Level 3 Loop <em>(3:53)</em></li><li>Level 4 <em>(4:00)</em>
</li><li>Level 4 Loop <em>(3:53)</em></li><li>Level 5 <em>(3:57)</em>
</li><li>Level 5 Loop <em>(3:53)</em>
</li><li>Level 6 <em>(3:56)</em>
</li><li>Level 6 Loop <em>(3:53)</em>
</li><li>Level 7 <em>(3:56)</em>
</li><li>Level 7 Loop <em>(3:53)</em>
</li><li>Level 8 <em>(3:57)</em>
</li><li>Level 8 Loop <em>(3:53)</em>
</li></ul>
<p><strong>SFX</strong> <em>(.wav - stereo, 44.1kHz, 16bit)</em>
</p>
<ul><li>Menu Open</li><li>Menu Close</li><li>Menu Confirm</li><li>Menu Cancel</li><li>Menu Reject</li><li>Menu Navigate 1-2
</li><li>Flip 1-4</li><li>Slide 1-4
</li><li>Collide 1-4</li><li>Success 1-4 (4 variations each, 16 total SFX)
</li><li>Fail 1-4 (4 variations each, 16 total SFX)
</li><li>Victory Jingle</li><li>Defeat Jingle</li></ul>
<p><strong>Contact: </strong>ChrisLSound@gmail.com
</p>
<p>If you have any requests or are interested in hiring me for custom music/SFX, please send me an email!
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjgwNTYyLzEzNjE3ODcuanBn/original/Ydg2VG.jpg]]
<p class="text-center"><strong><a href="http://www.patreon.com/twoandahalfstudios" rel="nofollow noopener" referrerpolicy="origin">Patreon</a>&nbsp;|&nbsp;<a href="https://twitter.com/TwoHalfStudios" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter</a>&nbsp;|&nbsp;</strong><a href="https://discord.gg/XWJt2ad" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong>Discord</strong></a></p>
<p><strong><a href="https://twoandahalfstudios.itch.io/amelie/devlog/345505/post"><img src="https://img.itch.zone/aW1nLzgxMjIwNTAucG5n/original/NH6qN5.png" loading="lazy"></a></strong><br></p>
<p><a href="https://discord.gg/XWJt2ad" target="_blank" rel="nofollow noopener" referrerpolicy="origin"></a></p>
<h2>In the middle of a field, far out in the countryside, sits a lone manor.</h2>
<h3><strong>That's the way it's always been. Always will be.</strong></h3>
<p><strong>Then why is she here?</strong></p>
<p>Why have you let her come?&nbsp;</p>
<p><br></p>
<p>&nbsp;<img src="https://img.itch.zone/aW1nLzgxMjE5NzkucG5n/original/uqiMow.png" loading="lazy"><br></p>
<p>In the middle of a field, far out in the countryside, sits a lone manor.
</p>
<p>Inside that manor, in the middle of the field, far out in the countryside, lives Amelie and her dear friend Lilika.
</p>
<p>Forbidden from leaving the house, Amelie awaits the arrival of her long time penpal, Sofia, to Lilika’s dismay.
</p>
<p>What secrets will Sofia unravel that were best kept buried?
</p>
<p>And will she manage to survive the night?
</p>
<p>Play as three different protagonists to uncover the full story and discover the truth about the lone manor.<br></p>
<p><br></p>
<p><br></p>
<figure><strong><img src="https://img.itch.zone/aW1nLzgxMjE5ODMucG5n/original/fJvdqW.png" loading="lazy"></strong></figure>
<p>🌸&nbsp;<strong>A short, spooky story:</strong>&nbsp;At around <em>20,000 words/1 - 1.5 hours of playtime</em>, Amelie is a short (and not so sweet) story about two girls in love, and another who lost her love.<br><br>🌸<strong>Captivating visuals</strong>: You'll be pulled right into the story with original illustrations by Alyssa Calderon and 瞬.<br><br>🌸&nbsp;<strong>Three playable characters:</strong>&nbsp;You'll play as three different characters... Amelie, Sofia, and finally Lilika, to uncover the full story about what happened in the lone manor.<br><br>🌸&nbsp;<strong>Gorgeous Music:</strong>&nbsp;Listen as the music accentuates Amelie's scenes, making both the heartwarming and slightly terrifying scenes come to life.</p>
<p><br></p>
<p><strong><iframe src="https://store.steampowered.com/widget/1835810/?t=Forbidden%20from%20leaving%20the%20house%2C%20Amelie%20awaits%20the%20arrival%20of%20her%20long%20time%20penpal%2C%20Sofia%2C%20to%20her%20dear%20friend%20Lilika%E2%80%99s%20dismay.%20What%20secrets%20will%20Sofia%20unravel%20that%20were%20best%20kept%20buried%3F" frameborder="0" width="646" height="190"></iframe><br></strong></p>
<details>
<summary><strong>Content Warnings:</strong></summary>
<ul><li>Jump scares</li><li>Suicide
</li><li>Obsession
</li><li>Death/Blood/Bones/Gore</li><li>Stalking
</li><li>Pandemic mentioned</li><li>Flashing images</li><li>Brief domestic abuse</li></ul>
</details>
<p><br></p>
<p>This game was created in two months for <a href="https://itch.io/jam/yuri-game-jam-2021" target="_blank">Yuri Game Jam 2021</a>.&nbsp;</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI2OTk2NC83NDE2NjExLnBuZw==/original/eqPxS9.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI2OTk2NC83NDE2NjEwLnBuZw==/original/9CDzQh.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI2OTk2NC83NDE2NjA5LnBuZw==/original/fmzq5W.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI2OTk2NC83NDE2OTUxLnBuZw==/original/IHG8Si.png]]
<p><strong><em></em></strong></p>
<h2 class="text-center"><strong><em>Available now!&nbsp;&nbsp;Check out the demo!</em></strong></h2>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzc2NDQwMDkuZ2lm/original/obx4RR.gif" loading="lazy"></p>
<p class="text-center">It's been your family tradition to go to that one farm and buy that one Christmas tree.&nbsp;&nbsp;</p>
<p class="text-center">This year, some jerk sent her huge robot to buy it.&nbsp;</p>
<p class="text-center">After a huge argument, you let the robot take the tree and you storm off.&nbsp;</p>
<p class="text-center">But then, the robot shows up at your doorstep, fighting against his programming to secure the tree just to give it to you.&nbsp;</p>
<p class="text-center">You talk to the robot, and start to get to know him better.&nbsp;</p>
<p class="text-center">Where will this lead? Who knows.&nbsp;</p>
<p class="text-center"><strong><em>But one thing is for certain: your Christmas won't be so lonely this year...</em></strong></p>
<ul class="text-center"><li>A sci-fi holiday romance-or-friendship narrative adventure</li><li>Teach a burly robot man the true meaning of love
</li><li>It can be romantic love or platonic love, whichever you prefer
</li><li>Get into the holiday spirit!</li></ul>
<p class="text-center">~*~</p>
<p>NOTE: this game contains some mentions of death and abuse (and overcoming both!).&nbsp; Also, possible robot romance.&nbsp; In case you didn't catch that part.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/N3YCMej8JKg" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMxMDQ4MC83NjIxMjg3LnBuZw==/original/vmJt77.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMxMDQ4MC83NjIxMjg5LnBuZw==/original/IcyeC8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMxMDQ4MC83NjI5MzY1LnBuZw==/original/ROnRzm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMxMDQ4MC83NzEzNjM1LnBuZw==/original/KkSW1a.png]]
<p>In this top down RPG, your objective is to make your flight on time. You've got an hour to check a bag, get through TSA, and make it to your gate before your flight leaves. But be ready, because every possible fear you've ever had about air travel is about to happen to you!</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/Ay0CuvT8LR0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTQxNDU2LzI4MjQyMTAucG5n/original/wOPu8N.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQxNDU2LzI4MjQyMTMucG5n/original/bdlrgX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQxNDU2LzI4MjQyMTQucG5n/original/I2Nb9U.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQxNDU2LzI4MjQyMDgucG5n/original/Se8VWN.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQxNDU2LzI4MjQyMTUucG5n/original/gUmAn0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQxNDU2LzI4MjQyMTIucG5n/original/%2B2AfAB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQxNDU2LzI4MjQyMTEucG5n/original/kv2tHC.png]]
<h2><img src="https://img.itch.zone/aW1nLzI2MzgxMDMuanBn/original/951agI.jpg" style="" loading="lazy">You are a werewolf. But there are monsters worse than you in Hell’s Creek.</h2>
<p><strong>Nº of players:</strong> 1-2</p>
<p><strong>Genre:</strong> Beat’m’up</p>
<p><strong>Features:</strong></p>
<ul><li><strong></strong><strong>Spiritual successor to the 80s classic “An American Werewolf in London”.</strong></li><li>A tribute to genre references&nbsp;<a href="https://www.imdb.com/name/nm0000484/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">John Landis</a>,&nbsp;<a href="https://www.imdb.com/name/nm0596701/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Paul Naschy</a>&nbsp;and&nbsp;<a href="https://www.imdb.com/name/nm0000711/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Rick Baker</a>.</li><li>A <strong>frenetic arcade action videogame</strong> like classic arcades.</li><li><strong></strong><strong>Five levels</strong> of pure arcade action.</li><li><strong></strong><strong>More than 10 different enemies</strong> to defeat.</li><li><strong>Local multiplayer for two players.</strong></li><li><strong>Gratuitous violence.</strong></li><li><strong>Play it for free</strong> in the &nbsp;<a href="http://festivalislacalavera.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Isla Calavera Film Festival's</a>&nbsp; or <strong>download it here</strong>.</li></ul>
<p><img src="https://img.itch.zone/aW1nLzI2MzgwOTAuanBn/original/O82nyw.jpg" style="max-width: 100%" loading="lazy"></p>
<p class="text-center"><strong>SYNOPSIS</strong><br></p>
<p><em>1984. Young David Landis wants to leave Hell’s Creek.<br></em></p>
<p><em>When he’s about to leave his hometown in his convertible, Clementine Naschy, his highschool girlfriend, tries to stop him. He has a dream to fulfill: become a professional surfer in Los Angeles.&nbsp;</em></p>
<p><em>But teenage love is powerful and irrational, so Clementine decides to run away with him.</em></p>
<p><em>However, sheriff Naschy won’t allow his daughter to waste her life with a freak like David and he will do whatever is in his hands to prevent them from leaving Hell’s Creek.</em></p>
<p class="text-center"><strong><img src="https://img.itch.zone/aW1nLzI2MzgxMDcuZ2lm/original/KyxI3H.gif" style="max-width: 100%" loading="lazy"></strong></p>
<p><img src="https://img.itch.zone/aW1nLzI3MTEwNDEuanBn/original/kUjXlM.jpg" loading="lazy"></p>
<p><img src="https://img.itch.zone/aW1nLzI3MTEwMzcuanBn/original/1oWD1C.jpg" loading="lazy"><br></p>
<p>Intro music by Ozzed, game music by Wyver9.<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/uiy-KrN8FvI" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTEzMzg1LzI2Njc0NDAuanBn/original/UkyR8t.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEzMzg1LzI2Njc0MzguanBn/original/huerVv.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEzMzg1LzI2Njc0NTUuanBn/original/VJdAlG.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEzMzg1LzI2Njc0NTYuanBn/original/R4lC6v.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEzMzg1LzI2Njc0NTcuanBn/original/mGAwjh.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEzMzg1LzI2Njc0MzkuanBn/original/9ydUdS.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEzMzg1LzI2Njc0NDIuanBn/original/C0il3I.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEzMzg1LzI2Njc0NDEuanBn/original/8jXQxH.jpg]]
<p><em><img src="https://img.itch.zone/aW1nLzMyMjIzNDUucG5n/original/JL%2BhIR.png" loading="lazy"><br></em></p>
<p>a 10-minute long alt-literature delivery program <br></p>
<p>for windows<br></p>
<p>voices. choices. dust. rust.<br></p>
<p>///<br></p>
<p>writing, voice: <strong>Quinn K</strong></p>
<p>music, code, art: <strong>Jack King-Spooner<br></strong></p>
<p><strong>///</strong><br></p>
<p>BUY THE OST HERE<strong>, with two bonus tracks</strong><strong></strong><br></p>
<p>
</p>
<iframe style="border: 0; width: 100%; height: 120px" src="https://bandcamp.com/EmbeddedPlayer/album=461594284/size=large/bgcol=333333/linkcol=e32c14/tracklist=false/artwork=small/transparent=true/"><a href="http://jackking-spooner.bandcamp.com/album/an-outcry-an-soundtrack" rel="nofollow noopener" referrerpolicy="origin">An Outcry: An Soundtrack by Jack King-Spooner</a></iframe>
<p><em><br></em><em>did you, or did you not follow an outcry?<br></em></p>
<p><em></em><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjA3MDQxLzMyMjIzNzAucG5n/original/5Wfpfn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjA3MDQxLzMyMjIzMjkucG5n/original/6Qa8Sv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjA3MDQxLzMyMjIzMzAucG5n/original/HYzgTQ.png]]
<p></p>
<p>PHYSICAL COPIES AVAILABLE IN APRIL!</p>
<h2>What is&nbsp;Anamnesis?</h2>
<p>Anamnesis&nbsp;is a 24-page&nbsp;solo journaling RPG about self-discovery, reflection, and identity.</p>
<p>You play as an individual who has woken up with<strong> memory loss</strong>. You do not remember who you are, where you are, or what you care about.&nbsp;As you draw <strong>tarot cards</strong>, you fill the blank spaces of your <strong>past</strong> and learn more about your <strong>present</strong>.<br></p>
<p>All that is needed to play is a&nbsp;<strong>deck of tarot cards</strong>&nbsp;and a way to record your thoughts.</p>
<p>Included is:</p>
<ul><li>A PDF copy of Anamnesis (spreads &amp; pages)</li><li>A Designer's Commentary version of Anamnesis</li><li>An audiobook of Anamnesis, narrated by the author</li></ul>
<p><a href="https://open.spotify.com/playlist/1f0l9l3wyBpTWnwnSpEy2a?si=riOPD8ycSAmovJ6oohRhSw" target="_blank" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">Click here for a Spotify playlist of background music for&nbsp;Anamnesis.</a><br></p>
<p><br></p>
<h2>Praise for Anamnesis</h2>
<p>"Anamnesis sent me down an eye-opening rabbit hole as far as what a TTRPG could be. Tender, personal, thought-provoking, moving, terrifying, raw."</p>
<p><em>-&nbsp;<strong>Shawn Drake, designer of HEDGE and Court of Blades</strong></em></p>
<p><em></em></p>
<p><em>"As an author, I love the potential of Anamnesis to help me generate random fictional scenarios. As I played, it became obvious that the game could also be used for self-reflection. Samantha has created a unique, powerful experience - I absolutely recommend Anamnesis for everyone who loves stories."</em></p>
<p><strong><em>- Tanya Schofield, author of the Melody's Song trilogy</em></strong></p>
<p><strong></strong></p>
<p><em><em>"Anamnesis invites you to sway and stumble through a journey of Proustian discoveries. Dwelling in the quiet connections between loss, discovery, and renewal, the game guides you through the creation of a world that can bloom and welcome, overwhelm and frighten, asking with a quiet persistence: Who are you?"</em></em></p>
<p><em><strong>- Sean Patrick Cain, designer of Long Haul 1983</strong></em></p>
<p><br></p>
<h2>Interviews&nbsp;and Actual Plays</h2>
<p><a href="https://pod.link/planetarcana/episode/2d8162178f1a4e56921c3cb54dddcece" rel="nofollow noopener" referrerpolicy="origin">Planet Arcana</a> - Full actual play of Anamnesis, modified for 2-players.</p>
<p><a href="https://pod.link/planetarcana/episode/2d8162178f1a4e56921c3cb54dddcece" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://pbcdn1.podbean.com/imglogo/ep-logo/pbblog11649628/Podbean_Logo_FINAL_4mf3dq.jpg" alt="Planet Arcana" title="Planet Arcana" loading="lazy"></a><span></span></p>
<p><a href="https://anchor.fm/thelostbay" target="_blank" rel="nofollow noopener" referrerpolicy="origin">The Lost Bay Podcast</a>&nbsp;- Interview about the design process behind Anamnesis</p>
<div class=""><iframe width="500" height="281" src="https://www.youtube.com/embed/wwxJjRRck5M" frameborder="0" allowfullscreen=""></iframe></div>
<p><a href="https://www.stitcher.com/show/yes-indied-pod/episode/samantha-leigh-discusses-anamnesis-88110275" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Yes Indie'd</a> - Interview about Anamnesis and other work in the TTRPG world</p>
<p><a href="https://www.stitcher.com/show/yes-indied-pod/episode/samantha-leigh-discusses-anamnesis-88110275" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://i0.wp.com/www.yesindiedpod.com/wp-content/uploads/2020/06/Yes_Indied_Logo_1502x1502.png?fit=1501%2C1501&amp;ssl=1" alt="Interviews with indie tabletop roleplaying games creators - Yes Indie'd Pod" title="Interviews with indie tabletop roleplaying games creators - Yes Indie'd Pod" loading="lazy"></a><span></span></p>
<p><a href="https://www.youtube.com/watch?v=LP4uvCw48bw" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Draw Your Dice</a> - Interview about the TTRPG scene and a playthrough of Act 1\</p>
<p></p>
<div class=""><iframe width="500" height="281" src="//www.youtube.com/embed/LP4uvCw48bw" frameborder="0" allowfullscreen=""></iframe></div>
<p><a href="https://www.youtube.com/channel/UCJuq7Klg3_dbBKThC6KcbDw" target="_blank" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">Midgardia RPG</a>&nbsp;- Interview about Itchfunding with a demo of the game<br></p>
<p></p>
<div class=""><iframe width="500" height="281" src="//www.youtube.com/embed/biyN2N0Ym2E" frameborder="0" allowfullscreen=""></iframe></div>
<h4></h4>
<p>Anamnesis&nbsp;was successfully Itchfunded, which allowed the game to have an artist, editor, and layout artist. Thank you to everyone who helped make this game possible!</p>
<p><br></p>
<p>Anamnesis was also <a href="https://www.kickstarter.com/projects/samanthaleigh/anamnesis-a-tarot-game" target="_blank" rel="nofollow noopener" referrerpolicy="origin">successfully Kickstarted</a> for a print run. Print copies coming in 2022! Thank you to everyone who backed this project.</p>
<p><br></p>
<p><strong>Purchasing Anamnesis for $10 will also fund a community copy.</strong></p>
<p></p>
<p><a href="https://www.redbubble.com/people/viaphonized/explore?asc=u&amp;page=1&amp;sortOrder=recent" target="_blank" rel="nofollow noopener" referrerpolicy="origin">If you like the art from Anamnesis, merch is available&nbsp;at Victor Winter's store</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/wwxJjRRck5M" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTgyMTE3LzY0Mzc5OTEucG5n/original/VJLLrB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTgyMTE3LzY0Mzc5NzEucG5n/original/foV4WZ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTgyMTE3LzY0Mzc5NzIucG5n/original/C0t3L%2F.png]]
<h1><a href="http://aamatniekss.itch.io/" style="font-size: 24px">My other packs</a></h1>
<h2>Ancient Temple&nbsp;- Limited 16 colour palette tileset!</h2>
<p><strong>Asset pack in the same series as:</strong></p>
<ul><li><a href="https://aamatniekss.itch.io/deep-forest-pixel-tileset">Deep Forest - 16 Colour Tileset</a><span></span></li></ul>
<p><strong>This is a 16x16px tileset with slope tiles and full 16 tile variant tileset.</strong></p>
<p><strong>The tileset uses a 16 colour palette called #NA16 that i've created.&nbsp;The palette is included with the assets.</strong></p>
<p><strong>Full Details:</strong>
</p>
<ul><li>Full 16 tile variant tileset</li><li>slope tiles&nbsp;</li><li>multiple variation tiles including grass</li><li>verticaly tileable columns</li><li>fallen horizontally tileable column decoration</li><li>Background tiles</li><li>Spikes</li><li>Wall trap with arrow sprite</li><li>Water tile</li><li>Waterfall with animation</li><li>Hanging vine tiles</li></ul>
<p><br></p>
<p><strong>LICENCE: This asset pack&nbsp;can be used in both&nbsp;free and commercial projects. You can modify it to suit&nbsp;your own needs. Credit is not necessary, but appreciated.&nbsp; You may not redistribute it or resell it.</strong></p>
<p>Follow me on Twitter for updates on more Asset Packs -&nbsp;<a href="https://twitter.com/Namatnieks" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/Namatnieks</a></p>
<p><em>I am now also on&nbsp;<strong>Patreon</strong>, where by pledging you can get access to all new asset pack releases -&nbsp;<a href="https://www.patreon.com/Namatnieks" rel="nofollow noopener" referrerpolicy="origin">https://www.patreon.com/Namatnieks<br></a></em></p><p><strong>And if you like the pack remember to Rate it! :)&nbsp;</strong></p><p><em></em></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzQzMDIwLzE3MDE0NDQuanBn/original/aanUbl.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQzMDIwLzE3MDE0NDUuanBn/original/vzJfPP.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQzMDIwLzE3MDE0NDYuanBn/original/4Gx3IR.jpg]]
<p><strong>Run, jump and turn the world upside-down!</strong></p><p><em>And Yet It Moves</em> is an award-winning physics-based platform game in which players rotate the game world at will to solve challenging puzzles. Tilting the world turns walls into floors, slides into platforms, and stacks of rocks into dangerous hazards.</p><p>Players navigate through a paper collage world created with colorful pieces of cardboard and set to distinctive music. With four different environments and unlockable modes, <em>And Yet It Moves</em> is a platformer that will provide gamers with endless challenges.</p><p><strong>Turn your world upside-down with And Yet It Moves!</strong></p><p><strong><br></strong></p><hr><p><strong><em><br></em></strong></p><p><em>»I can do nothing but recommend And Yet It Moves.« </em><strong>Destructoid<span></span></strong><br></p><p><em>»It's remarkable to find a game of such effortless brilliance showing up in such an unheralded fashion.«</em> <strong>Eurogamer</strong><br></p><p><em>»Whether bat-shepherding, banana-rolling or bee-fleeing, each task is obscure enough to warrant a eureka moment and physically exerting enough to serve as a decent twitch challenge.«</em><strong> EDGE</strong><strong></strong><br></p><p><br></p><hr><p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/RQivUveGnaA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMxMTI2LzYwMjAyMi5wbmc=/original/FghcZh.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMxMTI2LzYwMzAyMy5wbmc=/original/tZo2vr.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMxMTI2LzYwMzAyMi5wbmc=/original/1HABMF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMxMTI2LzYwMjAyMy5wbmc=/original/dms3jM.png]]
<<list-links "[tag[Android]sort[title]]">>
<p><strong>NOW AVAILABLE ON ITCH!!</strong><br><br>The Angry Video Game Nerd has been sucked into Game Land! It’s up to you to guide him through three terrible and treacherous retro game worlds!<br></p>
<p><em>Angry Video Game Nerd Adventures</em>&nbsp;and&nbsp;<em>Angry Video Game Nerd II: Assimilation</em>&nbsp;come together for the ultimate Nerd experience!<strong> <a href="https://freakzonegames.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">FreakZone Games</a></strong> and <strong><a href="https://screenwavegames.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Screenwave Media Games</a></strong> presents the definitive way to play the series…&nbsp;<em>Angry Video Game Nerd I &amp; II Deluxe</em>!
</p>
<p>This deluxe collection brings you every stage from both famously tough action platform games, remixed &amp; re-balanced—plus an all-new, never-before-seen final chapter for the ultimate experience in nerd rage.
</p>
<h4>Features:</h4>
<ul><li>Enhanced Visuals!
</li><li>Experience the 8-bit ugliness in a whole new way.
</li><li>Updated Game Engine!
</li><li>And by updated, we mean "Rebuilt the first game from the ground up in the superior second game's engine." Trust us, it feels better.
</li><li>Improved level design and difficulty options!
</li><li>Both games are infamously hard-as-nails, but Normal and Easy difficulties come with infinite lives, so take as many attempts as you need to beat the challenge. Level designs have been improved upon to really nail the balance between tough and fair. Or perhaps you loved the limited lives and ludicrous overuse of instant-death blocks in the original release? We've got you covered. Just select "Old School" or higher from the difficulty menu and you'll be cursing the developers' name in no time.
</li><li>Quality of Life Improvements!
</li><li>Faster respawning (When you die, which will be often, you'll just pop right back out of the Toaster and get on with your day, just like nature intended!), multiple save slots, accessibility options and more mean that anybody can take on the challenge.
</li><li>New Chapter, Completing The Story!
</li><li>"Wait, the game had a story" You ask? To which we say: ...Kinda! But there's more of it now! Beat both games to unlock the epic finale!
</li><li>And more!</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/GR0P8tfJ-1o" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MjY3Ni82MjkzNzUxLnBuZw==/original/b2xIj5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MjY3Ni82MjkzNzQ5LnBuZw==/original/kjSm54.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MjY3Ni82MjkzNzU0LnBuZw==/original/uAPnQn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MjY3Ni82MjkzNzUzLnBuZw==/original/MzyHGd.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MjY3Ni82MjkzNzQ2LnBuZw==/original/5J7B8T.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MjY3Ni82MjkzNzUyLnBuZw==/original/oyTewT.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MjY3Ni82MjkzNzQ1LnBuZw==/original/jSCuca.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MjY3Ni82MjkzNzQ4LnBuZw==/original/3%2F8PwM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MjY3Ni82MjkzNzUwLnBuZw==/original/CBUO4K.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MjY3Ni82MjkzNzQzLnBuZw==/original/0WRXyq.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MjY3Ni82MjkzNzQ3LnBuZw==/original/53X6rt.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MjY3Ni82MjkzNzQ0LmpwZw==/original/MMiJDz.jpg]]
<p>Another Hero is a pencil and paper role playing game for three players where you can take turns as unstoppable Heroes, powerful Villains, and the rest of the World and people that help the story unfold.</p>
<p></p>
<p>Each Hero acts to fulfill their <strong>Destiny</strong>, gifted with <strong>Resolve </strong>by a powerful being that allows them to make ceaseless progress towards their goal. On the way, they will need to navigate through <strong>Conflicts</strong>, bargaining with a combination of objects imbued with their power and the circumstances of the situation. Every action they take has the potential to not just advance them towards their <strong>Destiny</strong>, but to open them up to the <strong>Plague </strong>buried within. Should they fall fully to the <strong>Plague</strong>, they become a monster in their own right, a fitting Villain for another Hero's tale.<br></p>
<p></p>
<p>The game seeks to capture the feeling of roleplaying videogames where you can always reload a save and just keep on pressing ahead. It's not a game about winning or losing - it's about telling the story of a Hero and seeing what unfolds on the way. The rules are designed not to be gamed or carefully followed for maximum points, but instead to facilitate the progression of the story.<br></p>
<p>Will your Hero reach their goal? Will they give up hope and return to mortality? Or will they be corrupted by the Plague that festers within? The story is not yet told - it's up to you to play it out. Welcome to the worlds of Another Hero. <br></p>
<p>Major features:</p>
<ul><li>Diceless play</li><li>Rules for Hero, Enemy, and Worldly Characters</li><li>The Conflict Cycle system for resolving conflicts</li><li>A system for quick creation of a map/setting that directly relates to the characters being played</li></ul>
<p>Major inspirations:</p>
<ul><li>Polaris</li><li>Demons' Souls/Dark Souls</li><li>Any game with progression systems and save/continue mechanics (but especially Saint Sword)</li></ul>
<p>To play you need:<br></p>
<ul><li>Three players (2 or 4+ is possible, but not ideal)</li><li>One of each (-hero- + -villain-world-) character sheet (or one -all- characters sheet) per player</li><li>A blank page (or a print out of the template map)</li><li>A pencil and eraser</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMyMDI0MC83Njc2ODcyLnBuZw==/original/07CDDS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMyMDI0MC83Njc2ODczLnBuZw==/original/u2Hjdc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMyMDI0MC83Njc2ODc0LnBuZw==/original/wfRbUA.png]]
<p class="text-center">⚡⚡⚡⚡⚡</p>
<p>Shoot corrupting monsters and save mankind's last hard-drive with your rechargeable laser-beam! ... But your aiming has a mind of its own, so you'll have to make do!&nbsp;</p>
<p>This is a tight arcade single-stick arena shooter!&nbsp;Were you looking for a tough-but-fair&nbsp;retro-styled challenge?</p>
<p><strong><em>This game features:</em></strong></p>
<ul><li>🔫 tight top-down shooting action</li><li>💾 40 levels</li><li>💀 2 additional difficulty modes</li><li>🔒 30+ unlockable unique upgrades to help you through the levels</li><li>👩‍💻&nbsp;6 skills to improve strategically</li><li>⚡ a lot of explosions and sparks</li><li>⏱ a timer for time-attack / speedrunning purposes</li></ul>
<p class="text-center"><strong><em>⚡⚡⚡⚡⚡<br></em></strong></p>
<p><strong><em>Controls:</em></strong></p>
<p><em>This game can be played either with a keyboard or a game controller! There can be some confusion as to the actual controls as we don't have an in-game tutorial, so here they are:</em></p>
<ul><li>the arrows, or WASD, or the left stick of a controller, or the D-pad to move around</li><li>[X] or (A) to use the laser-beam</li><li>[C] or (B) to use the bomb</li></ul>
<p>Additionally, here's a little tip: after selecting a level, and after you've unlocked some upgrades, you can select unlocked upgrades by pressing down instead of confirming the [restore file] prompt. We're sorry we didn't manage to communicate this better in-game, we'll do better next time!</p>
<p class="text-center">⚡⚡⚡⚡⚡</p>
<p>Here is a short introduction video made by <strong><a href="https://twitter.com/Bigaston" rel="nofollow noopener" referrerpolicy="origin">Bigaston</a></strong>. The video is in french but has english subtitles, and it explains the game really well.<br></p>
<div class=""><iframe width="560" height="315" src="https://www.youtube.com/embed/YkQPVHJf3Hk?cc_load_policy=1" frameborder="0" allowfullscreen=""><span class=""></span></iframe></div>
<p><br></p>
<p class="text-center">⚡⚡⚡⚡⚡<br></p>
<h3>Are you press or a content creator?</h3>
<p><strong>Come ask us for a key on Twitter,&nbsp;</strong><a href="https://twitter.com/PUNKCAKE_delice" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong>our DMs are open!</strong></a>&nbsp;<em>Just make sure to tell us which game(s) you're interested in, we have a few of different ones!</em>
</p>
<p><strong>Also check out&nbsp;<a href="https://punkcake.itch.io/our-presskit" target="_blank">our presskit</a></strong>&nbsp;where you'll find more info about us, as well as graphical&nbsp;assets in the downloads,&nbsp;useful&nbsp;for showing off the game or making thumbnails!
</p>
<p>We also have<strong>&nbsp;<a href="https://punkcake.itch.io/fr-presskit" target="_blank">a french version</a></strong>&nbsp;of the presskit! 🥐</p>
<p class="text-center">⚡⚡⚡⚡⚡<br></p>
<h3>About PUNKCAKE</h3>
<p>This game was made by PUNKCAKE Délicieux, a game developping duo making and releasing a new game&nbsp;every month through Patreon and itch.io!</p>
<p><em>If you're press, check out <strong><a href="https://punkcake.itch.io/our-presskit" target="_blank">our presskit</a></strong>!</em></p>
<p><strong>Our&nbsp;<a href="https://www.patreon.com/punkcake" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Patreon subscription</a> is rather advantageous and offers some more options, we recommend you check it out!</strong></p>
<p>PUNKCAKE Délicieux is made up of lovely humans <a href="https://twitter.com/benjamin_soule_" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Benjamin Soulé</a> and <a href="https://twitter.com/TRASEVOL_DOG" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Rémy Devaux</a>.<br></p>
<p>Find us on these platforms:<br><strong>::</strong>&nbsp;👉&nbsp;<strong><a href="https://www.patreon.com/punkcake" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Patreon<br></a></strong><strong>::</strong>&nbsp;👉&nbsp;<strong><a href="https://twitter.com/punkcake_delice" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter<br></a></strong><strong>::</strong>&nbsp;👉&nbsp;<strong><a href="https://discord.gg/dpQx647USm" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Discord<br></a></strong><strong>::</strong>&nbsp;👉&nbsp;<strong><a href="https://punkcake.itch.io/" target="_blank">Itch.io<br></a></strong><strong>::</strong>&nbsp;👉&nbsp;<strong><a href="https://store.steampowered.com/developer/punkcake/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Steam</a></strong></p>
<p class="text-center">⚡⚡⚡⚡⚡</p>
<p><span></span></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/YkQPVHJf3Hk?cc_load_policy=1" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA3NDUzNi82MTYwODU4LnBuZw==/original/kx9ELL.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3NDUzNi82MTYwODcwLnBuZw==/original/t95Ro2.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3NDUzNi82MTYwODYxLnBuZw==/original/%2Fl9M%2F8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3NDUzNi82MTYwODY2LnBuZw==/original/mjXZVN.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3NDUzNi82MTYwODc4LnBuZw==/original/wF4urt.png]]
<h1>Claim a Better Future!</h1>
<p>In a ruined and terraformed world where most of humanity is under the yoke of a brutal regime, the former workers of a once-remote factory - now known as The Collective - have risen up to create a future of freedom from oppression. You are an Ace - a highly skilled pilot referred from a Division in The Collective and assigned a humanoid combat vehicle known as a Frame. You and your Strike Team of fellow Aces must take on The Collective’s greatest threats, ensure its survival, and carve a path for its continued success.
</p>
<h1>Rules-Light Tactics</h1>
<p>APOCALYPSE FRAME is designed to be very fast to pick up and play, and it's suitable for both one-shots and extended campaigns. Combat is quick, punchy, and deadly for Aces' enemies. This game includes:
</p>
<ul><li>A very simple three-attribute resolution system that only needs d6's.
</li><li>Nine Frames with unique traits and abilities.
</li><li>Tactical rules simple enough to use  without a grid (though a hex grid is recommended) but deep enough to  maintain interest over time.
</li><li>A modular loadout system that provides great flexibility for your Frame with low bookkeeping.</li><li>A host of threats for your Aces to defeat:
<ul><li>21 standard enemies.
</li><li>4 Prime enemies - deadly threats who can be used as bosses and prominent antagonists.
</li><li>2 Colossus enemies - enormous threats who can be the centerpiece of a battle.</li></ul></li><li>Advice on running the game and customizing the setting to fit your preferences.</li><li>A campaign system with varied kinds of missions and rewards that provides texture and structure to longer-running games.</li></ul>
<h1>ACES HIGH is out!</h1>
<p>ACES HIGH, the expansion/companion to APOCALYPSE FRAME, is now included for everyone who has APOCALYPSE FRAME! This includes:</p>
<ul><li>6 Experimental Armaments, 6 Experimental Modular Systems, and 3 Experimental Frames (which include new Integral Systems, Integral Traits, and Build Traits), in addition to many Superior Tags and Drawback Tags.<br>
</li><li>Some notes on running APOCALYPSE FRAME as a campaign, including  Crisis Advances (making your enemies stronger over time, including 3  new standard enemies) and Ace Advances (new benefits and functionality  to improve your Aces over time).
</li><li><strong>Tyrants!</strong> These are dangerous prey for a Strike Team  - they’re nasty boss enemies you can use for special occasions that are  meant to be treated as equals. 10 Tyrants are included, as well as  advice on making your own</li></ul>
<h1>Ballad of Industrial Gods is out!</h1>
<p>Ballad of Industrial Gods, an expansive mission, is out now! You can check that out <a href="https://binary-star-games.itch.io/ballad-of-industrial-gods" target="_blank">here</a>!<br></p>
<h1>An Illuminated Mecha RPG</h1>
<p>This game is Illuminated by LUMEN, based on the LUMEN RPG system designed by Spencer Campbell, Gila RPGs. This game is in no way affiliated with Spencer Campbell or Gila RPGs. <img src="https://img.itch.zone/aW1nLzY2OTIzMzcucG5n/original/OSzvfj.png" loading="lazy"><br></p>
<h1>Influences</h1>
<p>I was most influenced by: 
      </p>
<ul><li>LUMEN/LIGHT, clearly!</li><li>Xenoblade Chronicles X (parts of it, anyhow) had a ton of influence on the concept and prospective missions and enemies. 
</li><li>Armored Core was an inspiration for the speed of play and modularity of Frames, as well as the moment-to-moment feel in general.</li><li>Battletech gave me the idea of using hexes and lent some inspiration for how initial/canonical Frame loadouts are laid out.</li><li>XCOM was an unexpected and unintentional (but ultimately welcome) influence for campaign flow.</li></ul>
<h1>Stay Tuned!</h1>
<p>    I have been following this with content modules,  including things like pre-written missions, campaign planning ideas,  and new Armaments, Systems, and Frames. More to come as well!<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MjE0Ny83NDIxOTIwLnBuZw==/original/Vq2Hrq.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MjE0Ny83NjM4NDQ0LnBuZw==/original/%2FQhb7i.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MjE0Ny83NjM4NDk2LnBuZw==/original/EwWi2u.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MjE0Ny83NjM4NDU1LnBuZw==/original/3nVJko.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MjE0Ny83NjY4ODA5LnBuZw==/original/Mv1G1V.png]]

<p class="text-center"><strong><em>[&nbsp;FREE demo available below! Also a soundtrack and more, too! ]</em><br></strong></p>
<p><strong>Arcade Spirits</strong> is a romantic visual novel that follows an alternative timeline where the 1983 video game crash never occurred. It's 20XX and you've just started a new job at the Funplex game arcade. Who will you meet along the way? Will you find the romance you're seeking?<strong></strong><br></p>
<ul><li><strong>Design your own character from the ground up</strong> - pronoun, hairstyle, skin tone, hair color, eye color and more are completely customizable and are reflected throughout the game in both gameplay and artwork!<span></span></li><li><strong>With roleplaying-based choices</strong>, you will be able to grow your personality and relationships in <strong>any way you desire</strong>; Friendship, Platonic or something more intimate! Work hard and build the relationship you desire with a total of <strong>seven romanceable characters</strong>!</li><li>T<strong>he Identity Identifier System, or IRIS</strong>, can track your relationship statuses with all characters throughout Arcade Spirits as well as your personality traits, from <strong>Quirky</strong>, <strong>Steady</strong>, and <strong>Kindly</strong>, to <strong>Gutsy </strong>and <strong>Basically</strong>.&nbsp;</li><li><strong>Everything you choose in Arcade Spirits</strong>, from your relationships to your personality, your crisis management moments, and a myriad other decision will have an <strong>effect on the future of your arcade</strong>!</li><li>Developed in Ren'py for Windows, Mac, and Linux.</li></ul>
<p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/LSNtmIpvGdQ" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQ3Mzk1LzExNzU5MTAuanBn/original/abqZyv.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQ3Mzk1LzExNzcwNzEuanBn/original/DAwIcv.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQ3Mzk1LzExNzU5MTIuanBn/original/BInf4Z.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQ3Mzk1LzExNzU5MTMuanBn/original/U2h564.jpg]]
<p>CONTROLLER SUPPORTED!<br><br>- New sub menu after the title<br>- Adds new game and load game<br><br>- Pause menu stuffs<br>- Adds a save and quit setting that can be reloaded from the<br>last level you were in.<br><br>- Better understanding OF WHERE PITS ARE.<br><br>- Bug fixes... we may of forgotten to remove the part where the big mean boss DIES...<br></p>
<p><br></p>
<p>Welcome to Arlo's very first game!<br><br>Help Arlo purify the land he lives in from greed by taking down 6 bosses, over a course of 35 fantastic levels!<br>Find out the true story ending by finding all the secret coins!<br><br>Arlo the Rabbit is a cutesy fun platformer in the style of a special old-school<br>system you might have owned! Talk about a throwback!<br>Complete with amazing chiptune tracks from SoundOfAShadow!<br><br>Use your surroundings to travel through each level and reach the end of the world!<br><br>Can you find who's causing such trouble in the wonderful land of the Spring Kingdom?<br><br>Venture through five vast and amazing worlds through the eyes of… a rabbit? Arlo the Rabbit is a game that harkens back to the Gameboy era through its visuals and gameplay, where the player can defeat enemies with objects while hopping around as a cute little bunny. Play through Arlo’s adventure when the game releases Wednesday, May 23rd on Steam for only three dollars!</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/FSrzClTVwFg" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzQwNTgzLzE2ODc3MjkucG5n/original/9L0UGv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQwNTgzLzE2ODc3MDEucG5n/original/DCj4WV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQwNTgzLzE2ODc3MDMucG5n/original/Z1t%2B7O.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQwNTgzLzE2ODc3MDgucG5n/original/eXq%2F51.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQwNTgzLzE2ODc3MTAucG5n/original/IQ604w.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQwNTgzLzE2ODc3MTMucG5n/original/mte%2FIP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQwNTgzLzE2ODc3MTIucG5n/original/3W%2Bqv3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQwNTgzLzE2ODc3MTQucG5n/original/xXZ1%2Bp.png]]
<p>WELCOME TO<br></p>
<p>🌈✏️🎨𝙰𝚁𝚃 𝚂𝚀𝙾𝙾𝙻🎨✏️✨<br></p>
<p>U r a froshmin at 🅐 🅡 🅣 🅢 🅠 🅞 🅞 🅛.&nbsp;<br>Ur assignments are generated &amp; graded by an A.I.&nbsp;</p>
<p>Can a video game make you more creative?&nbsp;<br>Can a video game make you a better artist?&nbsp;<br>Can you graduate from Art Sqool? Idk,,, that's on u!</p>
<p><em>It makes the idea of practicing making art seem both inviting and worthwhile but still an incredibly weird undertaking.</em><br>-Kotaku</p>
<p><em>The color choices are characteristically Glander: candy-like pinks and blues, everything effervescently joyful. Eagle-eyed art-nuts will love spotting references to the likes of Ed Ruscha and Yayoi Kusama, though we won’t give too many of those away.</em><br>-AIGA Eye on Design</p>
<p><em>Art Sqool will soon make all non-virtual art colleges redundant.<br></em>-Rock Paper Shotgun</p>
<p><strong>Features:<br></strong>🖼Explore the sprawling Art Sqool campus in 3D&nbsp;<br>🖌Find and collect cool brushes to help you in your artistic process like the wiggle brush, rainbow pencil and mop.<br>🎨Use your drawing pad to complete your assignments and progress through the game.&nbsp;<br>👁An A.I. art professor grades your work and hands out assignments<br>☁️Over 200 inspiring prompts to help u break thru any creative block.&nbsp;<br>⌚️4-6 hours of gameplay<br>✨Creative fulfillment basically guaranteed<br>🎧Soundtrack is a banger&nbsp;</p>
<p>A new project from&nbsp;<a href="http://glander.co/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Julian Glander</a><br>Coming to Mac &amp; PC February 5th, 2k19&nbsp;<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzA1NjI3LzE1MDM0NjIuanBn/original/%2BW0JFr.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA1NjI3LzE3ODQ1MjEuZ2lm/original/sfwLFv.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA1NjI3LzE3ODQ1MTkuZ2lm/original/OmaTo%2B.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA1NjI3LzE3ODQ1MjUuZ2lm/original/qj%2F8as.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA1NjI3LzE3ODQ1MjQuZ2lm/original/TN14HI.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA1NjI3LzE3ODQ1MjAuZ2lm/original/KsHn8x.gif]]
<p class="text-center"><strong>"As the Crow Flies"</strong> is a full and complete game, but I would love to have people playtest it to ensure that rules are clear and&nbsp;the prompts are evocative. If you are interested in reviewing the game, feel free to contact me on Twitter <a href="https://twitter.com/Kristathan86" rel="nofollow noopener" referrerpolicy="origin">@kristathan86</a>!<br></p>
<p class="text-center"><em>--</em></p>
<p><em>There used to be humans here, but they all left. That’s what your mama told you, and what her mama told her.&nbsp;The Earth Mother has begun to retake the land and bring magic back to it. Green grass and vines cover the cities the humans left behind.</em></p>
<p><em><strong>You are a crow</strong>.
</em></p>
<p><em>Take flight from your nest and explore.&nbsp;</em></p>
<p><em>Find a new home.</em></p>
<p><strong>As the Crow Flies</strong> is an exploration game built on the Carta system that encourages you to put yourself into the feathers of a young crow leaving the nest for the first time. Befriend other animals, search for food, find interesting trinkets, and eventually settle down to create a nest of your own.</p>
<p class="text-center">--</p>
<p>If you purchase during playtesting, you'll also own the post-playtested version, and any subsequent additions.&nbsp;<strong>As the&nbsp;Crow Flies</strong> is complete, I&nbsp;just want to make sure I make it the best version of itself that it can be!</p>
<p class="text-center">--</p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzgzMTEwNDgucG5n/original/pWvyen.png" alt="Carta Logo" title="Carta Logo" loading="lazy"><br></p>
<p>This work is based on the <a href="https://peachgardengames.itch.io/carta-srd">Carta system</a> (found at <a href="https://peachgardengames.itch.io/carta-srd"></a><a href="https://peachgardengames.itch.io/carta-srd">https://peachgardengames.itch.io/carta-srd</a>), from Cat McDonald and Peach Garden Games, and licensed for use under the <a href="http://creativecommons.org/licenses/%20by/3.0/" rel="nofollow noopener" referrerpolicy="origin">Creative Commons Attribution 3.0 Unported license</a> (<a href="http://creativecommons.org/licenses/by/3.0/" rel="nofollow noopener" referrerpolicy="origin"></a><a href="http://creativecommons.org/licenses/by/3.0/" rel="nofollow noopener" referrerpolicy="origin">http://creativecommons.org/licenses/by/3.0/</a>).<br></p>
<p>
</p>
<p>The Carta logo is © Cat McDonald, and is used with permission.</p>
<p>This work is an expanded take on “<a href="https://harper-jay.itch.io/alone-on-the-wind"><em>Alone on the Wind</em></a>”, an <a href="https://itch.io/c/486917/alone-at-the-table">Alone at the Table</a> game also written by me.</p>
<iframe frameborder="0" src="https://itch.io/embed/1363067?bg_color=1b1b1b&amp;fg_color=ffffff&amp;link_color=03c6e4&amp;border_color=00b0d9" width="552" height="167"><a href="https://harper-jay.itch.io/alone-on-the-wind">Alone on the Wind by Chubby Crow Games</a></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM2NzkxNy84MzExMDI3LnBuZw==/original/KiZLvg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM2NzkxNy84MzI3MDQyLnBuZw==/original/ggMsX9.png]]

<p class="text-center"><strong><a href="https://twitter.com/CrystalGameWork" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter</a>&nbsp; &nbsp;♦&nbsp; &nbsp;<a href="https://www.instagram.com/crystalgameworks/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Instagram</a>&nbsp;&nbsp;&nbsp;♦&nbsp; &nbsp;<a href="https://discord.gg/vE2Yng4" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Discord</a>&nbsp; &nbsp;♦&nbsp; &nbsp;<a href="https://mailchi.mp/832ceb4082fa/join-cgw-newsletter" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Newsletter</a>&nbsp;<br></strong></p>
<p><strong>The demo jumps around to days 1, 2, 7, 8, and 12 to give you a taste of what the full&nbsp; game will be like.</strong></p>
<hr>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzI4MzEwMTMucG5n/original/oWnJD8.png" loading="lazy"></p>
<p>Kotachi received a pair of white revolvers after his grandfather died, forged from the constellation Perseus. His weapons target specters, shadow monsters that invisibly attack people... and the Zodiac. As one of the few who can, it's up to Kotachi to both protect these constellations and use their powers in battle to keep everyone safe.<br></p>
<p><br><em>Asterism</em>&nbsp;at its heart is an action visual novel inspired by astronomy elements, namely the constellations that make up our sky- especially the Zodiac. Choices accompany many of the dialogue menus in both play styles, and can determine how side characters end up by the end of the story—including an optional male love interest.</p>
<p class="text-center"><br><img src="https://img.itch.zone/aW1nLzI4MzEwMTEucG5n/original/l5Dpds.png" loading="lazy"><br><strong><br></strong></p>
<p><strong>Full Game Features:</strong></p>
<ul><li>8-12+ hours of story</li><li>Branching dialogue trees<br>
</li><li>Optional male love interest<br>
</li><li>Several art galleries
</li></ul>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzI4NDI5ODIucG5n/original/yviUXP.png" loading="lazy"><br></p>
<h3><p class="text-center"><strong><a href="https://twitter.com/CrystalGameWork" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter</a>&nbsp; &nbsp;♦&nbsp; &nbsp;<a href="https://www.instagram.com/crystalgameworks/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Instagram</a>&nbsp;&nbsp;&nbsp;♦&nbsp; &nbsp;<a href="https://discord.gg/vE2Yng4" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Discord</a>&nbsp; &nbsp;♦&nbsp; &nbsp;<a href="https://mailchi.mp/832ceb4082fa/join-cgw-newsletter" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Newsletter</a>&nbsp;</strong></p></h3>

<iframe width="720" height="450" src="https://www.youtube.com/embed/v0LgKJFf1d0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDQ2MjM5LzM5OTUyMTYuZ2lm/original/gEpPcS.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQ2MjM5LzQ2MjUyMDMucG5n/original/Rp1GaC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQ2MjM5LzY0ODU1MDEucG5n/original/X3FoQJ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQ2MjM5LzMxMjIzNTIucG5n/original/tTyHew.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQ2MjM5LzMxMjIzNTEucG5n/original/HYRpMn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQ2MjM5LzI4MzEwMzIucG5n/original/iTRmAK.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQ2MjM5LzIzMzU5NDIucG5n/original/7BYgD6.png]]
<p>Asteroids... But Roguelite is a game about shooting enemy ships and (you guessed it) asteroids in order to increase your score. Your multiplier grows as you kill enemies and resets when you get hit. Visit the store after bosses in order to upgrade your ship and score higher. &nbsp; Try to get a build going that can survive long enough to rack up a large multiplier in order to take your place on the leaderboard!</p>
<p><br></p>
<p>In between rounds, you can purchase various upgrades from the shop of which there are currently over 40 of. &nbsp;You can also spend money on rolling different quests to undertake. Some quests just give you a bonus for defeating a set amount of enemies, some actually upgrade your abilities themselves. For example, there's a quest for killing 50 enemies with your laser to unlock a double laser.&nbsp; <br></p>
<p><br></p>
<p>And that's it!&nbsp; Blow up enemies and asteroids, use your money to increase your power, and aim for a spot on the leaderboard.&nbsp; Once you die, your run is over and you can start again. <br></p>
<p><br></p>
<p>I made this game in a little under four months. It's not my life's work, but I think it has a good amount of content for it's price point. I want to be clear with setting expectations that this isn't a 100 hour game, and it's priced accordingly. What you get is a high-score chasing shoot-em-up with multiple upgrade paths and quests to complete.&nbsp; I've added a video of me playing for under 5 minute and defeating on of the randomized bosses.<br></p>
<p>For development updates, follow me on Twitter: <a href="https://twitter.com/GhostGoats" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@GhostGoats<br><br></a></p><p>If you are interested, the game is also available on&nbsp;<a href="https://store.steampowered.com/app/1392790/Asteroids_But_Roguelite/" rel="nofollow noopener" referrerpolicy="origin">Steam</a><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/gIGePwLzPws" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzE0MDQxLzQwODIyODcuZ2lm/original/1qml%2Fj.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzE0MDQxLzQwODQzODguZ2lm/original/IjR3hM.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzE0MDQxLzQwODQ0MDIuZ2lm/original/Q9hiAJ.gif]]
<p><strong>Attentat 1942 is a historically-accurate adventure told through the eyes of the World War 2&nbsp;survivors. Many moral dilemmas and existential struggles await you on your way to discover the troubled past of your family. Written and made by professional historians.</strong><br><br>It's 1942 and Reinhard Heydrich, the ruler of the Nazi occupied Czech lands appointed by Hitler, was assassinated. Nazi retaliation was brutal. Your grandpa was among the victims, sent to a concentration camp. But why? What role did he play in the attack? Why didn’t he tell his family? Was he brave or reckless?</p>
<p>Immerse yourself in a story about love, friendship and heroism among the horrors of a world conflict. Confront witnesses, experience the everyday life under Nazi rule and uncover the fate of your family in this award-winning game about World War II.<br><br>History made interactive. Attentat 1942 features:</p>
<ul><li>deep-branching dialogue, where your choices matter</li><li>interactive comics and memories, hide resistance leaflets from the Gestapo or flee from a Nazi prison</li><li>rare digitized film footage and historical items</li></ul>
<p><strong><br>About Us</strong><br>Charles Games is a Prague-based studio focused on exploring narrative possibilities of videogames with strong emphasis on serious games.</p>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/-M9UK89K93M" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjYxNTUxLzM1NjYwOTQuanBn/original/DmJiat.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjYxNTUxLzM1NzIwMzEuZ2lm/original/GhDzp2.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjYxNTUxLzM1NjYwOTYuanBn/original/wOq9O2.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjYxNTUxLzM1NjY0MjcuanBn/original/n2miyf.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjYxNTUxLzM1NjYwOTUuanBn/original/SdNtMh.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjYxNTUxLzM1NjYwOTcuanBn/original/07xI2C.jpg]]
<p><strong>Your space station has been overtaken by robots. That's bad.</strong><br></p>
<p>You have a magnetic pulse gun that can stun them. That's good!</p>
<p>The gun can only pull enemies. That's bad.</p>
<p>But it's all you have, so you'd better make do!</p>
<p>Attraction Force is a classic arcade-style experience where you have to attract, dodge and destroy all enemies in a level before you move on to the next one. Pull enemies with your magnet gun to stun them, but don't let them touch you!<br></p>
<h3>Features<em><br></em></h3>
<ul><li>Classic arcade action</li><li>50 stages</li><li>An oldschool high score table</li><li>Controller support</li><li>Remappable controls</li></ul>
<p><br></p>
<p><em>If you're in the mood for more plattforming but with a puzzle-twist, check out my game <a href="https://ohsat-andrej.itch.io/speer" target="_blank">[Speer]</a>! And you can follow me on <a href="https://twitter.com/ohsat_games" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter</a> to get more updates.</em> <br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/QSr7tk77j3M" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzgyMDY5LzIzMDA1NDUuZ2lm/original/Mcg64E.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzgyMDY5LzIzMDA1NDcuZ2lm/original/NPOM7L.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzgyMDY5LzIzMDA1NTAuZ2lm/original/BFifZ5.gif]]
<p>Welcome to a world trapped in perpetual fighting. Attrition is a turn-based strategy game where three countries, Lutem, Bertas, and Cualitas, are constantly at war with one-another. Command their armies in a story of opposite opinions, sacrifices for one’s beliefs, and the quest for a greater goal. Here no one’s completely in the wrong, but no one’s completely in the right.</p>
<p>In the world of Attrition armies are simple, consisting only of troops armed with obsolete rifles, and not always having the capacity to move around with ease. A pair of dice controls how far an army can go, so commanders must adjust to every situation and get the most out of the terrain they’re fighting in. Here the lucky have the advantage, but the better strategist comes out victorious.</p>
<p><br></p>
<p>Follow Attrition on Twitter:&nbsp;<a href="https://twitter.com/GameAttrition" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@GameAttrition<br></a></p>
<p>To contact support, send an email to: <strong>gameattrition@gmail.com</strong></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/cdBBlKkDlp0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjk2ODEyLzIxNDg3MTQucG5n/original/w6QSOC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjk2ODEyLzIxNDg3MDgucG5n/original/f7JCFn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjk2ODEyLzIxNDg3MDkucG5n/original/lojTbv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjk2ODEyLzIxNDg3MTIucG5n/original/W7WhKw.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjk2ODEyLzIxNDg3MTAucG5n/original/h29lEg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjk2ODEyLzIxNDg3MTEucG5n/original/DuVLb0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjk2ODEyLzIxNDg3MTMucG5n/original/SviyqX.png]]
<h2 class="text-center">De l’exploration, de la bagarre, des&nbsp;chimères étranges, des&nbsp;tentacules, un casse dans une&nbsp;école de voleurs, des&nbsp;kobolds qui font des glaces, un match de&nbsp;sport… ces&nbsp;aventures bon enfant débordent de péripéties mais pas de&nbsp;la page.</h2>
<p>Ces aventures ont été écrites et illustrées (pour la plupart) par <a href="http://itch.io/janvanhouten" target="_blank" style="font-size: inherit">Jan Van Houten</a>, éditées et mises en page par <a href="http://nicolas.folliot.net" target="_blank" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">Nicolas Folliot</a>. Elles&nbsp;sont compatibles avec votre jeu de rôle préféré, mais si vous voulez en profiter pour découvrir un nouveau système de jeu, il y a&nbsp;<a href="https://jdrlab.itch.io/sodalitas" target="_blank" style="font-size: inherit"><em>Sodalitas</em></a>, un JdR en un peu plus d'une page&nbsp;pour jouer des parties d’à peu près une heure avec des jeunes joueurs trop nombreux.</p>
<h1 class="text-center"><img src="https://img.itch.zone/aW1nLzc4Njk5MjcucG5n/original/hJq1Zu.png" loading="lazy"></h1>
<p>Grâce à un financement progressif de cette première saison, nous avons pu inviter plusieurs illustratrices et illustrateurs d’horizons et pattes très variées à venir dessiner quelques aventures (par ordre chronologique) :</p>
<ul><li><a href="https://www.instagram.com/francois_maumont/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">François&nbsp;Maumont</a>&nbsp;(<em>Le Premier Donjon du Baron</em>, aventure n° 8)
</li><li><a href="https://www.instagram.com/evlynmoreau/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Evlyn&nbsp;Moreau</a>&nbsp;(<em>L'Île du mage Moreau</em>, aventure n° 9)<br>
</li><li><a href="https://www.instagram.com/elodie_shanta/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Élodie&nbsp;Shanta</a>&nbsp;(<em>Mystères &amp; Tentacules</em>, aventure n° 11)<br>
</li><li><a href="https://guypradel.fr/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Guy&nbsp;Pradel</a>&nbsp;(<em>Le Temple elfique</em>, aventure n° 12)<br>
</li><li><a href="http://helkarava.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Helkarava</a>&nbsp;(<em>Tour de mage à vendre</em>, aventure n° 14)<br>
</li><li><a href="https://www.instagram.com/sax_la_bagarre/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Sax la Bagarre</a>&nbsp;(<em>Le Match</em>, aventure n° 15)</li></ul>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzc4Njk5NDgucG5n/original/JiHX6e.png" loading="lazy"><br></p>
<p>
</p>
<h4>Vous êtes éducatrice ou éducateur ?</h4>
<p>Ces aventures ainsi que le jeu <em>Sodalitas</em> ont été conçues entre autres pour vous, et nous souhaitons que vous puissiez y faire jouer le plus d'enfants possible, alors pour vous c'est gratuit si vous le souhaitez&nbsp;! Envoyez simplement un message à <a href="mailto:aventures-sodalitas@jdrlab.fr" target="_blank" style="" rel="nofollow noopener" referrerpolicy="origin">aventures-sodalitas@jdrlab.fr</a> pour vous présenter.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzQyODY5Lzc4NzAwMDkucG5n/original/u8Rh%2Fc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQyODY5Lzc4NzAwMTUucG5n/original/CYF%2BLk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQyODY5Lzc4NzAwMTAucG5n/original/gSORwR.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQyODY5Lzc4NzAwMTEucG5n/original/eKbM6z.png]]
<$list filter="[is[current]has:field[average_session]]">
''Average Session'': {{!!average_session}}&nbsp;&nbsp;&nbsp;
</$list>
<h3>Apparition</h3>
<p>On a seemingly simple mission to retrieve some questionable material, we're introduced to our first look of our protagonist&nbsp;Avery Chase - a space man doing the hard and dangerous&nbsp;space jobs for hard earned space cash. This first mission sets the scene for a wild ride&nbsp;completely manipulated by one single instance&nbsp; that will have consequences much larger than anyone would like to imagine.</p>
<p>Though each episode has a resolution of its own, reading through them collectively will paint a better picture of the overall universe. What better place to start from than the beginning?</p>
<p>This episode contains 24 pages to begin the saga of Avery Chase.</p>
<p>Enjoyed the comic? Want to see more behind the scenes?&nbsp;Consider supporting its production via Patreon and gain immediate access to all my available works!&nbsp;Link provided under the "More Information" tab below.</p>
<p>PDF/24 Pages/Colour/Episode 1</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzQ0NzI0LzE3MTA2MzUuanBn/original/Oor3gg.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQ0NzI0LzE3MTA2MzYuanBn/original/ucgwA2.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQ0NzI0LzE3MjUxMjYuanBn/original/HmAJ0v.jpg]]
<h3>Travelling Without Moving</h3><p>On his next mission we find Avery calling upon the help of Leslie Dynamite, a close and formidable friend, as he attempts to recover something precious for his usual client - the&nbsp;mega-corporation S.S.A. &nbsp;</p>
<p>Experience the finer things in life as Leslie and Avery hustle through a retro fitted hotel like bulls in a china shop!&nbsp;Have a peek at some of the stranger things the universe has to offer that can be innocently charming, but incredibly dangerous in the wrong hands...</p>
<p>This episode&nbsp;contains 41 pages to continue the saga of Avery Chase.</p>
<p>Enjoyed the comic? Want to see more behind the scenes?&nbsp;Consider supporting its production via Patreon and gain immediate access to all my available works!&nbsp;Link provided under the "More Information" tab below.<br></p>
<p>PDF/41 Pages/Colour/Episode 2</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzQ1MDE4LzE3MTIxNjIuanBn/original/0R2UXP.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQ1MDE4LzE3MTIxNjguanBn/original/hUuh8z.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQ1MDE4LzE3MjU4NjMuanBn/original/aaPX76.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQ1MDE4LzE3MjU4NjkuanBn/original/zBzAOt.jpg]]
<p><strong>Retro!</strong></p>
<p>Remember the 'good old days' when you used to copy your favourite games onto a single cassette tape and produce your own hit compilation? … No, I don't either, I don't know what you're talking about. I'm far too young.</p>
<p><strong>Mix Tapes!</strong></p>
<p>Cassettes? Erm… it's like a hard drive but a slower, bulkier, less convenient way of storing your games to play later. But it's fun, you see, because it's retro and physical and it makes satisfying noises when you press the buttons.</p>
<p><strong>Short, sharp bursts of fun!</strong></p>
<p>Awesome Mix Tape is a compilation of single mechanic games. Some might be fun, some might be challenging, some might be interesting prototypes that could become&nbsp;larger games. More games are added each month so keep us installed and regularly receive free updates with our latest micro game.</p>
<p><strong>13 games and counting...</strong></p>
<p>Puzzle shooters, dodge`emp-ups, a scary spot-the-difference,&nbsp;infection control, twists on classic games, mash-ups of genres, some that are barely a game but I thought looked nice.</p>
<p>AND there's more&nbsp;to come&nbsp;...</p>
<figure><img src="https://img.itch.zone/aW1nLzYxMzkzMDcuZ2lm/original/6gwoJg.gif" loading="lazy"><br></figure>
<p><img src="https://img.itch.zone/aW1nLzYxMzk0MTMuZ2lm/original/8DBfK4.gif" loading="lazy"><br></p>
<p><img src="https://img.itch.zone/aW1nLzYxMzk1ODEuZ2lm/original/zpdry1.gif" loading="lazy"><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/NVzqOfnuMg4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA1MDk2OS82NjEyODgwLmdpZg==/original/F%2Bk70e.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1MDk2OS82MDEwOTMwLmdpZg==/original/KVaCzy.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1MDk2OS82MDIzOTkxLmdpZg==/original/tfy2qw.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1MDk2OS82MTMyOTY4LmdpZg==/original/n1W%2Fnb.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1MDk2OS82MTMzMDIxLmdpZg==/original/sEvoSu.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1MDk2OS82MTMzMDQxLmdpZg==/original/6Q%2BGK8.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1MDk2OS82MTMzMDc3LmdpZg==/original/Dteu4Y.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1MDk2OS83MDI5NzY4LmdpZg==/original/FDx%2FA6.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1MDk2OS82MTM5MjYzLmdpZg==/original/h4%2Fyhj.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1MDk2OS82MTM5MjQyLmdpZg==/original/foRWZw.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1MDk2OS82MDEwODk2LnBuZw==/original/%2BsDA9x.png]]
<p>Baba Is You is an award-winning puzzle game where you can change the rules by which you play. In every level, the rules themselves are present as blocks you can interact with; by manipulating them, you can change how the level works and cause surprising, unexpected interactions! With some simple block-pushing you can turn yourself into a rock, turn patches of grass into dangerously hot obstacles, and even change the goal you need to reach to something entirely different.</p>
<p><img src="https://img.itch.zone/aW1nLzE4MzQwMDAucG5n/original/mkSL1U.png" loading="lazy"><br></p>
<p>You can find the OST on itch:&nbsp;<a href="https://hempuli.itch.io/baba-is-you-soundtrack">https://hempuli.itch.io/baba-is-you-soundtrack</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/U7MJljsoUSo" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzY2MzYzLzE4MzQwOTQucG5n/original/W6uJxi.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzY2MzYzLzE4MzQwOTEucG5n/original/S2Mj%2Bj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzY2MzYzLzE4MzQwOTMucG5n/original/2%2Fzneg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzY2MzYzLzE4MzQwOTIucG5n/original/LvLbes.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzY2MzYzLzE4MzQwOTUucG5n/original/MkDvj6.png]]
<p>In Back to Bed you guide the sleepwalker Bob to the safety of his bed by taking control of his subconscious guardian named Subob. Together they will travel through a surreal and painting-like dream world, avoiding dangers and getting safely back to bed.</p>
<p>Back&nbsp;to&nbsp;Bed&nbsp;is&nbsp;an artistic&nbsp;3D&nbsp;puzzle&nbsp;game&nbsp;with&nbsp;a&nbsp;surreal&nbsp;twist. It tells the story of Bob, an unlucky narcoleptic who has a tendency of falling asleep in his boring office and then proceeding to sleepwalk into the dangers of the big city. Luckily, Bob has a subconscious guardian named Subob, whom spawns from the mind of Bob and whose job it is to protect the sleepwalker from any danger and guide him back to the safety of his bed.<br><br>The ever vigilant Subob must guide the constantly sleepwalking Bob on a journey through a series of surreal painting-like cityscapes where the boundary between Bob's dreams and reality have vanished, as Subob is part of Bob's subconsciousness. The result is an artistic dream world that is recognizable, yet totally different from the real world, where many things are not what they seem and dangers to the sleepwalker lurks deeper in.&nbsp;Key features</p>
<ul><li>Unique surreal and artistic game universe<br>A strange but beautiful dream universe that mixes elements from the real world and the world of dreams to create something unique, surreal and sometimes a bit scary.</li><li>Isometric puzzle levels&nbsp;<br>Navigate detailed 3D puzzles that defy the laws of physics, wherein the player must manipulate the strange environment to create a safe path for Bob and avoid the dangers of the puzzle.&nbsp;</li><li>Two characters as one&nbsp;<br>Play as the embodied subconsciousness, in the form of a small guardian creature, trying to save its own sleepwalking body from dangers of the the dream world.</li><li>Picturesque visual style&nbsp;<br>Discover the feeling of playing in a piece of art set in a digital frame. A visual style inspired by hand-painted techniques, surreal art and impossible shapes.</li><li>Nightmare mode&nbsp;<br>Unlock a hard mode of the game, made for those who truly want to test their puzzle solving skills and enjoy thinking many steps ahead, or who are just too stubborn to give up.</li></ul>
<h2><img src="http://cdn.edgecast.steamstatic.com/steam/apps/308040/extras/Controller.png?t=1494319678" style="padding: 0px; margin: 0px" loading="lazy">&nbsp;Best played with controller</h2>
<p>Back to Bed is best played with a controller, but fear not, if you do not possess one, mouse can still be used.</p>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/0lz-QUPABqw" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTgwNjM2Lzg0NDEwMC5qcGc=/original/HzJdD4.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTgwNjM2Lzg0NDEwMS5qcGc=/original/p%2FPWJD.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTgwNjM2Lzg0NDEwMi5qcGc=/original/BnfKYK.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTgwNjM2Lzg0NDEwMy5qcGc=/original/z3DlMb.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTgwNjM2Lzg0NDEwNC5qcGc=/original/hvIH1F.jpg]]
<p>You’re not special. You’re not a hero. Thrust into unfortunate circumstances, you find yourself with no other option than to unravel what might be your biggest case yet.</p>
<p>There is no choice. We change, but we change nothing. Get to work, detective.</p>
<p><br></p>
<p>
</p>
<p><img src="https://img.itch.zone/aW1nLzgzMDc0MjYucG5n/original/jFHgn7.png" loading="lazy"></p>
<p></p>
<p>Backbone is a post-noir narrative adventure. Become raccoon private eye Howard Lotor and explore dystopian Vancouver inhabited by animals as you uncover a deeply personal story of change and transformation.</p>
<p>Backbone is inspired by film noir, weird sci-fi, post-soviet aesthetics, modern political regimes, the works of Lynch and Kaufman, and existential philosophy of Sartre. It is a linear, cinematic narrative experience that subverts genre and challenges your perception of what it means to be a person.</p>
<p><br><img src="https://img.itch.zone/aW1nLzgzMDc1ODMucG5n/original/nJamBj.png" loading="lazy"></p>
<p></p>
<p>Backbone’s gameplay is focused on storytelling and emotional expression, featuring rich and elaborate dialogues inspired by old school CRPGs, as well as exploration of the lush environments. The end of all things is inevitable, but defining which version of Howard Lotor reaches the conclusion is up to you.</p>
<p>As Howard, you will:<br></p>
<ul><li>Make meaningful connections with a diverse cast of characters in pursuit of truth</li><li>Shape and express your identity through dialogue choices - decide what kind of person you want to be</li><li>Explore and experience both downtrodden and flourishing districts of a strange, yet familiar version of Vancouver</li><li>Come to terms with the universal pain of existence and loss</li><li>Be a raccoon</li></ul>
<p></p>
<p><img src="https://img.itch.zone/aW1nLzgzMDc2MTYucG5n/original/vXk%2FT7.png" loading="lazy"></p>
<p></p>
<p><strong>Post-noir dystopia</strong></p>
<p>Backbone’s Vancouver is a dangerous place, bleak and dreary, but not entirely without hope. It’s a tale of a cold and uncaring world, interspersed with genuine connections and a bruised but undying drive to make a difference. Everyone wants to change the world, but not always for the better.</p>
<p><strong>Stunning visuals</strong></p>
<p>The breathtaking combination of high-resolution pixel art and 3D effects like dynamic lighting, pouring rain, volumetric fog and neon lights bring the sprawling City to life. Visit iconic Vancouver locations like Gastown, Granville and Fairmont Hotel, reimagined in a world now inhabited by anthropomorphic animals.</p>
<p><strong>Evocative and unforgettable soundtrack</strong></p>
<p>Original doom jazz soundtrack by Danshin and Arooj Aftab features an innovative combination of classic jazz and electronic music. Backbone’s OST is expertly crafted to create a cinematic, atmospheric, and simply jaw-dropping soundscape that serves and enhances storytelling.</p>
<p><br></p>
<p><strong>Mature&nbsp;content</strong></p>
<p><em>Backbone heavily features strong language, themes of violence, systemic racism and sexism, drug abuse, depression, terminal illness, body horror, death. All imagery is suggestive and not direct, but we would still never recommend this game to children. </em></p>
<p></p>
<p><br></p>
<p>Game by <a href="https://twitter.com/eggnutgames" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Eggnut</a>.<br></p>
<p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/bTC6ZET43uM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTQwNS84MzA3NzU2LmpwZw==/original/QzRpdH.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTQwNS84MzA3NzU1LmpwZw==/original/HbrE%2Bm.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTQwNS84MzA3NzU0LmpwZw==/original/9bcwyu.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTQwNS84MzA3NzUzLmpwZw==/original/NFf9fw.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTQwNS84MzA3NzU3LmpwZw==/original/hAyV%2F8.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTQwNS84MzA3NzU4LmpwZw==/original/ulc%2FWX.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTQwNS84MzA3NzYwLmpwZw==/original/ladTpj.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTQwNS84MzA3NzYxLmpwZw==/original/MzX%2Bhb.jpg]]
<p>Backspace Bouken is a Japanese-inspired old-school dungeon crawler with a fast-paced typing battle system and ridiculous storyline. Fight monsters by typing their dialogue as you progress through the game and climb the tower. Fast and accurate typing will be rewarded, and maybe you'll even become a better typer!<br></p>
<p><a href="https://rngpartygames.itch.io/backspace-bouken-demo">DEMO PAGE</a>&nbsp;|&nbsp;<a href="https://store.steampowered.com/app/1097170/Backspace_Bouken/" rel="nofollow noopener" referrerpolicy="origin">STEAM PAGE</a>&nbsp;</p>
<h4><a href="https://rngpartygames.bandcamp.com/album/backspace-bouken-original-soundtrack" rel="nofollow noopener" referrerpolicy="origin">SOUNDTRACK&nbsp;DOWNLOAD</a></h4>
<h4>Features</h4>
<ul><li>Fluid typing-based battle system that tells the story as you play.</li><li>Fight a wide variety of enemies and bosses with unique and compelling behaviors and twists.</li><li>Explore numerous floors of a tower in classic first-person dungeon crawling style.</li><li>Solve puzzles and collect passwords and information from your enemies to progress through the game.</li><li>Save NPCs from the tower in a collectathon fashion.</li><li>Get rewards for completing encounters and filling out your map.<br><br>Check out our upcoming Playdate game&nbsp;<a href="https://rngpartygames.itch.io/bloom">Bloom</a>!</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/vvQ3-nS1_14" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTI5OTYzLzI3NTQwMzguanBn/original/NJ4Z%2Bq.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI5OTYzLzI3NTQwNDAuanBn/original/1d0Nei.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI5OTYzLzI3NTQwNDIuanBn/original/Cz3HIi.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI5OTYzLzI3NTQwMzcuanBn/original/%2FRltFm.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI5OTYzLzI3NTQwNDEuanBn/original/i%2BBPEy.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI5OTYzLzI3NTQwMzkuanBn/original/dXM60Q.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI5OTYzLzI3NTQwNDMuanBn/original/evv6Mn.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI5OTYzLzQ4NTEyODguanBn/original/w28A7s.jpg]]
<h1>Baldi's Basics Plus version 0.3 has just released!</h1>
<h4>Check below for more info on the current state of the game!</h4>
<p>Baldi's Basics Plus is like the original game, but PLUS! The same cruddy edutainment horror type parody theme is back, but with hugely expanded gameplay features, including procedurally generated levels, field trip minigames, crazy random events, PLUS more characters, more items, and more chaos!<br></p>
<h1>This game is not what it seems...</h1>
<p>Baldi's Basics Plus&nbsp;is a survival horror roguelite that parodies cheap 90's edutainment and never takes itself too seriously. You will encounter strange characters, find useful items, go on field trips and more as you explore Baldi's ever changing super&nbsp;schoolhouse, and as you explore the game itself, you'll start to realize it is not what it seems...</p>
<p>So, what exactly do you do in this game? You collect notebooks while playing hide and seek with Baldi! Sounds easy right? Wrong.&nbsp;Baldi can hear many of your actions, and he uses those sounds to try and find you.&nbsp;He's also invited many friends to come and play, who can cause a lot of trouble. Get to know them though and you can use them to your advantage! You'll also find lots of items scattered around the school.&nbsp;These are the key to success.&nbsp;Use them wisely if you want to have a chance at beating Baldi!</p>
<h1>Near infinite replayability</h1>
<p>Baldi's Basics Plus randomizes so many different things, every time you play will be a different experience!</p>
<ul><li>Procedurally generated levels - The levels change every time you play!&nbsp;Not only will the layout change, but the types of rooms and obstacles, you find will change too!</li><li>Random events - One moment everything is fine, the next the school is flooding, or fills with fog!&nbsp;Random events can begin at any moment, so make sure you're ready for them!</li><li>Mixing and matching characters -&nbsp;Each time you play, you'll get to see random combination of characters.</li></ul>
<p>All these variables add up to make each playthrough a unique experience!</p>
<h1>Lots of ways to play</h1>
<p>Baldi's Basics Plus features many different modes to test players in different ways!</p>
<ul><li>Main&nbsp;Mode - Complete a series of randomly generated levels to win! Run out of lives and you'll have to start over.</li><li>Endless Mode&nbsp;-&nbsp;See how many notebooks you can collect before being caught by Baldi! Compete by playing on pre-made levels, or go crazy and try playing on a randomly generated one.</li><li>Challenge Mode - As you play more of the Main&nbsp;Mode, you'll unlock challenges! Challenges offer unique scenarios you won't find in the main game.&nbsp;One might have you sneaking around the school to avoid being seen by the Principal of the Thing, another might have both you and Baldi running at super high speeds!</li><li>Field Trips Mode&nbsp;- Play field trips found in the main game whenever you like! You can try to set high scores, or just practice!</li></ul>
<h1>Early access info</h1>
<p>Baldi's Basics Plus is going to launch this spring as an early access title.&nbsp;This means you will be able to buy and play the game, but it won't be finished yet!&nbsp;As such you can expect to encounter some bugs, and there will be some missing features for a while. However, you will also receive all future updates for free and get to be a part of this game's development! Check out the FAQ below for more info.</p>
<h4>Why Early Access?</h4>
<p>Baldi's Basics Plus has become a much longer project than I initially anticipated (That's game development for you!). However, I feel like it has reached a very playable and enjoyable state, so instead of making everyone wait who knows how long to be able to play, I've decided to release the game in early access so everyone can enjoy it sooner and take part in the development process!</p>
<h4>Approximately how long will this game be in Early Access?</h4>
<p>Currently, I'm thinking the game will probably be in development for another year or two until it reaches a state where I could call it finished.</p>
<h4>How is the full version planned to differ from the Early Access version?</h4>
<p>The full version will differ mainly by having more content. More NPCs, more random events, more items, more level styles, more everything! Of course, the full version won't just be the early access with more content. As the game develops there will be lots of polishing, QoL improvements, new major features added, etc. Perhaps most importantly, adjustments to game balance will mostly be done when the early access is coming to a close. The full version will also include some secrets and story elements that will not be found in the early access versions.</p>
<h4>What is the current state of the Early Access version?</h4>
<p>Keep an eye on this list as development progresses to see what's being added!</p>
<p>Features that are currently implemented include:</p>
<ul><li>Hide and Seek (The game's main mode), which requires the player to beat a series of randomly generated levels. (Currently has three levels to beat, more are planned)</li><li>Challenge Mode (Currently there are three challenge maps, more are planned)</li><li>Endless Mode</li><li>Field trip Mode</li><li>Custom NPC AI (Currently there are 12 fully functional NPCs, more are planned)</li><li>Procedural level generation</li><li>Random events (Currently there are seven, more are planned)</li><li>Field trips (Currently there are two, more are planned)</li><li>"Educational" activities, which are very short puzzles or mini-games that must be completed to collect notebooks in some modes (Currently there is one, more are planned).</li><li>Custom lighting system</li><li>In-game shop where you can purchase items between levels</li><li>Save and continue system, which will allow you to quit in the middle of a game of Hide and Seek&nbsp;and then continue later where you left off</li></ul>
<p>Planned features that are not yet implemented include:</p>
<ul><li>Secret levels</li><li>In-game achievement system.</li><li>Horror elements (This will come much later into development.&nbsp;Currently the game has very little in the way of spooks)</li><li>Crappy "edutainment" elements, including things like more interactive menus (Where you can click on things!) and other common edutainment game tropes.</li><li>Adaptive music</li></ul>
<p><br></p>
<h4>Will the game be priced differently during and after Early Access?</h4>
<p>Yes, as the game develops and more content is added, the price will increase accordingly.&nbsp;Of course, anyone who has already purchased the game will continue to receive all updates for free, even after price increases.</p>
<h4>How are you planning on involving the Community in your development process?</h4>
<p>Feedback is crucial to the development of this insane game! I will mainly use community feedback for fixing bugs, as well as balancing and quality of life improvements.</p>
<p>© 2020 Basically&nbsp;Games, LLC<br></p>
<p><a href="https://www.basicallygames.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzMxNzc5ODUucG5n/original/dLmlcI.png" alt="Visit the Basically Games website" title="Visit the Basically Games website" loading="lazy"></a></p>
<figure><a href="https://store.baldisbasics.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzE2NjcyOTMuanBn/original/TewARe.jpg" alt="Click here to enter!" title="Click here to enter!" style="max-width: 100%" loading="lazy"></a></figure>
<p class="text-center"><em><a href="https://store.baldisbasics.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Baldi's Basics merch is available here!</a></em></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/162Rp3OMLkg" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTk4NzcyLzQ3MTYzMTMucG5n/original/sKj5P8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTk4NzcyLzQ3MTYzMDUucG5n/original/O2EBvj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTk4NzcyLzQ3MTYzMTIucG5n/original/5J666n.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTk4NzcyLzQ3MTYzMDYucG5n/original/Qtdm%2B5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTk4NzcyLzQ3MTYzMDQucG5n/original/4SPm8g.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTk4NzcyLzQ3MTYzMTAucG5n/original/b%2BHhOp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTk4NzcyLzQ3MTYzMDkucG5n/original/t%2BWET3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTk4NzcyLzQ3MTYzMDgucG5n/original/Ak0caR.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTk4NzcyLzQ3MTYzMjYucG5n/original/zcl2gW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTk4NzcyLzQ3MTYzMTEucG5n/original/r7S%2Fed.png]]
<p>--FREE DEMO AT BOTOM OF PAGE--&nbsp;<br>Balloonys girlfriend got swept away by a strong gust of wind. Travel through 80 screens of spikes, traps, and pooping birds to save her.&nbsp;</p>
<p>Gameplay is inspired by the game Bubble Ghost, an old favourite of mine and although fans of Bubble ghost will see that gameplay is very different at the same time there is not much else to compare Ballonys adventure to.<br>Left click anywhere on the screen and Balloony will turn to face that direction, then Right click and he will fly off in the selected direction bouncing&nbsp;off of walls&nbsp;and generally being hard to control. Watch out for spikes, lava and other miscellaneous traps as you bounce your way through eighty screens of balloon popping mayhem.&nbsp;<br><br></p>
<div class=""><div class=""><iframe width="500" height="281" src="https://www.youtube.com/embed/j1XNHQVxCUM" frameborder="0" allowfullscreen=""></iframe></div><br></div>
<p></p>
<p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/j1XNHQVxCUM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI1MDY2OC83NTQ5MTAxLnBuZw==/original/6mmnkq.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1MDY2OC83NTQ5MDk2LnBuZw==/original/zo8MGO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1MDY2OC83Mjg4MjcyLnBuZw==/original/xKgw8i.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1MDY2OC83NTQ5MTAwLnBuZw==/original/vyY%2Bii.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1MDY2OC83NTQ5MTAyLnBuZw==/original/f1d5LM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1MDY2OC83NTQ5MDk5LnBuZw==/original/9cXvbc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1MDY2OC83NTQ5MTAzLnBuZw==/original/bpT5t2.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1MDY2OC83NTQ5MDk1LnBuZw==/original/rQls6c.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1MDY2OC83NTQ5MDk3LnBuZw==/original/1s1r2q.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1MDY2OC83NTQ5MDk4LnBuZw==/original/2vMeCb.png]]
<p><em><img src="https://img.itch.zone/aW1nLzQ1NjQwNDQucG5n/original/hMwkYx.png" loading="lazy"><br></em></p>
<p><em><br>BARD HARDER!</em> is a tabletop-inspired visual novel game about saving your friends from the Big Bad Evil Guy by using your strongest weapon: <strong>romance!</strong> So brush up on your pick-up lines and prepare some sexy tunes…what’s the worst that could happen?<br><br></p>
<p><img src="https://img.itch.zone/aW1nLzQ1NjQwNTQucG5n/original/dpAGr6.png" loading="lazy"></p>
<p><br><img src="https://img.itch.zone/aW1nLzQ1NjQwNTcucG5n/original/f%2F2OcD.png" loading="lazy"><br></p>
<h2><strong>♥ MULTIPLE ENDINGS&nbsp;♥</strong></h2>
<p>Unlock different endings and achievements based on how well you flirt! <br>Unique story paths make the game different with each playthrough.<br></p>
<h2><strong>♥ NEW FRIENDS&nbsp;♥</strong></h2>
<p>Make friends with <strong>Alden</strong>, <strong>Nia</strong>, and <strong>Presley</strong>, your three TTRPG buds.</p>
<h2><strong>♥ ORIGINAL MUSIC&nbsp;♥</strong></h2>
<p>An original soundtrack crafted for <em>BARD HARDER!</em> Features three magical Bard Songs, written in the three genres of music: Power Ballad, Lullaby, and Polka.&nbsp;</p>
<h2><strong>♥ A COMPLETE NARRATIVE EXPERIENCE&nbsp;♥</strong>&nbsp;</h2>
<p>A self-contained, 30 minute story that takes you from <strong>rivals to romance</strong>.</p>
<h2><strong>♥ LOADS OF ORIGINAL ART ♥</strong></h2>
<p><strong>NINE</strong> unique characters.<br>Hang out with them and flirt with all of them even?? I wouldn’t judge</p>
<h2><strong>♥ EAT HOT CHIP, BE GAY&nbsp;♥</strong></h2>
<p>Self-explanatory</p>
<p><img src="https://img.itch.zone/aW1nLzQ1NjQwODMucG5n/original/eMiO1s.png" loading="lazy"><br></p>
<h2><strong><em>- Here's a song about why YOU should play BARD HARDER!&nbsp;-</em>&nbsp;<br></strong></h2>
<p><strong>(To be sung to the tune of Bonnie Tyler's 'Total Eclipse of the Heart')</strong></p>
<p><em>(Play this game)</em></p>
<p>Every now and then you get a little bit lonely ‘cause
<br>You don’t have real life friends</p>
<p><em>(Play this game)</em></p>
<p>Every now and then you get a little bit tired
<br>Of playing all those other VN’s</p>
<p><em>(Play this game)</em></p>
<p>Every now and then you get a little bit nervous
<br>That the best of all the games have been played</p>
<p><em>(Play this game)</em></p>
<p>Every now and then you get a little bit bored, and then<br>
It’s time to play this bard game we made&nbsp;</p>
<p><em>(Play this game, wise guy)</em></p>
<p>Every now and then your eyes are hearts</p>
<p><em>(Play this game, wise guy)</em></p>
<p>Every nOW AND THEN YOUR EYES ARE HEARTS&nbsp;</p>
<p>So you need to PLAY this GAME<br>So you can seDUCE a SKELLY<br>And life will never BE the SAME<br>Everyone will be SO JELLY</p>
<p>If the answers you pick are all rIGHT
<br>When you play him a SONG</p>
<p>You can even save your friends, and maybe the day<br>YOU’RE FLIRTING WITH THE DARK LORD SO WHAT MORE CAN I SAY<br><em>(WHAT MORE CAN I SAY)</em></p>
<p>I don’t know what to DO, this game will be your SPEED<br>It even has a CATGIRL SO WHAT MORE DO YOU NEED!!?!!&nbsp;</p>
<p>DOWNLOAD AND PLAY IT TONIGHT!??!!
<br>IT’S ONLY 1.99!!!<br>IT’S ONLY ONe ninety nine……….</p>
<p>Once upon a time, love was terribly tough…
<br>Now you’ll see it isn’t so hard…&nbsp;</p>
<p>There’s nothin’ more to say</p>
<p>Just put your lips on a Bard</p>
<p><img src="https://img.itch.zone/aW1nLzQ1NjQxMDIucG5n/original/OE0nyU.png" loading="lazy"><br></p>
<p>Writing and Music by <a href="https://twitter.com/EthanNessDM" rel="nofollow noopener" referrerpolicy="origin">Ethan Ness</a><br>Art and Design by <a href="https://mypurplesummer.tumblr.com/" rel="nofollow noopener" referrerpolicy="origin">Alex M. Lee</a><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/tm6qmbywakc" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODAwNjE0LzQ0ODMyNjYucG5n/original/oFt11L.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODAwNjE0LzQ0ODQyNzQucG5n/original/lukjWP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODAwNjE0LzQ0ODQyNzUucG5n/original/vOVOnx.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODAwNjE0LzQ1NzAzNjcucG5n/original/qVTvww.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODAwNjE0LzQ1NzAzNjgucG5n/original/kSjTR3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODAwNjE0LzQ1Njc1NTYucG5n/original/TTAh%2FJ.png]]
<p>Used in the Epic Megajam 2021, created in Substance Designer by me, and now available for purchase! Both zip files contain the Ambient Occlusion, Base Color, Height, Metallic, Normal, and Roughness maps for each materials, all 2048 x 2048 pngs. (Metallic and Roughness maps may be replaced with a single number) </p>
<p>Enjoy!<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNzEzMy84MzE2OTI4LmpwZw==/original/Z9Wvhv.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNzEzMy84MzE2OTI5LmpwZw==/original/IwxCAd.jpg]]
<p><strong>BasketBelle</strong> is an experimental 2D basketball-based platformer. Each Chapter of the game uses the mechanics and idea of basketball in a different way. At one point you might be dribbling inside the intestines of a purple blob creature. At others, you're likely to be dunking above the clouds in front of the Parisian moon.&nbsp;<br><br>A dynamic soundtrack and unique cardboard visuals help tell the story of a sister who must be saved through the power of basketball.</p>
<ul><li>Dunk, dribble, and crossover through 8 Chapters spanning throughout the impromptu courts of Paris&nbsp;</li><li>Each Chapter takes the mechanics of basketball and applies them in different ways. Some chapters are more action, some are more puzzle. And then there are the strange chapters.</li><li>Music is tied directly to the gameplay, though it's all passively controlled. For example, every time you dribble, you hear a bass hit. Shoot the ball, and the percussion stops.&nbsp;</li><li>Visuals in the game are a unique mix of cardboard and color, every scene popping off the screen.</li><li>Included with the game! :D<ul><li>The BasketBelle EP: Full Soundtrack + Bonus Tracks (MP3) + Cover Art&nbsp;</li><li>BasketBelle sketchbook: Full-color PDF including sketches and liner notes</li><li>Browser version of&nbsp;BasketBelle&nbsp;(playable on Mac and Linux as well)</li><li>Access to&nbsp;Making Of Featurette! (11 min hosted video)</li></ul></li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/0_iGRUaYFLM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjE2NTYwLzEwMjE4MTEucG5n/original/xkBhjK.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE2NTYwLzEwMjE4MTIucG5n/original/v8HdJc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE2NTYwLzEwMjE4MTMucG5n/original/hu3j2M.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE2NTYwLzEwMjE4MTQucG5n/original/ht0jbz.png]]
<p><em>Bat Lizard Bonanza</em> is an arcade shoot-em-up (or shmup)&nbsp;for the NES. It's inspired by games like <em>Gradius&nbsp;</em>and&nbsp;<em>Parodius</em>.</p>
<p>The settlers have been exploiting Irata’s&nbsp;natural resources for many solar cycles.&nbsp;The Wampus took back the mountains.&nbsp;The Wart Worms took back the mines.&nbsp;But now Lizzy the Bat Lizard&nbsp;must embark on a quest to end the&nbsp;Settler scourge once and for all,&nbsp;dauntless in the wind with the echoes of her ancestors at her back.</p>
<p><em>Bat Lizard Bonanza</em>&nbsp;features a rocking soundtrack, seven levels, and over 14&nbsp;boss fights.</p>
<p><em>* * *</em></p>
<p><strong>Bat Lizard Bonanza&nbsp;</strong>is the&nbsp;<strong>third&nbsp;</strong>game in&nbsp;the MULEniverse series, which narratively extends the work of Danielle Bunten Berry's MULE economic simulator game.</p>
<p>The MULEniverse games include:</p>
<p>1.&nbsp;<a href="https://johnvanderhoef.itch.io/wampus" target="_blank">Wampus</a></p>
<p>2.&nbsp;<a href="https://johnvanderhoef.itch.io/wart-worm-wingding" target="_blank">Wart Worm Wingding</a></p>
<p>3.&nbsp;Bat Lizard Bonanza</p>
<p>4.&nbsp;<a href="https://johnvanderhoef.itch.io/leggite-luta-livre" target="_blank">Leggite Luta Livre</a></p>
<p>5.&nbsp;<a href="https://johnvanderhoef.itch.io/nemulesis" target="_blank">neMULEsis</a><br></p>
<p><a href="https://johnvanderhoef.itch.io/leggite-luta-livre-demo" target="_blank"></a></p>
<p>***<br></p>
<p>Controls</p>
<p>Directional Pad -- move in 8 directions</p>
<p>B -- standard projectile, the bat echo</p>
<p>A -- bat bomb (once upgraded via pickup)</p>
<p>Hold B and press A -- bat bomb 2 (once upgraded via pickup)</p>
<p>Once weapons have been fully upgraded, all subsequent weapon upgrade pickups become screen-clearing triggers -- BOOM!</p>
<p>***</p>
<p>FOR THE BEST EXPERIENCE:&nbsp;I&nbsp;recommend getting an original NES&nbsp;controller and a USB adapter for it. You can find one&nbsp;<a href="https://www.retrousb.com/product_info.php?cPath=21&amp;products_id=158" rel="nofollow noopener" referrerpolicy="origin">here</a>&nbsp;or&nbsp;<a href="https://www.amazon.com/Tomee-NES-USB-Controller-Adapter-pc/dp/B00HM3QCN2/ref=sr_1_3?ie=UTF8&amp;qid=1549047471&amp;sr=8-3&amp;keywords=NES+controller+usb+adapter" rel="nofollow noopener" referrerpolicy="origin">here</a>. You can also use any gamepad for a similar experience.</p>
<p>***</p>
<p>Bat Lizard Bonanza was made possible thanks to&nbsp;<a href="http://www.thenew8bitheroes.com/" rel="nofollow noopener" referrerpolicy="origin">NESMaker</a>, an engine developed to make NES development accessible.</p>
<p>In order to play Bat Lizard Bonanza, you'll need an NES emulator. I recommend&nbsp;<a href="http://www.fceux.com/web/home.html" rel="nofollow noopener" referrerpolicy="origin">FCEUX</a>. Many emulators do not have mapper 30 support, which is the mapper NESMaker uses for its games.&nbsp;</p>
<p>Once you have FCEUX downloaded, start it up and&nbsp;open the Bat_Lizard_Bonanza.nes ROM. The game should work fine.</p>
<p><strong>FOR MAC USERS:</strong>&nbsp;Download&nbsp;<a href="https://openemu.org/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">OpenEMU</a>&nbsp;for Mac. When you open the program, right click on the Nintendo (NES) category on the left hand sidebar and select "Default Core."&nbsp;Then select FCEU.&nbsp;</p>
<p>This game is also playable via the Everdrive and Powerpak, provided you have updated to Mapper 30 support. It's also playable via the NES Mini, again provided you have Mapper 30 support in your emulator of choice.</p>
<p>* * *</p>
<p>Bat Lizard Bonanza is part of the MULEniverse.<span></span></p>
<p>* * *</p>
<p>More from this developer:&nbsp;<a href="https://johnvanderhoef.itch.io/" target="_blank">https://johnvanderhoef.itch.io</a></p>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/Uq0ZhI6Xh-A" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzQxMDg4LzQyNjIyMjcucG5n/original/PY%2FKJB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQxMDg4LzQyNjIyMjgucG5n/original/%2FPG1Qf.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQxMDg4LzQyNjIyMjYucG5n/original/WjGiRJ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQxMDg4LzQyNjIyMzEucG5n/original/X5cmZg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQxMDg4LzQyNjIyMzAucG5n/original/WdZ6Bc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQxMDg4LzQyNjIyMjkucG5n/original/ORlhRb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQxMDg4LzQyNjIyMzIucG5n/original/Jwh6fL.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQxMDg4LzQzMTcxODYuanBlZw==/original/YLntd4.jpeg]]
<p>*Crash* ...<em>That&nbsp;</em>was the sound of you landing face first in an abyss filled with monsters, traps, and eldritch secrets. But hey, it's ok barbarian, you are not alone: Pip, your best friend -and mysteriously luminous bat- is with you. And it's only by truly working together that you'll be able to solve the abyss' puzzles, fight off its hungry denizens, discover its true purpose and maybe—just maybe—make it out alive with the secrets of the primordials.<br></p>
<figure><img src="https://steamcdn-a.akamaihd.net/steam/apps/837460/extras/steam_crash_superoptim.gif?t=1602129150" alt="Intro" title="Intro" loading="lazy"><br></figure>
<h3>Reviews</h3>
<blockquote>“If you like Metroidvanias, you should play this game. If you don’t like Metroidvanias, you should still play this game.”</blockquote>
<blockquote>92/100 – <a href="https://steamcommunity.com/linkfilter/?url=https://cogconnected.com/review/batbarian-testament-primordials-review/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">COGconnected</a></blockquote>
<blockquote>“From the lushly drawn environments and detailed character sprites to the phenomenally atmospheric music that brings the game’s world to life, it’s a hell of an experience and easily one of my favorite indie games of 2020.”</blockquote>
<blockquote>4.5/5 – <a href="https://steamcommunity.com/linkfilter/?url=https://www.heypoorplayer.com/2020/10/28/batbarian-testament-of-the-primordials-review-switch/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">HeyPoorPlayer</a></blockquote>
<blockquote>“A wonderfully crafted Metroidvania that should have genre fans plenty excited. It's blending of combat, platforming, and puzzling keeps the gameplay fresh and varied throughout its entire 20-hour story.”</blockquote>
<blockquote>85/100 – <a href="https://steamcommunity.com/linkfilter/?url=https://www.pcinvasion.com/batbarian-testament-of-the-primordials-review/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">PC invasion</a></blockquote>
<p>
</p>
<p><img src="https://img.itch.zone/aW1nLzYxODc0NjQuZ2lm/original/TnkXfQ.gif" loading="lazy"><br></p>
<p><em>Change Pip's elemental aura to block bullets of the opposite element!</em><br></p>
<h3>Key Features</h3>
<ul><li>Gain new skills for your barbarian and elemental powers for Pip, the (magic) bat!</li><li>A narrative-driven metroidvania with dialogue choices and plenty of humor and snark.</li><li>Big numbers! 400+ rooms, 20+ hours of evolving gameplay, 10+ bosses, 60+ minutes of music and almost 30,000 words of text that a barbarian would never bother to read!</li><li>Puzzles.</li><li>RPG elements with a level-up minigame.</li><li>Contains more fruit throwing than probably any other game.</li><li>Companions that join you in your quest and help you out in fights.</li><li>Multiple endings based on your choices and actions.</li><li>The thrown fruit are NOT wasted, they are eaten by the bat (who is magic).</li><li>A ton of secrets and hidden loot just about everywhere.</li><li>The (magic) bat has a whopping FIVE different squeaking sounds!</li><li>Fewer repetitive jokes than this description has.</li></ul>
<figure><br><img src="https://img.itch.zone/aW1nLzYxODc1ODYuZ2lm/original/HA%2B%2FlS.gif" loading="lazy"></figure>
<p><em>A controller is recommended for an optimal experience.<br></em></p>
<p><em>Batbarian: Testament of the Primordial is also available for Switch.</em></p>
<p>Additional Content:<br></p>
<p><a href="https://dangen-entertainment.itch.io/batbarian-original-soundtrack" target="_blank">Batbarian: Testament of the Primordials Original Soundtrack</a></p>
<p><a href="https://dangen-entertainment.itch.io/batbarian-game-ost-bundle" target="_blank">Batbarian: Testament of the Primordials + Original Soundtrack Bundle</a><a href="https://dangen-entertainment.itch.io/batbarian-game-ost-bundle" target="_blank"><br></a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/1VztcdL8FzA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzgyOTMxLzQzODExODIuanBn/original/K%2BeULC.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzgyOTMxLzQzODExODUuanBn/original/3ODDlg.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzgyOTMxLzQzODExODMuanBn/original/ngDE5%2B.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzgyOTMxLzQzODExODEuanBn/original/dU2je0.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzgyOTMxLzQzODExODAuanBn/original/Rt%2FVnx.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzgyOTMxLzQzODExODQuanBn/original/p9bhDd.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzgyOTMxLzQzODExODYuanBn/original/pEbp5L.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzgyOTMxLzQzODExODcuanBn/original/57%2BqD6.jpg]]
<h3>Welcome home, contestant!</h3>
<p>You have proven yourself an&nbsp;exemplary devotee, and therefore have been&nbsp;selected to participate in a series of games curated by those who view us from above. This is an honor of high degree, to be a human participant&nbsp;in an&nbsp;ethereal show. Be very proud of yourself!</p>
<p>Uh oh, there is a catch! Angels, being extra-dimensional beings, are very hard to comprehend for your puny human mind, skin, and body. That means if you take too long you will melt! So get out of this place as soon as possible! (But do try and get a high score!)</p>
<div class="custom-altTilt"><h3>Play several exciting minigames to win it all!</h3></div>
<ul><li>Hunt a demon!</li><li>Type for your life!</li><li>Reach into a pit of plants!</li><li>Find secret angel passcodes!</li><li><strong>RUN.</strong></li><li>Jump through a hoop!</li><li>Spin a wheel!</li></ul>
<h3>Controls</h3>
<ul><li>WASD - Move</li><li>Mouse - Look</li><li>E - Examine</li><li>Escape - Pause</li></ul>
<div class="custom-altTilt"><h3>Extra</h3></div>
<p>Headphones recommended! This game has audio hints which makes certain things easier!</p>
<p>This game has a time slowing feature!&nbsp;In the case that you find this game too difficult, you can change the speed of time at any point to better suit your need.<br></p>
<p>Check out the soundtrack:</p>
<iframe style="border: 0; width: 100%; height: 42px" src="https://bandcamp.com/EmbeddedPlayer/album=3390309008/size=small/bgcol=ffffff/linkcol=f171a2/transparent=true/"><a href="http://fackel.bandcamp.com/album/music-for-2-games" rel="nofollow noopener" referrerpolicy="origin"><span class=""></span>music for 2 games by fackel</a></iframe>

<iframe width="720" height="450" src="https://www.youtube.com/embed/EdTI2mWW8Dw" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTA2MDgzLzM1MjgwMDMuZ2lm/original/GIDZHr.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA2MDgzLzI5ODcxOTMuZ2lm/original/bJ0nhL.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA2MDgzLzI5ODcxOTEuZ2lm/original/7dpYAT.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA2MDgzLzY2ODYwODcucG5n/original/bIqVyW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA2MDgzLzY2ODYwODgucG5n/original/qjPHdO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA2MDgzLzY2ODYwODkucG5n/original/%2B63XNu.png]]
<p>
	Beglitched is a game about insecurity, in our computers and ourselves. In a pastel world of networks where nobody truly knows what they're doing, hacking is a magical art and the notorious <strong>Glitch Witch</strong> is the most premium archmagi of the net. By random circumstance, <strong>YOU</strong> are her new apprentice. You must use your wits and cunning to unravel the mechanisms of an alien computer and survive amongst a veritable web of clowns, leftclickers, and filedraggers.<span></span>
</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/Z6gFT7e5LVI" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODQ4NDAvNDEzNDUyLnBuZw==/original/G9CxFM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODQ4NDAvNDEzNDUzLnBuZw==/original/NstVAV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODQ4NDAvNDEzNDU0LnBuZw==/original/UY6I07.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODQ4NDAvNDEzNDU3LnBuZw==/original/39eL3W.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODQ4NDAvNDEzNDU1LnBuZw==/original/OydVR2.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODQ4NDAvNDEzNDU2LnBuZw==/original/%2FZHr70.png]]
<p></p>
<p><strong>Behind the Masc</strong> is a game zine using historical and cultural archetypes to re-envision masculinity through the eyes of non-cisgender masculine creators. The creators include experienced game designers and illustrators as well as newer people to the game industry. The project hopes to draw attention to indie creators in tabletop games who are still marginalized people, but can fall into the ether when it comes to representation and people campaigning for their work to be seen. &nbsp;</p>
<p>The included works are:</p>
<p></p>
<p>The Mabon Monastery, by Lawrence Gullo, a Dungeons &amp; Dragons 5th Edition background.<br>Chosen of the People Sorcerer, by Tracy Barnett, for Dungeons &amp; Dragons 5th Edition.<br>Ming Dynasty Transgender Man Illustration, by Raiden Otto.<br>The Minotaur, by Aven Elia McConnaughey, a Monsterhearts skin.<br>The Demi, by Patrick Lickman, a Monsterhearts skin.<br>Echoes, by Beau Jágr Sheldon, an audio-text lonely (single player) game. (complete game)<br>Palisade, by Adrian Heise, a Twine game. (complete game using Twine)<br>Harlequin Illustration, by Lemmo Pew.<br>The Grifter, by Eli Eaton, an Apocalypse World playbook.</p>
<p></p>
<p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/u-8FDKCduSA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzE0NzA4LzE1NDc5NjQuanBn/original/Y90Oss.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzE0NzA4LzE1NDc5ODMuanBn/original/So8RNu.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzE0NzA4LzE1NDc5NjcuanBn/original/1tmWX6.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzE0NzA4LzE1NDc5NjkuanBn/original/0q%2FKQL.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzE0NzA4LzE1NDc5NjYuanBn/original/fFr9F1.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzE0NzA4LzE1NDc5NzAuanBn/original/hzxS6g.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzE0NzA4LzE1NDc5NjguanBn/original/%2FDwnl9.jpg]]
<p><span class="">You were loved.</span>
</p>
<p><span class="">You are loved.</span>
</p>
<p><span class="">You have always been loved.</span>
</p>
<p>BELOVED is a role-playing game rooted in the <a href="https://srd.mousehole.press/" rel="nofollow noopener" referrerpolicy="origin">Lost &amp; Found SRD</a>.&nbsp;Drawing inspiration from sources&nbsp;such as&nbsp;<em>Toy Story, The Velveteen Rabbit, Small Soldiers</em> and&nbsp;<em>Among the Sleep</em>, you are cast in the role of&nbsp;one of six Beloved - childhood toys acting as playmates, guardians, and comfort for the Children you care for.</p>
<p>Across three Acts your Beloved will meet and guide six Children through life, as you contemplate your Beloved's role in their futures and in the wider world around them. You will accomplish this by answering questions, selecting prompts,&nbsp; and telling the intimate tale of a toy and the Children who love and need them.&nbsp;<br></p>
<p>This game was made for the <a href="https://itch.io/jam/lost-and-found">Lost &amp; Found Jam</a>.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE4Nzk4MS82OTI4MzcwLnBuZw==/original/dQhLg8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE4Nzk4MS82OTI4MzM5LnBuZw==/original/cOf%2FGW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE4Nzk4MS82OTI4MzM3LnBuZw==/original/8WFLdb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE4Nzk4MS82OTI4MzM4LnBuZw==/original/Aem5Xk.png]]
<p><em>The world as you knew it is gone, destroyed in the war that was. You awake in crumbling ruins, lost and trapped in a cycle of death. You must seek the fire within and escape to weave your own fate.</em><br></p>
<p><em>You are an adventurer, lost and adrift. You must navigate the Cave of Echoes, retrieve your weapons and equipment, acquire your mead flask, and overcome the stone demon to escape further into the Nine Realms.</em>
 </p>
<p><em>Death is not the end.</em>
 </p>
<p><strong>Beneath the Broken Sword</strong> is a 12-page, black and white adventure for Norse fantasy tabletop RPG <strong>Runecairn</strong>, and serves as an introductory dungeon crawl for new adventurers.
 </p>
<h4>Beneath the Broken Sword Includes: </h4>
<ul> <li>Play designed for two players, one Warden and one Adventurer.
 </li><li>12-room tutorial dungeon intended to introduce new players to the system and world of Runecairn.
 </li><li>A dangerous new monster to be overcome, the stone demon.
 </li><li>8 new Omens within the Cave of Echoes to test the Adventurer.
  </li></ul>
<p>&nbsp;
 </p>
<p>Illustrated throughout with evocative black and white line-art.</p>
<h3>What Others Have Said</h3>
<blockquote>Thank you for such an awesome game - I loved reading Runecairn and it’s on my list of 2022 games to get to the table. And the layout is lovely too.
 </blockquote>
<p>– Rich August (<a href="https://twitter.com/RpgAugust" rel="nofollow noopener" referrerpolicy="origin">@RpgAugust</a>), Steamforged Games
 </p>
<blockquote>If you're looking for a moderately crunchy duo TRPG, or if you're a fan of Souls games, or if you want to see a stellar adaptation of video game mechanics to tabletop, I would strongly recommend giving Beneath the Broken Sword (and Runecairn) a shot.
 </blockquote>
<p>– Richard Kelly (<a href="https://twitter.com/SprintingOwl" rel="nofollow noopener" referrerpolicy="origin">@SprintingOwl</a>), designer
 </p>
<blockquote>Beneath the Broken Sword really works. It teaches the player how to play the game, and the Warden how to design new levels. It's compact, to the point and well written. The layout is good, and in keeping with OSR+ design philosophy.
 </blockquote>
<p>— Tuomas Vau (<a href="https://twitter.com/TuomasVau" rel="nofollow noopener" referrerpolicy="origin">@TuomasVau</a>), designer
 </p>
<p><strong>Requires <a href="https://byodinsbeardrpg.itch.io/runecairn" target="_blank">Runecain:&nbsp;Core Rules</a>:</strong><br></p>
<p>
<iframe frameborder="0" src="https://itch.io/embed/1182201?linkback=true&amp;bg_color=222222&amp;fg_color=eeeeee&amp;link_color=FFC600&amp;border_color=363636" width="552" height="167"><a href="https://byodinsbeardrpg.itch.io/beneath-the-broken-sword">Beneath the Broken Sword by By Odin&#x27;s Beard RPG</a></iframe>
</p>
<p>The adventure name <strong>Beneath the Broken Sword&nbsp;</strong>was generated by Chris Bissette's <a href="https://loottheroom.uk/random-adventure-title-generator" target="_blank" rel="nofollow noopener" referrerpolicy="origin">random adventure generator</a>&nbsp;and this adventure has been submitted into the <a href="https://itch.io/jam/random-adventure-jam" target="_blank">Random Adventure Jam</a>.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE4MjIwMS82OTU5MzIyLnBuZw==/original/gYSsqh.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE4MjIwMS82OTU5MDgwLnBuZw==/original/VqhxkP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE4MjIwMS82OTYwMjc4LnBuZw==/original/VVY5Y1.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE4MjIwMS82OTYwMjg2LnBuZw==/original/a9BjCv.png]]
<h3>What the game is about</h3>
<p><strong><span></span></strong></p>
<p>“Beyond Super: Life Behind the Mask” is a one-player journaling game that takes a peek behind the mask of a superhero.</p>
<p>The job of superheroes is just like many other jobs, at some point it becomes routine. But other challenges arise around it. Missed your moms birthday because you were saving the city from Doc Trine? Handed in work late because you were busy running from an intelligent turtle turned supervillain?</p>
<p>How do you deal with the challenges of a regular life once you have a handle on your after-hours job? Can you keep a regular job? A relationship? Raise kids? Who do you have to lie to and who can you be honest with?</p>
<p>The stakes are not if you can save the city. They are unfulfilled dreams, burnout, loss of identity and loneliness. Who you have to lie to, who you don’t spend enough time with, who you lose, and who you have to pretend to be, to protect those you love most.&nbsp;</p>
<h3>What the characters do</h3>
<p>The characters in this game try to navigate regular life while dealing with all the issues that come with it, in addition to those that come with their after-hours job of being a superhero. They will have to prioritize, sacrifice, lie and pretend, while attempting to lead two lives at once.&nbsp;</p>
<h3>What the player does</h3>
<p>The player creates a world and character, interprets prompts and tells the story of their character. They are both writer and director and decide how their character navigates life by creating a journal entry for each week during a year of their characters life.</p>
<h3>Notes</h3>
<ul><li>Players: 1 (optional 2 player rule)</li><li>Duration: a couple of hours, depending on how detailed you write</li></ul>
<p><strong>This is the first full version of this game. If you find errors, have recommendations or find anything wrong or unclear let me know at <a href="https://twitter.com/maxkaemmerer" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@maxkaemmerer</a> on twitter or leave a comment here on itch. I would appreciate any feedback,&nbsp; a short comment on whether or not you enjoyed playing it would be appreciated.</strong><br></p>
<p>This game was created as a submission to the “<a href="https://itch.io/jam/beyond-the-super-jam" target="_blank">Beyond The Super</a>” jam held by Riley Rethal and is based on “The Quiet Year” by Avery Alder.<span></span></p>
<p><br></p>
<hr>
<p><strong>Also check out:</strong></p>
<iframe frameborder="0" src="https://itch.io/embed/862929?linkback=true&amp;bg_color=363f3e&amp;fg_color=fff9e9&amp;link_color=fff9e9&amp;border_color=5c6564" width="552" height="167"><a href="https://maxkaemmerer.itch.io/mayweather"><span class=""></span>MAYWEATHER by Max Kämmerer (he/they)</a></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjQ2NjM0LzM0NjUyMDAucG5n/original/9ZGc77.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjQ2NjM0LzM0OTM4MjkucG5n/original/hJb4Ss.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjQ2NjM0LzM0OTM4MzAucG5n/original/xoq29j.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjQ2NjM0LzM0OTM4MzIucG5n/original/Nmqg6i.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjQ2NjM0LzM0OTM4MzEucG5n/original/0Zw5Iy.png]]
<h2>Press</h2>
<p>"Eight years in the making, Philip Bak's debut project is a twin stick shooter in which chaotic genius can be found." - <a href="http://www.eurogamer.net/articles/2016-03-07-bezier-review" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong><em>Simon Parkin, Eurogamer</em></strong></a><br></p>
<p>"The link between Bezier and Asteroids is more than simple coincidence. The game is evidently inspired by the Atari classic, even containing its own white-outlined chunks of space rock that subdivide when shot by the player. Unlike Asteroids, however, blasting Bezier's meteoroids will release a triangular 'Firefly', which follows and fights alongside the player. In this and a dozen other ways Bezier elevates Atari's initial concept, transforming that elegantly spartan shoot 'em up into a thrilling kaleidoscope of breathless mayhem.<span></span>" - <a href="http://www.bit-tech.net/gaming/2016/03/08/bezier-review/1/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Rick Lane, Bit-Tech</a></p>
<p>
"It's a hectic twin-stick shooter that has effortlessly swallowed my entire morning, and is probably going to eat up most of the evening too." - <a href="http://www.eurogamer.net/articles/2015-02-24-bezier-a-curvy-twin-stick-shooter-to-cherish" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong><em>Christian Donlan, Eurogamer</em></strong></a>
</p>
<p>
	"Bezier is a shiny twin-stick shooter, complete with all the explosions and mayhem that entails, and it's very good at that. What it adds on top of that is a story told only in snippets at the beginning of each stage. At least, to start with. When it starts reinforcing the story through gameplay, the cruelty of the villain becomes more than just words." - 
	<a href="http://indiegames.com/2015/02/story-driven_twin-stick_shoote.html" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong><em>Lena LeRay, Indie Games</em></strong></a>
</p>
<p>"It all makes for a captivating, unique and slightly unhinged experience. And I love it so very much.<span></span>" - <strong><em><a href="http://www.merseyremakes.co.uk/gibber/bezier/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Rob Fearon, Retro Remakes</a></em></strong></p>
<p>
	"The soundtrack itself is worthy of praise. I paid the extra few dollars in order to get it, even though I had no idea if it'd be any good, and I'm glad I did. It's phenomenal." - 
	<a href="http://www.mediadetour.com/2015/02/bezier-review/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong><em>Tyler Selig, MediaDetour</em></strong></a>
</p>
<p>
	"Bezier is a fast paced twin stick Geometry Wars-Style blaster full of varied enemy design, frantic gameplay and more visual flair than a burning Lamborghini filled with fireworks and glitter." - 
	<strong><a href="http://www.alphabetagamer.com/bezier-beta-download/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><em>Calum Fraser, AlphaBetaGamer</em></a>
</strong></p>
<p>
	<a href="http://www.alphabetagamer.com/bezier-beta-download/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"></a>"It's beautiful and more than a little wacky." - <u><strong><em><a href="http://www.rockpapershotgun.com/2014/10/05/bezier-free-shooter-download/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><em>Ben Barrett, Rock Paper Shotgun</em></a></em> </strong></u></p>
<p><br></p>
<h2>Player Feedback<br>
</h2>
<p>"Outstanding. Here's an example of a game that both quintessentially represents, as well as broadens its genre. If you enjoy dual stick shooters, this is unmissable." - <strong><u><em><a class="" href="http://steamcommunity.com/profiles/76561198119144356/recommended/381320/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Gabrienb @ Steam</a></em></u></strong></p>
<p>"Gave the game a try. Just wanted to take a quick look as I didn't have enough time to really get into it. Felt like I wouldn't be able to stop playing unless the world ended. This game is awesome." - <a class="" href="http://steamcommunity.com/id/Germaximus/recommended/381320/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong><em>Germaximus @ Steam</em></strong></a><u><strong><em></em></strong></u></p>
<p>"Great fun. I've been waiting for this game for ages and it doesn't disappoint. Very fast moving and addictive. There's no time to rest, there's enemies to kill!" - <a class="" href="http://steamcommunity.com/profiles/76561198047438354/recommended/381320/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong><em>ash @ Steam</em></strong></a><span></span></p>
<p>"Is it that good you ask?...why yes..yes it is. This may well be in the top 5 twin sticks I've played and yes I've played alot over the past 35 years of gaming starting with Robotron at the age of 4." - <a class="" href="http://steamcommunity.com/id/rgnfishsticks/recommended/381320/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong><em>Fishsticks @ Steam</em></strong></a><u><strong><em></em></strong></u><br></p>
<p>"All I can say in the end is it reminds me of all those days I spent playing away on the machines at my granda's old arcade. That alone makes this wonderful for me." - <span></span><a class="" href="http://steamcommunity.com/id/12899412/recommended/381320/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong><em>GeT_JoYe @ Steam</em></strong></a><br></p>
<p>"Gorgeous Neon effects hectic action and LOTS of enemies to take out followed by an epic soundtrack. If you like twin stick shooters like Geometry Wars you'll love this. I've only been playing for 1 hour (lol) at the time of typing this and I already know I'm going to get a lot of enjoyment here. Do I recommend it? I most certainly do :D 9/10<span></span>" - <a class="" href="http://steamcommunity.com/id/TheEndlessVortex/recommended/381320/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong><em>TheEndlessVortex @ Steam</em></strong></a><u><strong><em></em></strong></u></p>
<p>"Beautiful game with a fantastic soundtrack. I'm a sucker for twin-stick shooters and this tried to bring something different to the market with the story." - <a class="" href="http://steamcommunity.com/profiles/76561198015842439/recommended/381320/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong><em>fnminman @ Steam</em></strong></a><u><em><strong></strong></em></u><br></p>
<p>"Interesting twin stick shooter with slick graphics, fun, tough gameplay and great music." - mojoxrisen @ Steam Greenlight</p>
<p>"The game is really, really amazing - looks great, sounds great (soundtrack is on Bandcamp if you'd like to preview it) - loads of original ideas etc. Can't recommend this enough" - shrewdlogarithm @ Steam Greenlight</p>
<p>"I seen it for 30 sec and bought it and let me tell you is pretty amazing.. it brings an excitement games of this type do not have. Vote for this game I highly recommended. Music is pretty awesome too.. One of the best sound tracks I heard this year." - Knight-Crawler @ Steam Greenlight</p>
<p>"I bought it on Desura and I would buy it again on Steam to support the developer. This is unabashed old school gaming madness!" - jcaracc2003 @ Steam Greenlight</p>
<p>
	"Holy crap this game is great This is the twin stick shooter evolved Took a few minutes to get my head round it, but once I did - OMFG Beautiful art style, OUTSTANDING soundtrack and really tight gameplay - Love it to bits" - Midian808 @ Desura<br>
	
</p>
<p>
	"Just played the demo. This game is bloody amazing! About to purchase...<span></span>" - IronSoldier @ Eurogamer
</p>
<p>
	"Love it!" - kirkblack70 @ Desura
</p>
<p>
	"A really fun and beautiful game, that you seem to have really well polished during your 6 years development process." - MrModeste @ Desura
</p>
<p>
	"Read about this on Rock Paper Shotgun and had to check it out, and I'm very glad I did. Great looking, amazing music and quality voice work. I love the visual design." - alffly @ Desura
</p>
<p>
	"Holy crap this game is great. The soundtrack alone is enough to justify a download" - DYFE @ Desura</p>
<p><br></p>
<h2>The Blaster Is A Dying Heart<br>
</h2>
<p>
	Bezier is a dual stick blaster set inside a vast computer built deep underground. The story traces the principal's escape from this "Noah's Ark" gone wrong. A simple shooter on the surface, the deeper narrative pulls in his relationship between evolution and god, family and love. These themes question his motives, force him to confront what is real and lead him to salvation.
</p>
<p>
	Powered by the BezierSynth traditional rendering is renounced in favour of a fluid aesthetic guided by story elements, player interaction and the audio engine. An eighty minute soundtrack blends together orchestra, synthesizers and many ethnic instruments to drive the drama through fifteen zones. Almost one hundred different enemies, voice acting, reward based achievements and different game modes make Bezier the mindless blaster with a big heart.
</p>
<p><br></p>
<h2>Support</h2>
<p>If you have any problems with Bezier then firstly, we're very sorry that has happened. It is certainly not supposed to. Secondly, please get in touch with us at <b>hello@thalamusdigital.co.uk&nbsp;</b>and we will do our best to sort that out.</p>
<p><br></p>
<p><strong>Note: The game on sale here is the Steam version only.&nbsp;</strong><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/w6bbFRn5uzM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTg0MjcvNzA1NjYuZ2lm/original/eHv6Z1.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg0MjcvNzA1NjMuZ2lm/original/CkWfdK.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg0MjcvNzA1NjUuZ2lm/original/SoFIU3.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg0MjcvNzA1NzIuZ2lm/original/BWhaMR.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg0MjcvNzA1NjguZ2lm/original/bL68Lh.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg0MjcvNzA1NjQuZ2lm/original/4mO1iT.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg0MjcvNzA1NjcuZ2lm/original/Kegjmb.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg0MjcvNzA1NjkuZ2lm/original/nfIAGP.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg0MjcvNzA1NzAuZ2lm/original/DhT8pP.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg0MjcvNzA1NzEuZ2lm/original/6s%2BdbP.gif]]
<p><strong>The</strong> premier digital playground for all bicycles!</p><p>Bicyclism EP is a physics based party game for up to 4 split-screen players. Play as your favorite bicycle and compete in traditional bicycle games like racing, jousting, soccer, space mushroom hunting, wrestling, etc.</p><p><strong>Features</strong></p><ul><li>4 player split-screen! </li><li>1 player single-screen! </li><li>Bots to race with if you're lonely </li><li>Race against your own ghosts </li><li>3 beautiful worlds to race in, coming in at 10 levels a pop! </li><li>Each world has an alternate appearance </li><li>Rocking electronic soundtrack by Yuxxie </li><li>Multiple physics-based bicycles to play as, including the unicycle and penny farthing </li><li>2 game modes, both split-screen enabled </li><li>Grand Prix - A race tour through one of 3 worlds </li><li>Remix - A random sequence of traditional bicycle games, such as wrestling and soccer </li><li>Bicycles!</li>
</ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/XsrVaJUVgwI" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjEyNDQvMzQ0NDk1LnBuZw==/original/KuMEt2.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEyNDQvMzQ0NDk2LnBuZw==/original/VqWpC4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEyNDQvMzQ0NDk4LnBuZw==/original/IOrtog.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEyNDQvMzQ0NDk3LnBuZw==/original/zlBM71.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEyNDQvMzQ0NDk0LnBuZw==/original/2sTR1d.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEyNDQvMzQ0NDkwLnBuZw==/original/X62Hhe.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEyNDQvMzQ0NDg5LnBuZw==/original/3RNzle.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEyNDQvMzQ0NDk5LnBuZw==/original/2xdkEY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEyNDQvMzQ0NDkyLnBuZw==/original/JnEUKv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEyNDQvMzQ0NDkxLnBuZw==/original/DZKOO0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEyNDQvMzQ0NDkzLnBuZw==/original/ZpaHHR.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEyNDQvMzQ0NDg4LnBuZw==/original/j%2Bs%2Fqc.png]]
<h4>Explore a Land of Sweets Where Work Is Outlawed</h4>
<h4><img src="https://img.itch.zone/aW1nLzY0ODY1MDcucG5n/original/dO2wNr.png" loading="lazy"></h4>
<p><em>Big Rock Candy Hexcrawl</em> is a <strong>build-your-own hexcrawl</strong> through a lackadaisical, idyllic paradise inspired by leftist folk music. For use in an existing campaign or as a one-shot.&nbsp;</p>
<p class="text-center"><span class="">🍬</span>🍭🏔<span class="">🍬</span>🍭🏔</p>
<p>It uses tiles from <em>Settlers of Catan</em> to procedurally generate the map as players explore.</p>
<p><em>Big Rock Candy Hexcrawl</em> is a <strong>system-neutral adventure</strong> but includes three separate files with stats for <strong>20 brand new monsters</strong>&nbsp;for the following OSR systems:&nbsp;</p>
<ul><li><a href="https://www.exaltedfuneral.com/collections/necrotic-gnome" rel="nofollow noopener" referrerpolicy="origin">Old-School Essentials</a> from Necrotic Gnome</li><li>&nbsp;<a href="https://bordercholly.itch.io/the-knights-of-the-road">Knights of the Road</a> by Bordercholly</li><li>&nbsp;<a href="https://errantrpg.carrd.co/" rel="nofollow noopener" referrerpolicy="origin">Errant</a> by Ava Islam</li></ul>
<p class="text-center"><span class=""></span>🍬🍭🏔🍬🍭🏔</p>
<p>(A printer friendly black-and-white, art-free version is included.)</p>
<p>Check out a <a href="https://www.prismaticwasteland.com/blog/design-commentary-big-rock-candy-hexcrawl" rel="nofollow noopener" referrerpolicy="origin">design commentary</a> on <em>Big Rock Candy Hexcrawl</em>!</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTEyMTM4OS82NTQzNzc1LnBuZw==/original/hvrTMT.png]]
<p>Storm evil lairs... and take out the trash!</p>
<p>Binky's Trash Service is a perilous, precision platformer where you operate a door-to-door garbage collection service for EVIL LAIRS! In each lair, you must empty every trash bin and book it for the exit. The game utilizes only three buttons (←, → &amp; JUMP) to perform a handful of moves, such as dashing, wall jumping and back flipping.</p>
<p>FEATURES</p>
<ul><li>15 STAGES to explore (including a giant pinball machine, an evil corporate office, and a 1990s operating system)
</li><li>A 30 SONG SOUNDTRACK with over a half hour of jazzy 8-bit solos
</li><li>COOL  LEVEL GIMMICKS introduced in each level, including conveyor belts,  portals, spring-trapped gift boxes, bomb-blocks, waterfalls, and cursors  that can click and drag you into unfortunate situations
</li><li>SPEEDRUN CHALLENGES (silver, gold and diamond) for each stage, incentivizing you to optimize your speedrun route
</li><li>FORGIVING RESPAWN POINTS in the tougher platforming sections
</li><li>EASY MODE for those who just want to enjoy the level music and fidget with their hands a bit
</li><li>3 PLAYABLE CHARACTERS + 5 unlockable guest characters
</li><li>CRYPTIC EASTER EGGS
</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/M1IADdp0oEg" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1nLzU5NTI5OTcucG5n/original/p4G0KI.png]]
<p>It is a truth universally acknowledged, that a bird in possession of good health must be in want of some dirt. <br></p>
<p>Birds Love Dirt! is a game about being a bird and loving dirt. It encourages you to get outside, imagine birdhood, and most importantly, play in some dirt. Or mud, sand, gravel, heck even snow would probably work! As long as you can interact with it as a bird and get messy, it's fair game. <br></p>
<p>The game is played in three phases, Exploration, Declaration, and Dirt. Some Variations are included to provide ideas for playing in a group, with children, or indoors.<br></p>
<p>If you can't afford this game, please claim a community copy! No conditions, no questions asked. I intend to keep them available for anyone who needs them.<br></p>
<p></p>
<p><em>This game is a direct result of my experience volunteering on Kuaihelani (Midway Atoll) and is dedicated with gratitude and love to all my friends there, especially my fellow peas. I miss our dance parties, baking together, quiet reading hangouts, and so much more. I'd also like to thank my friend Lizzie for reading my drafts, keeping me motivated to make this game the best it could be.<br></em></p>
<p></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODIzMDA0LzQ2NDE1MDYucG5n/original/HNAxLh.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODIzMDA0LzQ2NDE1MTMucG5n/original/FreoXV.png]]
<h1>Blasting is Everything!</h1>
<div class="text-center"><iframe style="width: 500px; height: 281px" src="https://www.youtube.com/embed/A8LAWc9AWQw" allowfullscreen="" frameborder="0"></iframe></div>
<p>Ever played a shmup and wished for one more bomb? How about as many as you want?<br></p>
<p>The core of the enemy mothership is destroyed and reinforcements are approaching fast, but your guns are weakened. You can't shoot your way out, but you can <strong>blast </strong>your way out! <strong><em>Blast Rush</em></strong> empowers you with infinite screen-clearing bombs, but keeps up the challenge with increasingly complex waves of enemy drones. Rush to victory!</p>
<p>• Fly through 40 intense levels or survive a randomized onslaught<br>• Three distinct fighter ships and bomb types<br>• One-thumb control keeps you blasting*<br>• Share scores on social media*<br>• Screamin' 16-bit-style graphics and sound<br></p><p>*Android version only<br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzE0OTgxNzAuZ2lm/original/waoYxV.gif" loading="lazy"></p>
<h2>About Blast Rush on Itch</h2>
<p>This version of <em>Blast Rush </em>is fully unlocked, ad-free and DRM-free. Consequently, scores and achievements are offline &amp; local only and will be erased if the app is uninstalled. <em><br></em></p>
<p class="text-center">The mobile version of<em> Blast Rush</em> is also available on the major app stores (see below).<br></p>
<h3 class="text-center">💥💥💥<br><a href="https://blastrush.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">BlastRush.com</a>
</h3>
<h3 class="text-center">Follow Us:&nbsp;<a href="https://www.twitter.com/bipedaldog" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@bipedaldog</a></h3>
<h3 class="text-center">💥💥💥</h3>

<iframe width="720" height="450" src="https://www.youtube.com/embed/A8LAWc9AWQw" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzAyMjAxLzE1NDkxNDkucG5n/original/3647Fa.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzAyMjAxLzE1NDkxNTMucG5n/original/Z4KA9k.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzAyMjAxLzE1NDkxNTUucG5n/original/Iz2wxx.png]]
<p>The world of&nbsp;<em>Bleak Spirit</em>&nbsp;is one of majesty and mystery, where the landscape looms vast and conceals manifold cryptic secrets. The twisted descendants of ancient civilisations live among the faded glories of their forebears, pursuing arcane agendas indecipherable to outsiders. And in primordial woods and swamps, fabled treasures and long-forgotten sorceries lie guarded by deadly monsters both fearsome and noble.</p>
<p>This world is gloomy, desolate, lonely -- but also beautiful. Long-abandoned fortress ruins still stand as awe-inspiring testament to the might and vision of their creators. Beside the hungry beasts that prowl the forests, flowers grow, picked out by rays of sunlight glancing through the leaves.</p>
<p>Into this world comes a wanderer, a lone traveller from somewhere else who bears a heavy destiny.</p>
<p><em>Bleak Spirit</em>&nbsp;is their story.</p>
<p>---</p>
<p><em>Bleak Spirit</em> is a 2-5 player tabletop RPG which uses a rotating GM system to create a truly collaborative story. No one knows what's really going on until the very last scenes!<br></p>
<p>No dice or cards are necessary to play this game -- a set of special cards could be useful, but aren't required. All you need is the pdf, something to write with, and something to write on.</p>

[img width=500 [https://img.itch.zone/aW1nLzI3NDQ0NDUucG5n/original/Zk%2FzBl.png]]
<h2>ABOUT BLEED 2:</h2>
<p>Bleed 2 is a relentless arcade action game featuring air-dodging, bullet-reflecting, and tons of bosses.&nbsp; Now includes the randomly-generated Endless Mode, too!<br><br>Wryn is the world's greatest (and only remaining) hero. Help her battle an invading force of villains and live up to her title as the Greatest Hero of All Time!<br><br>Featuring an original soundtrack by Jukio Kallio and sound design by Joonas Turner!</p>
<p></p>
<h2>KEY FEATURES:</h2>
<ul><li>7 levels containing over 25 boss fights</li><li>Unique controls let you shoot, dodge, reflect bullets and slow time all at once</li><li>4 difficulty levels that remix enemy placement and boss patterns</li><li>Unlockable weapons, characters and abilities</li><li>Arcade Mode: Tackle the game on one life</li><li>Challenge Mode: Select and fight up to three bosses at once</li><li>Endless Mode: Randomly-generated levels</li><li>2-player local co-op for all modes (requires at least one gamepad)</li></ul>
<p><br></p>
<h2>MINIMUM REQUIREMENTS:</h2>
<p><strong>All:</strong>
Xbox 360 controller officially supported (may need third-party drivers on Mac OSX / Linux)
</p>
<p>256MB videocard (Shader Model 2.0 or higher)
350MB HDD space
2GB RAM</p>
<p><strong>Windows:</strong>
Windows XP (or later)
2.0Ghz dual core processor<span></span>
DirectX 9.0c</p>
<p><strong>Mac OSX:</strong> OS X 10.6.8
3Ghz Intel Core i3
</p>
<p><strong>Linux:
</strong>OS: <strong></strong>glibc 2.15+, 32/64-bit. S3TC support is NOT required
2.0Ghz dual core processor</p>
<p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/kUloJK7nw7g" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjU3MjYzLzEyMzMzOTEucG5n/original/Xcxeq%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjU3MjYzLzEyMzMzOTMucG5n/original/1BaZDs.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjU3MjYzLzEyMzMzOTUucG5n/original/M7a0Ow.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjU3MjYzLzEyMzMzOTYucG5n/original/n5KxGA.png]]
<h2>ABOUT BLEED:</h2>
<p>Wryn is a girl with a big arsenal and big dreams -- she wants to be the ultimate videogame hero! Help her take down the Greatest Heroes of All Time in an action-packed bid to claim the title for herself and show the world what a true hero looks like!<br><br>Bleed is an action-platformer focused on stylish, acrobatic dodging and fluid, challenging gameplay. There's no filler -- just you and your skills against seven levels of enemies, obstacles, breakneck set-pieces and inventive bosses!</p>
<h2></h2>
<h2>KEY FEATURES:</h2>
<ul><li>Unique control scheme enabling crazy fast action </li><li>7 levels packed with multiple set-pieces and bosses </li><li>4 difficulty levels that remix enemy placement and boss patterns </li><li>2-player local co-op for all modes (requires at least one gamepad) </li><li>3 unlockable characters with their own gameplay twists </li><li>Survive the entire game on one life in Arcade Mode </li><li>Select and battle up to three bosses at once in Challenge Mode</li></ul>
<h2></h2>
<h2>MINIMUM REQUIREMENTS:</h2>
<p><strong>All:</strong><br>Xbox 360 controller officially supported (may need third-party drivers on Mac OSX / Linux)<br></p>
<p>256MB videocard (Shader Model 2.0 or higher)<br>350MB HDD space<br>2GB RAM</p>
<p><strong>Windows:</strong><br>Windows XP (or later)<br>2.0Ghz dual core processor<span></span><br>DirectX 9.0c</p>
<p><strong>Mac OSX:</strong><br> OS X 10.6.8<br>3Ghz Intel Core i3<br></p>
<p><strong>Linux:<br></strong>OS: <strong></strong>glibc 2.15+, 32/64-bit. S3TC support is NOT required<br>2.0Ghz dual core processor</p>
<p><strong><br></strong></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTk2NjgvNDY1NjE0LmpwZw==/original/tA5b61.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTk2NjgvNDY1NjEyLmpwZw==/original/qFqCSL.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTk2NjgvNDY1NjEzLmpwZw==/original/xIYZgx.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTk2NjgvNDY1NjE1LmpwZw==/original/dFAr0D.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTk2NjgvNDY1NjE2LmpwZw==/original/pCuF3b.jpg]]
<h2 class="text-center">BLUE SHIFT</h2>
<p><em>Humanity was obviously not meant to explore the stars. Short lives versus centuries of travel, hard vacuum versus soft tissue, indefinite isolation versus creeping madness. And what is there to explore? Ice, gas and barren rocks irradiated by alien suns.
</em><br></p>
<p><em>And so, naturally, a ship of humans departs the solar system.
<br></em></p>
<p><em>~<br></em></p>
<p>Blue Shift is a tabletop space travel&nbsp;roleplaying game that's more about the crew than what they find in the great unknown: what tears them apart, what might bring them together and how they deal with crisis. It's designed with single-session play in mind: a good game of Blue Shift should be like a tense, dramatic science fiction film or short.</p>
<p>The game consists of instructions for play and detailed sheets for roles to guide your play. The game is available free of charge but donations are welcome if you would like to support future games or add-on playsheets.<br><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM3MDg5Ny83OTgzMDEyLnBuZw==/original/kfoWac.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3MDg5Ny83OTgyNzg5LnBuZw==/original/1KShST.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3MDg5Ny83OTgyNzkwLnBuZw==/original/eHPU4K.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3MDg5Ny83OTgyNzkxLnBuZw==/original/A4qcNo.png]]
<div class="">
  <div class="">
    <figure></figure>
    <figure></figure>
    <figure></figure>
    <figure></figure>
    <figure></figure>
    <figure></figure>
  </div>
</div>
<h2>Blue King</h2>
<p>Far back in the Neverwhen, before time can be remembered, you were King. The only King. The very energies of Creation coursed through your veins. Alas, time wounds all heals. Slowly, you ground to a halt, sinking into the earth.&nbsp;
</p>
<p>Dead. Slumbering.&nbsp;
</p>
<p>And yet, you carry on. Creation leeches from your bones into the world. As you decay and slip into nothingness, you form the basis of all existence in this world.
</p>
<p>And so, you sleep and slip away, remembering.
</p>
<h2>Guardians</h2>
<p>The King is guarded by the Blugard, ancient guardians tasked with defending the body that brings life to the world. It is known that the fate of all living beings is tied to the fate of one powerful corpse. Chosen for the loyalty and sense of duty, the guardians are sustained by faith and their proximity to the King's eternal energies. The guardians never leave the presence of the King. If their faith wavers, they are replaced by creatures more suited to the task.
</p>
<h2>Time &amp; Rest</h2>
<p>The King is in perpetual service. Entropy stops for no one. And yet, there will be downtime. Across the ages, not every moment is worth remembering. This is the Rest. During Rest, you will select how long the King is at Rest and wait the appropriate amount of time. This may be seconds or several minutes, representing the passage of time before a new Guardian is selected.
</p>
<p><em>Blugard is a solo journaling roleplaying game based on the Lost &amp; Found SRD.&nbsp; In it, you play a dead King, dreaming and giving life to the world through the ages. It was made for a "picture and a thousand words jam" on the Alone Together discord server.</em><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI4MjEyNS83NDYyMzU5LnBuZw==/original/eAegOs.png]]
<p>Bombing!! is a game where you create public art in a retro world.</p>
<p>With several colour variations, cap patterns and with 95% of every level being paintable, there's few limitations on what you want to create.<br><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODc0NzA2LzUyMDU0OTUucG5n/original/Ckwwn7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODc0NzA2LzQ5MjAzNjQuanBn/original/%2BqvNkv.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODc0NzA2LzUyMDU0OTYucG5n/original/iTCRFU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODc0NzA2LzUyMDU0OTcucG5n/original/pLIpnA.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODc0NzA2LzQ5MjUwNjcuanBn/original/MBJ0SX.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODc0NzA2LzQ5MjAzNTEuanBn/original/R7TBhZ.jpg]]
<p>Bonbon is a short horror story, about your childhood.<br></p>
<p><strong>Even if you weren't a small child in the 80s, you've been here before. Just you and your friendly toys.&nbsp;But this new friend... this is something you are not yet able to understand.</strong></p>
<p>&nbsp;Includes Steam key.</p>
<blockquote><a href="https://www.rockpapershotgun.com/2017/08/04/bonbon-horror-game-review/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Adam Smith, Rock Paper Shotgun</a>:</blockquote>
<blockquote>"a short, smart tale of domestic horror"<br>"Bonbon’s home, and the voice of mummy shouting from indoors, is authentic"<br>"the confusion between what is real and what isn’t, and what is threatening and what is malign, rings true"<br>"a house of horrors that hit far closer to home than most"</blockquote>
<blockquote>&nbsp;<br><a href="http://www.kotaku.co.uk/2017/08/08/bonbon" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Matt Wales, Kotaku</a>:</blockquote>
<blockquote>"it's ambitious, it's often fascinating, and there are elements that linger long after it's over"<br>"there's a lot to admire and appreciate here - from the thread of an entirely different story ... to the clarity of vision and the authentic, evocative period atmosphere"<br>"there's certainly enough craft and creativity here, and a lingering strangeness to this everyday terror"</blockquote>
<p><br></p>
<p>Bonbon is a short-form domestic horror narrative (or walking sim, if you like), made in Unreal Engine 4, set in a suburban UK home in the 1980s,&nbsp;in which you navigate childhood events beyond your capacity to understand, and without parental context.</p>
<p>Play time is around 20 to 40 minutes, depending on your play-style. Progression requires the completion of some simple tasks, but it is mostly about exploring the objects and events around you. Play with mouse and keyboard, or a 360-style gamepad.</p>
<p><br></p><p></p><p><strong>Content warnings:</strong><br>Bonbon deals with grown-up themes and suggestions of child-abuse. There is no literal violence or onscreen abuse, it is entirely in the subtext.<br>There is one jump-scare near the end of the game.<br>As one player pointed out in a review, the game does contain a racial slur in the dialogue (g***y), which was carefully considered as relevant to the source material of the scene, and the setting in the UK in the 1980s.</p><br><p></p><p><br></p>
<p>If you purchase the DRM-free version via itch.io, you will be able to request a Steam key via the link on the download screen.</p>
<h4>&nbsp;</h4>
<p><em>Recommended system specifications for Windows PC version:</em></p>
<ul><li>GeForce GTX 950, or equivalent/faster graphics card</li><li>Quad-core processor, 2.5GHz or faster</li><li>8Gb RAM or more</li><li>Windows 7 or later&nbsp;</li></ul>
<p><br></p>
<p>Thanks to <a href="http://www.electrondance.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Joel Goodwin</a> for providing some very important last minute feedback!<br></p>
<p>Journalists, reviewers, tubers and streamers: you can find the <a href="https://medium.com/@aethericgames/presskit-bonbon-94f1dcf18484" target="_blank" rel="nofollow noopener" referrerpolicy="origin">press-kit here</a>. Download keys can be requested from Pixeljam via the contact details in the press-kit.</p>
<p>&nbsp;<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/jDQILXQNzw0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQ0MTUxLzg1NzUwOS5wbmc=/original/M%2FTcbQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQ0MTUxLzg1NzUxMC5wbmc=/original/0zGURU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQ0MTUxLzcxMjE0MS5naWY=/original/VwUQLG.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQ0MTUxLzc0ODQ1OS5qcGc=/original/CkhGc%2B.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQ0MTUxLzg1NzU0MC5wbmc=/original/t9P1cy.png]]
<h1>Intro</h1>
<p><em>Pulled from a pit of refuse,&nbsp;ever-shadowed corners,&nbsp;a plane of agony, and the fabric of&nbsp;nightmares itself, these terrifying creatures will stalk, scare, torture, and possess any hapless fools who stumble into their realms.</em></p>
<p><mark style="background-color:#FF3EB5"><strong>Born of a Bloody Film</strong></mark> is a supplement for <a href="https://morkborg.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Mörk Borg</a>&nbsp;and other OSR-inspired RPGs that includes <strong>four monsters</strong> torn from&nbsp;horror movies and mangled to use in your games.&nbsp;It was made as part of <a href="https://michaelmarsrpg.itch.io/" target="_blank">Michael Mars</a>'s <a href="https://itch.io/jam/slasher-jam" target="_blank">Slasher Jam</a>.</p>
<h1>Contents</h1>
<p>Your purchase includes both full-color and printer-friendly bookmarked PDFs with art and rules for&nbsp;the following monsters:</p>
<ul><li><strong><mark style="background-color:#FF3EB5">Dread Eater</mark></strong> (inspired by Freddy Krueger)</li><li><strong><mark style="background-color:#FF3EB5">Thief of Selves</mark></strong>&nbsp;(inspired by identity-stealing creatures like the Thing, Body Snatchers, etc.)<strong></strong></li><li><strong><mark style="background-color:#FF3EB5">Painmonger</mark></strong>&nbsp;(inspired by Pinhead)<strong></strong></li><li><strong><mark style="background-color:#FF3EB5">Always There</mark></strong>&nbsp;(inspired by Michael Myers, Jason Voorhees, etc.)</li></ul>
<p>A limited number of free community copies are available below for those who are currently struggling.&nbsp;<strong>Every purchase of Born of a Bloody Film&nbsp;will unlock one additional free community copy for another user.</strong></p>
<p><em>MÖRK BORG is copyright Ockult Örtmästare Games and Stockholm Kartell.</em></p>
<h1>Other G<strong>ames, Supplements, and More</strong></h1>
<p><iframe frameborder="0" src="https://itch.io/embed/990069?bg_color=000000&amp;fg_color=edc932&amp;link_color=8e79bb&amp;border_color=edc932" width="552" height="167"><a href="https://atypicalfaux.itch.io/the-pried-eye">The Pried Eye: A Trophy Dark Incursion by ATypicalFaux</a></iframe><br></p>
<p><iframe frameborder="0" src="https://itch.io/embed/1094174?bg_color=000000&amp;fg_color=5cceff&amp;link_color=fad285&amp;border_color=5cceff" width="552" height="167" style="color: inherit; font-size: inherit"><span class=""></span></iframe></p>
<p><iframe frameborder="0" src="https://itch.io/embed/1114485?link_color=000000&amp;border_color=000000" width="552" height="167"><a href="https://atypicalfaux.itch.io/serious-reading">Serious Reading by ATypicalFaux</a></iframe></p>
<p><iframe frameborder="0" src="https://itch.io/embed/1105536?bg_color=444444&amp;fg_color=ffffff&amp;link_color=ff1717&amp;border_color=ff1717" width="552" height="167"><a href="https://atypicalfaux.itch.io/txn-souls">⁍⁍⁍⁍⁍TXN SOULS⁌⁌⁌⁌⁌ by ATypicalFaux</a></iframe></p>
<p><iframe frameborder="0" src="https://itch.io/embed/982283?bg_color=000000&amp;fg_color=ffffff&amp;link_color=ffffff" width="552" height="167"><a href="https://atypicalfaux.itch.io/hush">Hush by ATypicalFaux</a></iframe></p>
<p></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIzMzc0Ny83MjA1OTE2LnBuZw==/original/kKEUI3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIzMzc0Ny83MjA1ODk5LnBuZw==/original/C4VeFq.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIzMzc0Ny83MjA1OTE3LnBuZw==/original/ba2gVg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIzMzc0Ny83MjA1ODk4LnBuZw==/original/U%2F%2Bqz2.png]]
<p>BOTOLO is a beautiful, new multiplayer game from The Floor is Jelly creator Ian Snyder. BOTOLO is a fast paced mindreading competition, a dance inside the negative space between your opponent's thoughts. Mind-wrestle your opponents into submission inside hypnotic fields of pattern and color. Steal the ball and protect it from your opponent in this hybrid game of keepaway and king-of-the-hill. </p><p>No friends? No problem. BOTOLO has built-in, state-of-the-art friend simulations! Granted, these incredible programs might not appreciate the simple beauty of a sunset, or lend you a reassuring hug in a time of need, but they DO adapt to your playstyle mid-match, which is almost as good.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODkzODcvNDkyMjU5LmdpZg==/original/XzHJu1.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvODkzODcvNDkyMjUyLnBuZw==/original/BGF%2FwP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODkzODcvNDkyMjYwLmdpZg==/original/RUMcgi.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvODkzODcvNDkyMjUzLnBuZw==/original/eq1pnO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODkzODcvNDkyMjYyLmdpZg==/original/%2BbGsN5.gif]]
<p>I'm making a racing game for two players. They share one keyboard. Their cars bounce off of each other, and off of the walls. The maps are randomly generated, but you can replay your favourites&nbsp;– if you can remember the three words the generator used to make them. It's a blast!</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/zPLULsk-kog" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1nLzU3MDE2MjMucG5n/original/1BQ%2Brj.png]]
<p>Think inside the box...</p>
<p>BOX is a logic puzzle-platformer where you must navigate small mazes and symmetrical obstacles to collect every object. Rotate the stage itself to change the layout of the maze, as well as your own position, to reach impossible places.</p>
<p>47 puzzles. VHS aesthetic. Soft electronic music. Boxes.</p>
<p>A chair. A screen. And you.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/IMOfeadzLwE" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDcxMzMwLzI0NTk5MDUucG5n/original/dWAawz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDcxMzMwLzI0NTk5MDYucG5n/original/xmQ2T5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDcxMzMwLzI1NDMwNjEucG5n/original/Lv0G6A.png]]
<p></p>
<h1>The Story So Far...</h1>
<p><strong>For ten thousand years, Atlantis ruled the Earth.</strong></p>
<p>From the winged children of Black Aerie to the ophidian witches of Graven Reach to the merchant princes of Bazzan, every human bent knee to the Empire of Air and Darkness.</p>
<p><strong>Ten thousand years, but no more.</strong></p>
<p>Rumors spread of the Sea of Sorrows boiling and rising to drink the shining towers, or of Mount Bleak exploding in a rain of hellfire, or of an impossible tempest surrounding the isle.</p>
<p>Only one thing is certain: for a decade, no one has seen the indigo triremes of Atlantis, nor its bright and terrible rulers.</p>
<p><strong>You are the last of your kind.</strong></p>
<p>You are an Atlantean exile, wandering the newly-free world, as humans both great and petty beg for your aid or seek to make you pay for the sins of your lost people.</p>
<p>Will you render the justice of a bright queen, or the terror of an alien tyrant?</p>
<h1>Bright and Terrible&nbsp;includes...</h1>
<ul><li>Simple, evocative rules tied directly to the setting. Number matching between dice judges success, metes out consequences, and pronounces doom.</li><li>Flashback rules that reveal the glories and tragedies of Atlantis in play.</li><li>Twenty-seven d6 tables for generating full adventures, including conflicts, people, demons, and more.</li></ul>
<p><strong><a href="https://perchance.org/bright-and-terrible" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Try the scenario generator here!</a></strong></p>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODk5NjY3LzUwOTA4NzQucG5n/original/dHiRt9.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODk5NjY3LzUwOTA4ODIucG5n/original/gD6kU1.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODk5NjY3LzUxMDE5OTAucG5n/original/L3ALBX.png]]
<h3>Bring Back The Sun is a short and challenging 2D Platformer. The goal is obvious - bring back the sun!&nbsp;</h3>
<p>The focus lies solely on jumping right. No enemies, no spikes, no wall jumps, no double jumps. Only simple jumps will get you through the levels.&nbsp;</p>
<p>Features</p>
<ul><li>A pure experience</li><li>Challenging but not hardcore</li><li>Jump through 40 levels</li><li>Loading in no time</li><li>Minimalistic graphics</li><li>Atmospheric soundtrack</li></ul>
<p>You can expect 1-3 hours playtime for your first run depending on your skill level.</p>
<p><img src="https://img.itch.zone/aW1nLzQzNzE5OTAuZ2lm/original/H%2Fz%2FvQ.gif" loading="lazy"></p>
<p><br></p>
<p>1.3.2 Changelog</p>
<p><br></p>
<p>- Tiny fix after the 1.3.1 update which introduced the festive hat!</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/e2JnHEREX9k" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzgxNTQxLzQzNzE5MjIuanBn/original/e6jTXh.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzgxNTQxLzQzNzE5MjMuanBn/original/pj7skD.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzgxNTQxLzQzNzE5MjUuanBn/original/GvHn85.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzgxNTQxLzQzNzE5MjQuanBn/original/vgLeZF.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzgxNTQxLzQzNzE5MjYuanBn/original/FAWYrd.jpg]]

<p>You're pupils at a British secondary school, trying to keep life at least a bit interesting and make your own entertainment. Build a den in the rafters of the gym. Raise terrapins in the third-floor bathroom. Brew moonshine with the long-banned solvents in the arts room. Arrange charity concerts. Steal test answers from the Head's safe while disguised as a Swedish piano-tuner. Stage a rebellion against school dinners. Find buried treasure under the rugby pitch. Arrest your physics teacher as a spy. Hide sickly aliens in the lockers. Plot bank robberies. Concoct elaborate schemes to bump into your crush. Bend, not break, the rules. Try different ways to make a difference to the days.</p>

[img width=500 [https://img.itch.zone/aW1nLzgyNTYyNjcucG5n/original/NmDwDO.png]]
<p>Bro. Ghosts, Bro. The stories are true. We've got our gear and we're gonna get famous, Bro.&nbsp;</p>
<p>Bro?</p>
<p>Bro.</p>
<p><em>Bro Hunters</em>&nbsp;is a horror-comedy game about a bunch of Bros getting killed by ghosts that are all-too-real. Grab some buds, get together, and die gruesome deaths. It'll be tight, Bro.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzY3MzEwLzE4MzkxMzEuanBn/original/hNaEOh.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzY3MzEwLzE4MzkxMjguanBn/original/fkaYPb.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzY3MzEwLzE4MzkxMjkuanBn/original/ixDmay.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzY3MzEwLzE4MzkxMzAuanBn/original/zMfaMB.jpg]]
<p>Days before her marriage to Bel'Wa, Bryluen is enjoying her bachelorette party with her best friend and a co-worker. But a night on the town takes an unexpected turn into danger when an attack strikes her best friend's house. With the clock ticking, Bryluen must apprehend those responsible before they escape.</p><p>This story can be purchased in Kindle format here:&nbsp;<a href="https://www.amazon.com/dp/B09FYSK4MD" rel="nofollow noopener" referrerpolicy="origin">https://www.amazon.com/dp/B09FYSK4MD</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE5MzkzNy82OTY2ODIxLmpwZWc=/original/8KgRt3.jpeg]]
<iframe src="https://www.youtube.com/embed/FA4CqVZYJtI" allowfullscreen="" width="560" height="315" frameborder="0"></iframe>
<h3><br>
<em></em></h3>
<h3><em>Bugspeed Collider</em> is a single-and-local-multiplayer fighting game featuring super-powered beetles. Fight with or against your fellow bugs in numerous modes across nine fully-destructible worlds.<span></span>
</h3>
<ul>
	<li>Innovative combat featuring unlimited flight, fireballs, and backflips</li>
	<li>Diverse move set is easy to pick up, but enables deep learning with varying combat styles</li>
	<li>Every mode can be played single-player or with up to 4 local players or bots</li>
	<li>150+ levels across cooperative and competitive modes</li>
	<li>Fully-Destructible Environments make every fight play out differently</li>
	<li>Many Ways to Play: Single, Multi, Arena, Endurance, Party, Versus, Rule Modifiers, etc.</li>
	<li>Party Mode makes it easy to hop in and out of the game</li>
	<li>Defeat Boss Bugs to add them to your roster</li>
	<li>Controller-optimized, Keyboard-friendly</li>
</ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/FA4CqVZYJtI" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjU4MDYvMzY5NTAyLnBuZw==/original/KyOgj9.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjU4MDYvMzY5NTEwLnBuZw==/original/pkuNJc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjU4MDYvMzY5NTAwLnBuZw==/original/fJwV5U.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjU4MDYvMzY5NDk4LnBuZw==/original/oOFZVw.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjU4MDYvMzY5NTAxLnBuZw==/original/UkTfV3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjU4MDYvMzE5MjYwLmdpZg==/original/ua8VCU.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjU4MDYvMzE5MjU5LmdpZg==/original/r2vQPz.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjU4MDYvMzE5MjYxLmdpZg==/original/B0Mm9o.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjU4MDYvMzE5MjYyLnBuZw==/original/G8X1QE.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjU4MDYvMzE5MjYzLnBuZw==/original/LJvkQH.png]]
<p>Included is a list of 30 sets of prompts with questions about your bard’s craft and lifestyle, as well as a few tables you can pick details from or roll dice to choose. There are also 6 ready made characters for you to use in your own TTRPG games, stories, or cosplays. The rest of the creation pack can be used to further personalize them. The prompts and tables are setting neutral, so you can use them with any setting, though not every detail will fit every situation.</p>
<p>Story comes in many forms. It can be expressed through a myriad of colors in a painting, a song rich with feeling, a dramatic voice speaking to an enraptured audience, or countless other methods. This is for any character with a story to tell, a need to be creative, or a drive to inspire others. I’ve kept a loose definition of bard, because there are many ways to be creative and expressive. A bard can travel around singing, or write stories, or express themselves through creating inventions. This supplement endeavors to help you step outside the box of the stereotypical bard, as well as add depth to your character.&nbsp;</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI5Mjk5My83NTIyMjcwLnBuZw==/original/6cUYm8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5Mjk5My83NTIyMjc4LnBuZw==/original/H%2BasTa.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5Mjk5My83NTIyMjc5LnBuZw==/original/R5A0as.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5Mjk5My83NTIyMjgwLnBuZw==/original/9xbcZU.png]]
<p>Included is a list of 42 prompts with questions about your druid’s craft and lifestyle, as well as a few tables you can pick details from or roll dice to choose. There are also 8 ready made characters for you to use in your own TTRPG games, stories, or cosplays. The rest of the creation pack can be used to further personalize them. The prompts and tables are setting neutral, so you can use them with any setting, though not every detail will fit every situation. My supplement <a href="https://eliotsilvarian.itch.io/build-a-witch" target="_blank">Build a Witch</a> would also be applicable to many druids, and has a completely different set of prompts.</p>
<p>I&nbsp;would love to hear about the druids you create! Feel free to message me or tag me on twitter <a href="https://twitter.com/EliotSilvarian" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@EliotSilvarian</a>.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMxOTUwNC83NjcyNjg0LnBuZw==/original/w%2BZqLu.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMxOTUwNC83NjcyNjg1LnBuZw==/original/S%2Fg8Eh.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMxOTUwNC83NjcyNjg4LnBuZw==/original/t%2BfHG1.png]]
<p><span></span>Sometimes characters come to life easily, but sometimes it’s a little trickier to coax them into existence or figure out what makes them tick. The little details can add a lot of depth, and the details you didn’t realize were there can end up shaping the whole character. This pack can get you started building a character or be used to further flesh out an existing character.</p>
<p>Included is a list of 30 prompts with questions about your witch’s practice and lifestyle, as well as a few tables to pick details from or you can roll dice to choose. The prompts and tables are specifically witch related, though can also be applicable for witch-adjacent characters such as druids or mages. A lot of the prompts and options are general enough to work across a wide range of settings, from historical to modern to sci-fi.</p>
<p>There are also&nbsp;8 ready made characters are for you to use in your own TTRPG games, stories, or cosplays. The rest of the creation pack can be used to further personalize them.<br></p>
<p>I hope you enjoy, and I would love to hear about the witchy characters you create!</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIxNTc1Mi83NDk2NjI2LnBuZw==/original/uH8Wtm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxNTc1Mi83MDk0MDY3LnBuZw==/original/4sgsci.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxNTc1Mi83MDk0MDY4LnBuZw==/original/i3Eppi.png]]
<p>Bullet Beat is a shoot'em up, where everything at the levels is in tune with the music, even shooting. You can also upload your track and enjoy the experimental generated levels! Keep the combo to get stronger!</p>
<p><strong>Available in the game:</strong><br></p>
<ul><li>8 different levels with unique tracks in the dubstep genre and more;</li><li>different types of control (mouse, keyboard or gamepad);</li><li>several game modes, including Chill Out mode;</li><li>contrary to the previous mode: hardcore generation of levels for any track;</li><li>infinite mode with fortress protection.</li></ul>
<p><strong>Warning!</strong>&nbsp;This game contains fast flashing images. It may cause discomfort and trigger seizures for people with photosensitive epilepsy. Gamers discretion is advised. Safety first!</p>
<p><a href="https://store.steampowered.com/app/1180620/Bullet_Beat/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Game on Steam</a> (have online leaderboard)<br><a href="https://store.steampowered.com/developer/ternox" target="_blank" rel="nofollow noopener" referrerpolicy="origin">My games on Steam</a><br><a href="https://ternox.itch.io/" target="_blank">My games and music on itch.io</a></p><p><a href="https://itch.io/s/23428/bundle-ternox-games" target="_blank">Bundle with my games</a><br><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/sGErtjEGmRs" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTIzNDU4LzI3MTkwMjIuanBn/original/4Zslgi.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTIzNDU4LzI3MTkwMjEuanBn/original/dTL%2BRo.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTIzNDU4LzI3MTkwMjYuanBn/original/%2BFKuJY.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTIzNDU4LzI3MTkwMjMuanBn/original/h%2BCoox.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTIzNDU4LzI3MTkwMjcuanBn/original/2v1Uq3.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTIzNDU4LzI3MTkwMjQuanBn/original/IJvptB.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTIzNDU4LzI3MTkwMjUuanBn/original/%2FvGf4i.jpg]]
<p><strong>Welcome!</strong> You are the newest worker bee in the hive. You just woke up, your head is as fuzzy as your body, and your siblings are beckoning for you to join them. You follow and they lead you through to the heart of the hive - the dance floor! The world is new and strange, you don’t know your own name yet, but you think you might know a bit about dancing...</p>
<p>In this game you'll&nbsp;learn your hive’s secret dance language, explore your world, make animal friends, and harvest pollen for your hive. This is a sweet, relaxing game to play on a rainy afternoon while&nbsp;journaling and doodling.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODg2NTM5LzQ5OTgxODcucG5n/original/KjqLRU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODg2NTM5LzQ5OTgxODkucG5n/original/VCK5N5.png]]
<p><em>What was just supposed to be a simple iridium ore pickup is about to take a wild turn. Something at the mining outpost is turning people into lethal, mindless wretches. To make matters even worse, there is a traitorous psychopath among them.
<em><br></em></em></p>
<p><em>Strap in, ‘cause you’re about to embark on a bumpy ride in the frozen wastes of Bore IX!</em></p>
<p>This is a pamphlet one-shot for Mothership RPG set on a remote frozen planet, perfect for a "simple" side gig for your crew. <br></p>
<p>Inside you'll find:</p>
<ul><li>A snow buggy pointcrawl in a hostile mountain environment</li><li>A mining outpost with 10 colorful NPCs</li><li>A whodunnit mystery with a murderous psychopath</li><li>People turning into horrifying monsters</li></ul>
<p>This product is based on the Mothership Sci-Fi Horror Role Playing Game, published by Tuesday Knight Games. This product is published under license. Mothership RPG is a trademark of Tuesday Knight Games. All rights reserved. For additional information, visit <a href="http://www.tuesdayknightgames.com" rel="nofollow noopener" referrerpolicy="origin">www.tuesdayknightgames.com</a> or contact contact@tuesdayknightgames.com.</p>
<p></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI2MjI4NC83MzU1NDI3LnBuZw==/original/wVtvkO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI2MjI4NC83MzU1NDc3LnBuZw==/original/skNHlF.png]]

<p>A short but challenging realtime strategy game which is primarily a fable. This is a newly updated and enhanced&nbsp;edition, dedicated to the struggle in Ukraine.</p>
<p>All proceeds donated to the Ukrainian charity, <em>Voices of Children</em>.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjk0OTYyLzE0MzkyODEucG5n/original/G7oOBH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjk0OTYyLzE0MzkyODIucG5n/original/Zo6fWj.png]]
<p><strong>Update: The Final Chapter- <a href="https://krunchyfriedgames.itch.io/bunny-hill-horror-bunny-boiler" target="_blank">Bunny Hill Horror: Bunny Boiler</a>, now on itch.io!</strong>&nbsp;<strong></strong><br></p>
<p>You have a problem: you're out of work, and the government is threatening to cut off your benefits. Don't worry- Oswald Mandias will help you. He'll help <em>everybody</em>. Once his dreams of resurrecting an ancient kingdom are realised, nobody will be spared his benevolence.
  </p>
<p>In this visual novel adventure, you must outwit zombies, genetically modified monstrosities, seductive sisters and one very sadistic secretary, in order to prevent a dark and terrifying future for mankind. Oh, and get to the pub quiz in time because your mate Dave won't stop nagging you about it.&nbsp;&nbsp;</p>
<p><strong>I wanted to do a playthrough for this as people were messaging me for help with some of the puzzles (one in particular), but I've been too lazy. Luckily, Gamesiety did a complete run so please check their video out.<br></strong></p>
<p><strong><iframe src="https://www.youtube.com/embed/o6jK7yMFJgo" allowfullscreen="" width="560" height="315" frameborder="0"></iframe></strong><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/o6jK7yMFJgo" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTAxOTIyLzI1OTc2ODEucG5n/original/C56UOS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTAxOTIyLzI1OTc2ODMucG5n/original/RRf%2B4%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTAxOTIyLzI1OTc2ODQucG5n/original/d4HKXv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTAxOTIyLzI1OTc2ODUucG5n/original/mNAimT.png]]
<p>Oswald Mandias is a man on a mission: to drag the country kicking and screaming back to the glory days of old, where a gentleman could rely on the time-tested values of chivalry, breeding and class. Armed with vicious zombies, a stockpile of highly questionable pharmaceuticals, and an iron will, he has recruited you to grow his plans to fruition. <br></p>
<p>Lucky you. <br></p>
<p>  In this darkly-humorous visual novel adventure, you’ll tackle fiendish puzzles, decide which very curious characters to trust, and compete in a pub quiz where the sudden death round means just that. Will you consign Oswald’s plot to the dustbin of history, or will the past come back to life- in more ways than one?
  &nbsp; <br></p>
<p><em>This is the follow up to <a href="https://krunchyfriedgames.itch.io/bunny-hill-horror" target="_blank">The Bunny Hill Horror</a>. It is not recommended for under 15s and caution is advised for those of a sensitive nature. So... you've&nbsp;been&nbsp;warned...</em><br></p>
<p><strong>Update: Many thanks to everyone who's donated to this game. Even if we don't know who you are, it's very much appreciated!</strong><em></em><br><em></em></p>
<iframe src="https://www.youtube.com/embed/JU11k_n3KfI" allowfullscreen="" width="560" height="315" frameborder="0"></iframe>

<iframe width="720" height="450" src="https://www.youtube.com/embed/JU11k_n3KfI" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzkwNzU0LzQ0Mjc2NDQuanBn/original/Kl73wC.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzkwNzU0LzQ0Mjc2NDUuanBn/original/TXuVYJ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzkwNzU0LzQ0Mjc2NDYuanBn/original/R21hp8.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzkwNzU0LzQ0Mjc2NDcuanBn/original/G5DgFv.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzkwNzU0LzQ0Mjc2NDguanBn/original/bf4%2FAN.jpg]]
<p>Bury me my Love tells the story of Syrian refugee Nour and her husband Majd, as Nour&nbsp;</p>
<p>undertakes a perilous journey to safety in Europe.<br>&nbsp;<br>Bury me, my Love is a Text Messaging Adventure game about Nour, a Syrian migrant trying to find her way to Europe. Her husband Majd, who remains behind in Syria, communicates with Nour through a messaging app, advising her as best he can so that she reaches her destination safely.<br>&nbsp;<br>“Bury me, my love” is a Syrian goodbye phrase that roughly means, “Take care, don’t even think about dying before I do.” This phrase takes on a deeper meaning as Majd says it to his wife, Nour, as she undertakes her perilous journey to reach Europe.</p>
<p>A co-production from ARTE, the European cultural network, with The Pixel Hunt and Figs.<br>&nbsp;<br>A game in an instant messaging app<br>As Majd, you can communicate with Nour and follow her journey, just as if you were chatting with her via text message. You will text each other and exchange emojis, pics and selfies, relevant links…<br>&nbsp;<br>&nbsp;Multiple narrative routes to discover<br>By reading instant messages and choosing response options, players help Nour overcome the hardships she will encounter.<br>Your choices in Bury me, my Love truly impact on the story, with Nour able to visit 50 different locations and reach 19 potential different endings with widely divergent outcomes.<br>&nbsp;<br>&nbsp;Based on real-life events<br>Bury me, my Love is a “reality-inspired game”, a documented fiction that draws inspiration directly from real-world events. The original idea stems from an article written by Le Monde journalist, telling the story of Dana, a young Syrian woman who fled her country and is now living in Germany.<br>&nbsp;<br>This experience may affect the sensitivity of younger people.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/PKVns6TahJk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzU1MTI1LzE3NzE5MTcuanBn/original/fo28NE.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzU1MTI1LzE3NzE5MTYuanBn/original/hmLZ6N.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzU1MTI1LzE3NzE5MTUuanBn/original/o4Bc5R.jpg]]
<p>Fried food, farm animals and armpit-to-armpit humanity welcome you to the State Fair.<br></p>
<p>Nestled within, ninety pounds of grade-A butter has been hand-sculpted into the likeness of the Butter Princess, and you have an interest in the fate of that representation of Midwestern royalty.</p>
<p>A weekend here may let you&nbsp;forget your weekday.</p>
<p>::</p>
<p>Butter Princess is an incursion rooted in Trophy Dark.&nbsp; The core rules of Trophy Dark are contained within.&nbsp; Theme:&nbsp;Indulgence.</p>
<p>This is a play-to-lose collaborative horror RPG&nbsp;in a&nbsp;modern setting at a State Fair.</p>
<p>::</p>
<p>Now with a stunning online character keeper by Arktosaur.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzUxNjIyLzYzNzc0OTEucG5n/original/xfq0hL.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzUxNjIyLzYzNzc0OTcucG5n/original/wVUjLF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzUxNjIyLzYzNzc0OTgucG5n/original/D6ATgR.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzUxNjIyLzYzNzc1ODIuanBn/original/XdoMtL.jpg]]
<p>Butterflies is a game about inline skating and graffiti. Apparently some people did that before, but they don't seem like they'll be doing it anymore.<br></p>
<p><strong><strong><a href="https://twitter.com/@butterfliesep1" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter</a><strong></strong></strong>・ </strong><strong><strong><a href="https://discord.gg/GekpMz8" rel="nofollow noopener" referrerpolicy="origin">Discord</a><br></strong></strong></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/xwcM_7yMygc" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjkzMTk5LzE0MzQwNjQucG5n/original/%2FUQbvg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjkzMTk5LzE0MzQwNjIucG5n/original/dGB%2FJN.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjkzMTk5LzE0MzQwNjUucG5n/original/QlaiZY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjkzMTk5LzE0MzQwNjMucG5n/original/IPmzut.png]]
<p>Japan is one of only two countries never to have had a successful revolution in its history.<br></p>
<p>Butterflies is a game about inline skating and graffiti. Apparently some people did that before, but they don't seem like they'll be doing it anymore.</p>
<p>This is Episode 2, featuring a continuation of the story, new playable characters, a new map and local multiplayer.<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/10tSLV0-V94" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE0MzIxOS83MDIwNTQ0LnBuZw==/original/eI2kTO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0MzIxOS83MDIwNTQ2LnBuZw==/original/S1pH1c.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0MzIxOS83MDIwNTQ1LnBuZw==/original/viRpDB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0MzIxOS83MDIwNTQzLnBuZw==/original/pCpHk7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0MzIxOS82NjMzNTYxLnBuZw==/original/W7SUNQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0MzIxOS82NjMzNTYyLnBuZw==/original/vFb6HQ.png]]
<p class="text-center">OUT NOW</p>
<p>🦊&nbsp; <a href="https://www.twitter.com/buttoncity" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter</a><br>🐱 <a href="https://www.buttoncitygame.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Website</a><br>🐰 <a href="https://discord.com/invite/buttoncity" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Discord</a><br>🐼 <a href="https://picrew.me/image_maker/464902" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Make your own Fluffsona</a><br></p>
<p><img src="https://img.itch.zone/aW1nLzY4MzM2ODcuZ2lm/original/B0UOiY.gif" loading="lazy"></p>
<p>Fennel is a shy little fox who just moved into town. After  discovering the local arcade, he makes new friends and gets swept up in a  whirlwind adventure to save it from being shut down at the paws of  greedy fat cat Peppermint Pepperbottom!
  </p>
<p>Button City is a colorful low poly narrative adventure game about  friendship and community. Enter a pastel diorama world inspired by 90’s  nostalgia and filled with cute characters to befriend. Complete quirky  quests around town, play arcade games, collect fun costumes, solve  puzzles and more as you follow a story about growing up and saving the  things that are important to you. <br></p>
<p><img src="https://img.itch.zone/aW1nLzY4MzM3NjEucG5n/original/uZy%2Fr4.png" loading="lazy"><br></p>
<ul><li>Explore a beautiful and lovingly crafted world in a low poly art style.
</li><li>Befriend a cast of charming animal characters.
</li><li>Complete fun and silly side quests at your own pace.
</li><li>Master arcade games to unlock new game modes and prize items!
</li><li>Dress up in fun costumes and decorate your room.
</li></ul>
<p><img src="https://img.itch.zone/aW1nLzY4MzM3ODguZ2lm/original/6CMe5O.gif" loading="lazy"></p>
<p><img src="https://img.itch.zone/aW1nLzY4MzM3OTQucG5n/original/J8CWIy.png" loading="lazy"><br></p>
<p></p>
<p>★ <strong>Gobabots</strong> is the latest craze sweeping the arcade. Two teams of four cute fruit robots battle it out in an intergalactic competition to make the biggest smoothie! Each Gobabot has its own unique weapons and attacks -- collect them all at the arcade prize counter, form your perfect team, and become arcade champions!</p>
<p>★ Zoom down Watermelon Mountain in tuned-up electric cars in <strong>rEVolution Racer</strong>, a pastel take on classic arcade racing games. Race as Evie in her custom EV Sprinter against her fierce rival Spin. Drift to charge your batteries then unleash extreme boosts to speed past the competition!</p>
<p>★ <strong>Prisma Beats</strong> is a rainbow rhythm game with funky visuals and awesome tunes! Hit notes on the beat and show off your best dance moves -- and try out the challenge modes, if you’re feeling competitive</p>
<p class="text-center">JOIN OUR DISCORD COMMUNITY<br></p>
<p><a href="https://discord.com/invite/buttoncity" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzY4MzM5MTYucG5n/original/%2BG61Ij.png" loading="lazy"></a><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/2IwCaunXzwk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE3MzY4MC82ODUxNzk3LmdpZg==/original/Aw%2FO9Y.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE3MzY4MC82ODUxOTA0LmdpZg==/original/2Ol2cy.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE3MzY4MC82ODUxNjg4LmdpZg==/original/dkYHXf.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE3MzY4MC82ODUxNTU1LmdpZg==/original/fKNJVb.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE3MzY4MC82ODUxODk1LmdpZg==/original/La7t7a.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE3MzY4MC82ODUxNzQwLmdpZg==/original/tXnD8K.gif]]
<p>Bienvenido/a al equipo de nuestra Cafetería. Nuestro lema es “Puede que no siempre obtengas lo que deseas, pero siempre conseguirás lo que necesitas”. Como puedes imaginar, al basarse nuestro servicio al cliente en proporcionar a estos lo que necesitan para sentirse mejor, en vez de lo que inicialmente prefieren, atender a los clientes puede implicar cierta sutileza, pero confiamos en que una exquisita habilidad para elaborar los mejores tés e infusiones, por no hablar de la preparación de los más aromáticos cafés que se puedan degustar en la región, te permitirán convencer a los clientes de paladar más exigente. Tú te vas a encargar para encargarte en exclusiva de los tés.
 </p>
<p> Servimos a unos tres clientes a la hora de media, lo que te permitirá poder realizar pausas entre medias. ¡Ah! Y antes de que lo olvide, hay una tiendecita aquí justo en el local de al lado con artículos que te podrán resultar muy útiles. Incluso a veces hay gente disponible para trabajar. Eso sí, debes pagar lo que compres de tu bolsillo, de las propinas que consigas; de otro modo al dueño podría no gustarle ya tanto la idea. Además, y me duele decírtelo, si consigues tres malas calificaciones de los clientes, eso podría resultar perjudicial tanto para ti como para todo el equipo. Así que trata de evitar esas malas calificaciones por todos los medios.
 </p>
<p><strong>¿En qué consiste este juego?</strong>
 </p>
<p> Whistling Wolf Café es un juego de simulación en solitario de entre 15 a 20 minutos.
 </p>
<p> Eres un/a maestro barista especializado/a en ofrecer al cliente el té que este podría necesitar, más que el que cree que quiere. No necesitas más que una baraja de cartas (francesas o españolas), un puñado de dados de seis caras y algo para tomar notas.&nbsp;</p>
<p><strong> Sobre este juego</strong><br></p>
<p>Traducción y adaptación del juego original Whistling Wolf Café, que podrás encontrar en <a href="https://luckynewtgames.itch.io/whistling-wolf-cafe" target="_blank">LuckyNewtGames.itch.io</a><u><br></u></p>
<p><u>Por:</u> Antonio Soto Patiño - <a href="https://solohistorias.itch.io/"><u>SoloHistorias.itch.io</u></a> - <a href="https://www.instagram.com/relatos_para_escuchar/" rel="nofollow noopener" referrerpolicy="origin">Relatos para escuchar (Instagram)</a>
 <a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="nofollow noopener" referrerpolicy="origin"><u><br></u></a></p>
<p><a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="nofollow noopener" referrerpolicy="origin"><u>Covered by the CC BY-SA 4.0 license</u></a><a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="nofollow noopener" referrerpolicy="origin"><u><br></u></a><br>
  </p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQwNTY4NS84MTkwNzUwLnBuZw==/original/tiYHMz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQwNTY4NS84MTkwNzYwLnBuZw==/original/CO9mMd.png]]
<p>VECTORS: ACHIEVED... ENGINE:CRITICAL... SHIELDS:CRITICAL... FUEL:CRITICAL... WEAPONS:CRITICAL... EXISTENCE:CONFIRMED</p>
<p>LOAD:</p>
<p>STORE PAGE</p>
<p>Can Androids Pray: Red is a sitcom-length choice-based narrative about two angry femme mech pilots at the end of the world, and God.&nbsp;<br></p>
<p>It is also a&nbsp;companion piece to Can Androids Pray: Blue, which uses blue colors. Both versions&nbsp;can be bought in a bundle for the same price of a single game at&nbsp;<u></u><a href="https://itch.io/b/343/can-androids-pray">this link.</a></p>
<p>WRITTEN BY: &nbsp;Xalavier Nelson Jr / <a href="https://twitter.com/WritNelson" rel="nofollow noopener" referrerpolicy="origin">@WritNelson</a></p>
<p>DEVELOPED BY: Natalie Clayton / <a href="https://twitter.com/scarletcatalie" rel="nofollow noopener" referrerpolicy="origin">@scarletcatalie</a></p>
<p>MUSIC BY: Priscilla Snow / <a href="https://twitter.com/ghoulnoise" rel="nofollow noopener" referrerpolicy="origin">@ghoulnoise</a></p>
<p>Content warnings for suicide, religious themes, and (military-censored) profanity.</p><p><em>As featured at the V&amp;A Dundee Museum, A.MAZE 2019, and the EGX Rezzed Leftfield Collection</em>.<span></span><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDIwNzU3LzIyNjM3MzcucG5n/original/Ntx6l%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDIwNzU3LzIyNjM3MzYucG5n/original/BIn09M.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDIwNzU3LzIyNjM3NDAucG5n/original/oExqxF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDIwNzU3LzIyNjM3MzgucG5n/original/6rivhX.png]]
<p><span style="color: inherit"><strong></strong></span><span style="color: inherit; font-size: inherit">The </span><strong style="color: inherit; font-size: inherit">CanariPack 1BIT TopDown</strong><span style="color: inherit; font-size: inherit"> was meant to help you complete your game with graphics and music in a </span><strong style="color: inherit; font-size: inherit">simple but effective 1BIT style</strong><span style="color: inherit; font-size: inherit">! Whether it's a </span><strong style="color: inherit; font-size: inherit">Zelda-like, a Beat'Em Up, a Shoot'Em Up, a Roguelike or a Racing game</strong><span style="color: inherit; font-size: inherit">!&nbsp;</span></p>
<p>Designed by game developer and expert pixel&nbsp;artist&nbsp;<strong><a href="https://twitter.com/johanvinet" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Johan Vinet</a></strong>&nbsp;(founder of <a href="https://twitter.com/canarigames" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Canari Games</a>. Worked on Flinthook, Mercenary Kings Reloaded, Rivals Of Aether, Shovel Knights Showdown...), this very complete pack contains assets made with the greatest care.</p>
<p><img src="https://img.itch.zone/aW1nLzE3MDU5MTgucG5n/original/qojMxJ.png" loading="lazy"><br></p>
<p><strong>FEATURES:</strong><br></p>
<p><strong>A very versatile 16x16 tileset:</strong><br>Inspired by the classics, very versatile, allowing the realization of:</p>
<ul><li>Dungeon / Village / Forest / City / House interiors</li><li><strong>3 GameMaker's rooms</strong> given as examples with <strong>animated tilesets</strong> and <strong>autotiling support</strong>&nbsp;<em>(only&nbsp;for&nbsp;GameMakerStudio2).</em></li></ul>
<p><strong>Players' sprites (16x16):</strong></p>
<ul><li>3 heroes: Princess / Adventurer / Dog</li><li>Fully animated in all 4 directions: Idle / Walk / Push / Jump / Roll / Hurt / Attack / Death</li></ul>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzE3MDY2NzMuZ2lm/original/w1DDv%2F.gif" loading="lazy"><br></p>
<p><strong>Enemies' sprites:</strong></p>
<ul><li>4 enemies: Wizard / Blob / NegaBlob / Snake&nbsp;</li><li>Fully animated in the useful directions</li></ul>
<p><strong>35 items :</strong></p>
<ul><li>Key, sword, bomb, shield, gloves, hammer, chest, coin, pen, bow, mushroom, heart, pot, pot, potion, pick, shovel, bell, bell, boots, compass, feather, diskette, crown, harp, harp, leaf, mirror, gold bag, skull, skull, key, book, lamp, ring, scroll, shell, bananas, bone.</li></ul>
<p><strong>3 chiptune musics (click to listen):</strong></p>
<ul><li><a href="https://soundcloud.com/johanvinet/xbit-adventure?in=johanvinet/sets/xbit-canaripack" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Adventure theme</a> / <a href="https://soundcloud.com/johanvinet/1bit-dark-cave?in=johanvinet/sets/xbit-canaripack" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Dark Cave theme</a> / <a href="https://soundcloud.com/johanvinet/1bit-eerie?in=johanvinet/sets/xbit-canaripack" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Eerie theme</a></li></ul>
<p><strong>17 sound effects:</strong></p>
<ul><li>3 attack / 2 death / 1 fall / 2 hurt / 3 jump / 1 land / 1 pickup / 1 menu-back / 1 menu-valid / 1 menu-cursor.</li></ul>
<p><strong><br>GAMEMAKER STUDIO 2:</strong> In the package you'll found a YYZ file. Just import it in GameMaker Studio 2 and you'll be able to enjoy some fancy features like <strong>Tiles Animations</strong> and <strong>AutoTiling</strong>!</p>
<figure><img src="https://img.itch.zone/aW1nLzE3MDU4NjUuZ2lm/original/eKTTpg.gif" loading="lazy"><span></span></figure>
<p><strong></strong><strong>LICENSE</strong>:&nbsp;
<br><em>You may use these assets in&nbsp;<strong>personal&nbsp;</strong>or&nbsp;<strong>commercial&nbsp;</strong>projects. You may modify these assets to suit your needs.&nbsp;<strong>You can NOT re-distribute the file</strong>, no matter how much you modify it you can use it but&nbsp;<strong>not share or re-sell it</strong>.</em><br></p>
<p><strong>ENJOY!</strong></p>
<p><em><br>ALSO AVAILABLE:&nbsp;</em></p>
<p><iframe frameborder="0" src="https://itch.io/embed/342987?bg_color=FFD02B&amp;fg_color=1b1a25&amp;link_color=e0318a&amp;border_color=FFD02B" width="208" height="167"></iframe><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/qID5JWnyIVw" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzQyOTY1LzE3MDEwMDMucG5n/original/rjpqph.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQyOTY1LzE3MDEwMDQucG5n/original/iIukUF.png]]
<p>The <strong>CanariPack 8BIT TopDown</strong> was meant to help you complete your game with graphics and music in a <strong>very polished 8/16BIT style</strong>! Whether it's a <strong>Zelda-like, a Beat'Em Up, a Shoot'Em Up, a Roguelike or a Racing game</strong>!&nbsp;<br></p>
<p>Designed by game developer and expert pixel&nbsp;artist&nbsp;<strong><a href="https://twitter.com/johanvinet" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Johan Vinet</a></strong>&nbsp;(founder of&nbsp;<a href="https://twitter.com/canarigames" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Canari Games</a>. Worked on Flinthook, Mercenary Kings Reloaded, Rivals Of Aether, Shovel Knights Showdown...), this very complete pack contains assets made with the greatest care.</p>
<p><img src="https://img.itch.zone/aW1nLzE3MDU5MDcucG5n/original/tDBhH6.png" loading="lazy"><br></p>
<p><strong>FEATURES:<br></strong></p>
<p><strong>A very versatile 16x16 tileset:<br></strong>Inspired by the classics, very versatile, allowing the realization of:</p>
<ul><li>Dungeon / Village / Forest / City / House interiors</li><li>3 GameMaker's rooms given as examples with animated tilesets and autotiling support <em>(only for GameMakerStudio2).</em></li></ul>
<p><strong>Players' sprites (16x16):</strong><br></p>
<ul><li>3 heroes: Princess / Adventurer / Dog</li><li>Fully animated in all 4 directions: Idle / Walk / Push / Jump / Roll / Hurt / Attack / Death</li></ul>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzE3MDY2NzAuZ2lm/original/GyiAzg.gif" loading="lazy"><br></p>
<p><strong>Enemies' sprites:</strong></p>
<ul><li>4 enemies: Wizard / Blob / NegaBlob / Snake</li><li>Fully animated in the useful directions</li></ul>
<p><strong>35 items :</strong></p>
<ul><li>Key, sword, bomb, shield, gloves, hammer, chest, coin, pen, bow, mushroom, heart, pot, pot, potion, pick, shovel, bell, bell, boots, compass, feather, diskette, crown, harp, harp, leaf, mirror, gold bag, skull, skull, key, book, lamp, ring, scroll, shell, bananas, bone.</li></ul>
<p><strong>3 chiptune musics (click to listen):</strong></p>
<ul><li><a href="https://soundcloud.com/johanvinet/xbit-adventure?in=johanvinet/sets/xbit-canaripack" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Adventure theme</a>&nbsp;/&nbsp;<a href="https://soundcloud.com/johanvinet/1bit-dark-cave?in=johanvinet/sets/xbit-canaripack" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Dark Cave theme</a>&nbsp;/&nbsp;<a href="https://soundcloud.com/johanvinet/1bit-eerie?in=johanvinet/sets/xbit-canaripack" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Eerie theme</a></li></ul>
<p><strong>17 sound effects:</strong></p>
<ul><li>3 attack / 2 death / 1 fall / 2 hurt / 3 jump / 1 land / 1 pickup / 1 menu-back / 1 menu-valid / 1 menu-cursor.</li></ul>
<p><strong>
GAMEMAKER STUDIO 2:</strong>&nbsp;In the package you'll found a YYZ file. Just import it in GameMaker Studio 2 and you'll be able to enjoy some fancy features like&nbsp;<strong>Tiles Animations</strong>&nbsp;and&nbsp;<strong>AutoTiling</strong>!</p>
<p><img src="https://img.itch.zone/aW1nLzE3MDU4NzEuZ2lm/original/SUPpKX.gif" loading="lazy"><br></p>
<p><strong></strong><strong>LICENSE</strong>:<br><em>You may use these&nbsp;assets in&nbsp;<strong>personal&nbsp;</strong>or&nbsp;<strong>commercial&nbsp;</strong>projects. You may modify these assets to suit your needs.&nbsp;<strong>You can NOT re-distribute the file</strong>, no matter how much you modify it you can use it but&nbsp;<strong>not share or re-sell it</strong>.</em><br></p>
<p><strong>ENJOY!</strong><br></p>
<p><em><br>ALSO AVAILABLE:<br></em></p>
<p><iframe frameborder="0" src="https://itch.io/embed/342965?bg_color=FFD02B&amp;fg_color=1b1a25&amp;link_color=e0318a&amp;border_color=FFD02B" width="208" height="167"></iframe></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/pHrof89mepM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzQyOTg3LzE3MDExMzEucG5n/original/h3QtFg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQyOTg3LzE3MDExMzIucG5n/original/uBmq6v.png]]
<p><img src="https://img.itch.zone/aW1nLzcyNTM0NzEucG5n/original/Jt2p85.png" loading="lazy"></p>
<p><img src="https://img.itch.zone/aW1nLzcyNjAxNjkucG5n/original/COIWXK.png" loading="lazy"></p>
<p><img src="https://img.itch.zone/aW1nLzcyNjAxODUucG5n/original/ydKX2I.png" loading="lazy"></p>
<p><img src="https://img.itch.zone/aW1nLzcyNjAxODIucG5n/original/b%2FhqaS.png" loading="lazy"></p>

[img width=500 [https://img.itch.zone/aW1nLzcyNTI5NTAucG5n/original/WdngHg.png]]
<p>Get ready for the biggest pirate puzzle adventure ever. Meet <em>Captain Backwater</em> - the most feared pirate in the Caribbean. Help him to <strong>loot dangerous treasure caves</strong>, find the biggest pirate treasure ever and rescue Backwater's beloved Mary O'Maley. This adventure is <strong>a real brain challenge</strong> for you full of danger, <strong>fun</strong> and fame.</p>
<p><strong>Features</strong></p>
<ul><li>fresh &amp; challenging gameplay</li><li>stunning special effects</li><li>many extras &amp; special items</li><li>clear 100 treasure caves</li><li>complete the cursed amulet</li><li>become the most feared pirate in the Caribbean</li><li>share your achievements with your friends</li><li>pay once, play on Windows, Mac OS X &amp; Linux</li><li>No DRM!</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzYzMy8yMDI0OC5qcGc=/original/8xB3ox.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzYzMy8yMDI1MC5qcGc=/original/Pgzihn.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzYzMy8yMDI1MS5qcGc=/original/GW6ZO%2F.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzYzMy8yMDI1Mi5qcGc=/original/W8Bbdd.jpg]]
<figure><img src="https://img.itch.zone/aW1nLzc3MjgwNDkucG5n/original/cfO%2FD%2F.png" loading="lazy"></figure>
<p></p>
<p><img src="https://www.drivethrurpg.com/images/8957/_product_images/290482/german128square.png" width="16" height="16" alt="german128square.png" loading="lazy">&nbsp;Erobere&nbsp;mit deinem Team die feindliche Flagge und bring sie nach Hause!&nbsp;<strong>Capture the Flag&nbsp;</strong>ist eine Regelerweiterung für eine Spielerin gegen Spieler-Erfahrung in 5e inkl. Beispielkarten, Marker und Werteblöcken.</p>
<p>Enthält:
</p>
<ul><li><strong>Regelerweiterung</strong>&nbsp;auf nur zwei Seiten. Weniger Regeln, mehr Spaß!
</li><li><strong>Optionale Regeln</strong>&nbsp;und&nbsp;<strong>Spielvarianten</strong>&nbsp;auf einer Seite. Minimale Änderungen, noch mehr Spaß!
</li><li>Vier&nbsp;<strong>Beispielkarten</strong>&nbsp;mit hochauflösenden Geländekarten in Spieler*innen und Spielleitungsversion, sowie Savefile für den kostenlosen Online-Karten-Editor Dungeon Scrawl
</li><li>Zwei&nbsp;<strong>Schatztabellen</strong>&nbsp;für zufällig bestimmte Schätze
</li><li>Elf&nbsp;<strong>Werteblöcke</strong>&nbsp;von verwendeten Monstern
</li><li>Mehrere Seiten mit&nbsp;<strong>Markern</strong>&nbsp;zum ausdrucken und ausschneiden
</li><li>Alle Marker-Bilder auch als separate Dateien zur Verwendung an Virtual Tabletops (wie zB Roll20) enthalten
</li><li>PDF plus druckerfreundlicher Version, nur-Text Version und ePUB (nur in der deutschsprachigen Fassung)</li></ul>
<p><span style="color: inherit; font-size: inherit"></span></p>
<p><img src="https://www.drivethrurpg.com/images/8957/_product_images/290482/english128square.png" width="16" height="16" alt="english128square.png" style="border: 0px; padding-right: 10px" loading="lazy">Capture the enemies flag with your team and bring it Home!&nbsp;<strong>Capture the Flag&nbsp;</strong>is a rules supplement for a player vs. player experience in 5e incl. example maps, tokens and statblocks.
</p>
<p>Contains:
</p>
<ul><li><strong>Rules expansion</strong>&nbsp;on only two pages. Less rules, more fun!
</li><li><strong>Optional rules</strong>&nbsp;and&nbsp;<strong>game variants</strong>&nbsp;on one page. Minimal changes, even more fun!
</li><li>Four sample&nbsp;<strong>maps</strong>&nbsp;with high-resolution terrain maps in player and dungeon master versions, as well as savefiles for the free online map editor Dungeon Scrawl
</li><li>Two&nbsp;<strong>treasure tables</strong>&nbsp;for randomly determined treasures
</li><li>Eleven&nbsp;<strong>statblocks</strong>&nbsp;of used monsters
</li><li>Several pages with&nbsp;<strong>tokens</strong>&nbsp;to print and cut out
</li><li>All marker images also included as separate files for use on virtual tabletops (like Roll20)</li><li>PDF plus printer friedly version and text only version</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMyODkyNy83NzI4MDA2LmpwZw==/original/QehVKR.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMyODkyNy83NzI4MDA3LmpwZw==/original/7ufCgc.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMyODkyNy83NzI4MDA4LmpwZw==/original/fNGZGk.jpg]]
<p><strong>Pick a pig card and embark on a grid-based dungeon crawl jam-packed with weird creatures, dangerous traps, powerful weapons and magic!</strong></p>
<h2 class="text-center">CHOOSE YOUR HOG<img src="https://img.itch.zone/aW1nLzQ1MzMzMjcucG5n/original/a0qfz5.png" loading="lazy"></h2>
<p>Try out&nbsp;different pigs with unique card loadouts and skills to find your favorite playstyle!</p>
<p><img src="https://img.itch.zone/aW1nLzQ1MzI5NzQucG5n/original/BD%2FqHa.png" loading="lazy"><br></p>
<h2 class="text-center">FEATURES<img src="https://img.itch.zone/aW1nLzQ1MzMzMzAucG5n/original/%2BaC5zF.png" loading="lazy"></h2>
<ul><li>Quite addictive dungeon crawling</li><li>Dozens of enemies and bosses to discover and defeat</li><li>Playable hogs with different card sets and perks</li><li>Tons of cards and their combinations to discover</li><li>Local multiplayer for fighting with or against your friends</li><li>Humorous shenanigans</li></ul>
<h2 class="text-center">EARLY ACCESS<img src="https://img.itch.zone/aW1nLzQ1MzMzMjcucG5n/original/a0qfz5.png" loading="lazy"></h2>
<p>Game is currently in Early Access and being actively developed. Much more content coming soon in form of mechanics, cards, characters and game modes!</p>
<h2 class="text-center">STEAM<img src="https://img.itch.zone/aW1nLzQ1MzMzMjcucG5n/original/a0qfz5.png" loading="lazy"></h2>
<p>Steam keys are available with every purchase in case you would like to see what Workshop has to offer or to adventure with friends using Remote Play Together.</p>
<h2 class="text-center">CONTENT CREATION<img src="https://img.itch.zone/aW1nLzQ1MzMzMjcucG5n/original/a0qfz5.png" loading="lazy"></h2>
<p>Streaming Card Hog or creating videos about it is highly appreciated&nbsp;and free keys are available for creators who contact me on <a href="https://twitter.com/SnoutUp" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter</a> or via <a href="mailto:snoutupgames@gmail.com" rel="nofollow noopener" referrerpolicy="origin">email</a>. You can find a few pieces of key art in <a href="http://games.snoutup.com/card-hog" target="_blank" rel="nofollow noopener" referrerpolicy="origin">this page</a>.</p>
<h2 class="text-center">CREDITS<img src="https://img.itch.zone/aW1nLzQ1MzMzMjcucG5n/original/a0qfz5.png" loading="lazy"></h2>
<p>Code: <a href="https://twitter.com/snoutup" rel="nofollow noopener" referrerpolicy="origin"></a><strong><a href="http://twitter.com/snoutup" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@SnoutUp</a></strong>,&nbsp; art: <a href="https://twitter.com/EmiliusDraws" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong>@EmiliusDraws</strong></a>
<br>Design inspired by<strong>&nbsp;Look Your Loot</strong>&nbsp;and&nbsp;<strong>Dungeon Cards</strong>.</p>
<p><strong>Join&nbsp;</strong><a href="https://discord.gg/krW5ZBd" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong>Card Hog Discord</strong></a>!</p>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/aseHJdlAfOg" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODA4NjUyLzQ1MzM1OTIuZ2lm/original/Fn7Qy%2F.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvODA4NjUyLzQ1MzI5NjIucG5n/original/nZmeb7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODA4NjUyLzQ1MzM2MTguZ2lm/original/dGk8Vg.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvODA4NjUyLzQ1MzI5NTkucG5n/original/LQDmF3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODA4NjUyLzQ1MzI5NjAucG5n/original/%2FWFfzp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODA4NjUyLzQ1MzI5NjEucG5n/original/kf%2BV1A.png]]
<p></p>
<p>
</p>
<p></p>
<p><strong>Take the role of a brave little playing card</strong> on a card flipping adventure<strong> </strong>through a dangerous dungeon<strong>.</strong> Battle your way through <strong>4 areas of the dungeon</strong> to unlock the final area and take down "The Bad Hand" to <strong>save your beloved card companion</strong>. <br></p>
<p><strong>Collect plus and minus cards</strong> to match the room's card and advance to the next part of the dungeon.<br></p>
<h2>Key Features</h2>
<p>
</p>
<p><br>■ <strong>Steam key included</strong><br></p>
<p>■ Over 50 rooms to complete across 4 areas<br></p>
<p>■ 4 suit abilities to unlock and master</p>
<p>■ Local Speedrun and Fewest Deaths Leaderboards with online leaderboard support in the included Steam version<br></p>
<p>■ Controller Support<br><br></p>
<p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/K8wcu44fz6o" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzU2MTI4LzYwOTg1MDAuZ2lm/original/nnKyH7.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU2MTI4LzYwOTg1MjkuZ2lm/original/5%2FAowZ.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU2MTI4LzYwODAyNDEucG5n/original/FyRgae.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU2MTI4LzYwODAyNDIucG5n/original/wwuTgQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU2MTI4LzYwODAyMzcucG5n/original/RfwlKm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU2MTI4LzYwODAyNDQucG5n/original/FVq40v.png]]

<p class="text-center"><img src="https://img.itch.zone/aW1nLzQ4NzM4NDUuanBn/original/V4AbRN.jpg" loading="lazy"></p>
<p class="text-center"> When Lana Brice, a small time Raider Scavenger meets her mysterious client, she realises her life just took a very wrong turn in the worst way possible.</p>
<p class="text-center">Being forced to join a stranger's fight, can she discover her feelings towards injustice?                                                    Will this careless adventure become the sparks of a Galactic disaster?<br></p>
<p class="text-center"><a href="https://www.rockpapershotgun.com/2018/04/16/unknown-pleasures-the-five-best-new-games-on-steam/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzQ4NzM4NDcuanBn/original/12CeSC.jpg" loading="lazy"></a></p>
<div class="text-center"><iframe style="width: 500px; height: 281px" src="https://www.youtube.com/embed/5TKUJL1PR6M" allowfullscreen="" frameborder="0"></iframe>&nbsp;<br><br></div>

<iframe width="720" height="450" src="https://www.youtube.com/embed/5TKUJL1PR6M" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODY3NTQ4LzQ4NzM4MzYuanBn/original/GHiJ0j.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODY3NTQ4LzQ4NzM4MzkuanBn/original/QTUkW9.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODY3NTQ4LzQ4NzM4MzguanBn/original/E2EpeS.jpg]]
<blockquote>Content Warning: Horror, Death of loved ones and innocents, supernatural,&nbsp;ghosts, zombies, vampires</blockquote>
<p><strong>Monsters are real. </strong>You have known for a while and tirelessly try to rid the world of&nbsp; their existence. You have seen friends and family die in grisly ways during the&nbsp; pursuit of one horrible thing or another. Sometimes you wonder if it is worth it. You&nbsp; won’t always win. There is no fame, glory, or money in it. Still, you carry on against all odds. Because what else is there to do if you know what’s at stake? Give up? God may have.&nbsp;</p>
<h3>Hunters never do.</h3>
<ul><li>Play Hunters in a world where monsters are real.</li><li>Form Bonds with your fellow Hunters.</li><li>Use your Hunter Knacks to level the playing field against evil.</li><li>Hunters survive because they are lucky. But when it runs out...</li><li>Still, death doesn't have to mean death.</li><li>Inspired by Supernatural, Buffy, X-Files, Monsters of the Week and others.</li></ul>
<p>New supplement made for the 24XX microgame. Learn more about it at&nbsp;<a href="https://jasontocci.itch.io/2400">jasontocci.itch.io/2400</a>&nbsp;or create your own using the available&nbsp;<a href="https://jasontocci.itch.io/24xx">SRD</a>!&nbsp;
</p>
<p>Written for the 2020&nbsp;&nbsp;<a href="https://itch.io/jam/2400jam">24XX Game Jam</a>.&nbsp;</p>
<p>Interested in more&nbsp;24XX? Any questions? looking for games? Come join the&nbsp;<a href="https://discord.io/24xx-cord" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Discord</a>.&nbsp;</p>
<p>Background pattern is downloaded from <a href="http://www.subtlepatterns.com" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">www.subtlepatterns.com</a>&nbsp;<br></p>
<p><img src="https://img.itch.zone/aW1nLzY0NDIyNDUucG5n/original/TJnBzh.png" loading="lazy"><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODMxOTc5LzQ2NjQ5NDUucG5n/original/Nc0tgO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODMxOTc5LzQ2NjQ2NTMuanBn/original/Bq615s.jpg]]
<h2>Print copies available&nbsp;<a href="https://www.exaltedfuneral.com/products/cast-away" target="_blank" rel="nofollow noopener" referrerpolicy="origin">in the US</a> &amp; <a href="https://rattiincantati.com/products/cast-away-pdf" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Canada</a>!</h2>
<p><strong>Cast Away is the definitive tabletop survival RPG</strong>. Its Diminishing&nbsp;Dice mechanics reflect the ever-worsening condition of survivors in the aftermath of a disaster—without tracking Hit Points or burdensome injury tables. Death is permanent,&nbsp;therefore, we've created a Haunting system that keeps players engaged long after their characters pass away. Cast Away contains a modular set of guidelines and is&nbsp;easily adapted to any setting, environment, or circumstance.&nbsp;</p>
<p>Your purchase includes:</p>
<blockquote>- Survivor's &amp; Navigator's Guide<br>- Drop-in Survival Scenario<br>- Printer Friendly&nbsp;Character Sheets<br>- 3 BONUS Adventures</blockquote>
<h2>Bonus Adventures:</h2>
<h3><a href="https://afterthought-committee.itch.io/brain-food" target="_blank">Brain Food</a>&nbsp;- A zombie apocalypse
</h3>
<h3><a href="https://afterthought-committee.itch.io/ground-control" target="_blank">Ground Control</a>&nbsp;- A space odyssey
</h3>
<h3><a href="https://afterthought-committee.itch.io/cursed-crystal" target="_blank">Cursed Crystal</a>&nbsp;- A fantasy escape
</h3>
<p></p>
<h2><div class=""><iframe width="500" height="281" src="https://www.youtube.com/embed/JLggU2QgSWM" frameborder="0" allowfullscreen=""></iframe></div></h2>
<h2></h2>
<h2>What do you need to play?</h2>
<p>Cast Away is a tabletop RPG. You'll need: <br> 2+ Players &amp; at least one set of Polyhedral Dice (minus the d20)&nbsp;</p>
<h3><u>Credits</u></h3>
<p><strong></strong>Written by Joe O'Brien &amp; Reilly Qyote<br>Layout &amp; Design by Reilly Qyote<br><em>Special Thanks To:&nbsp;</em><br>B, Levimax, Clint, <a href="https://quorumofsand.itch.io/" target="_blank">Matthew K</a>, and <a href="https://rugose-kohn.itch.io/" target="_blank">Rugose Kohn</a><br> for all your support and inspiration.<br><br><u><strong>We’d&nbsp;love to hear from you!</strong></u></p>
<p>If you have stories to share, want to give us feedback, or just wanna chat about RPGs, feel free to drop us a line at&nbsp;<a href="mailto:afterthoughtcommittee@gmail.com" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">afterthoughtcommittee@gmail.com</a>.</p>
<p>Sometimes we make stuff on&nbsp;<a href="http://twitch.tv/afterthoughtgames" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitch</a>.<br><br>Track us down on <a href="https://discord.gg/d5nh2bHPNP" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Discord</a>.<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/JLggU2QgSWM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODY4MTc3LzUzMjQ3NjQuanBn/original/O0ft1z.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODY4MTc3LzQ5MTU5OTUuanBn/original/fy5ARw.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODY4MTc3LzQ5MDg5NzcuanBn/original/3%2BMD1J.jpg]]
<p>Catlandia: Crisis at Fort Pawprint, is a 2D RPG featuring cats! The first game in the Catlandia world, players embark upon a short adventure to reveal and squash a canine threat to the peaceful Cat Kingdom.<br><br>Trout Lake is a vital component in the Cat Kingdom's fish supply lines. But rumours of dogs in the nearby Whisker Woods has forced the Cat Kingdom to establish the outpost of Fort Pawprint to investigate. You are Nugget, a brave Catmando stationed at the fort. Along with your sidekick Sausage, you are charged to sort this whole mess out.</p>
<ul><li><strong>Create a fully customizable cat&nbsp;</strong>by choosing colours, shapes, and patterns</li><li>Collect costume items to&nbsp;<strong>make your cat cuter</strong>&nbsp;— and unlock powerful techniques</li><li><strong>Take your cat into battle</strong>&nbsp;against dogs, pigeons, and other fearsome creatures</li><li>Become friends with other cats of&nbsp;<strong>varying degrees of helpfulness</strong>!</li><li><strong>Take on exciting quests</strong>!</li></ul>
<p>Explore the Whisker Woods and defeat the dogs — for the glory of the Cat Kingdom!<br><br>Catlandia is developed by a small team of independent developers as a passion project. We love cats, and wanted to create an opportunity for you to be a cat yourself. We also think there's an audience for games you don't have to play forever — by design, we created Catlandia as an experience that can be picked up, enjoyed, and finished without a huge investment of time — yet allow it to fit within a larger narrative. We're excited to share this first peak into Catlandia with the Itch community.</p>
<p>This version of Catlandia includes the free Trouble at The Tall House update — a story expansion that lets your cats explore new areas, fight new bosses, and find more costumes!</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/nNOuHN7qOHE" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjYzNDE4LzM1NzUxMTAucG5n/original/ZL8gqT.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjYzNDE4LzM1NzUxMTEucG5n/original/wABIMh.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjYzNDE4LzM1NzUxMTUucG5n/original/vX5wNy.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjYzNDE4LzM1NzUxMTMucG5n/original/Bug%2B5%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjYzNDE4LzM1NzUxMTIucG5n/original/9jSHMI.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjYzNDE4LzM1NzUxMTQucG5n/original/Akez7r.png]]
<p><strong><em></em></strong><strong><em>Catlateral Damage: Remeowstered</em></strong>&nbsp;is the definitive edition of your favorite destructive cat simulator, where you play as a house cat on a rampage and do all that fun stuff your owner hates!</p>
<p><img src="https://i.imgur.com/w3wA0qI.gif" loading="lazy"></p>
<p>See the world through the eyes of a cat! Run around the house, topple neatly organized books, shatter vases, meow at nothing, tear up curtains, nap in obscure places, and more!<br></p>
<p><img src="https://i.imgur.com/5aNnLDs.gif" loading="lazy"></p>
<p>Complete objectives, explore procedurally generated levels, or just relax in sandbox mode to unlock a clowder of cat friends and special abilities!<br></p>
<p><img src="https://i.imgur.com/5fEpLIG.gif" loading="lazy"></p>
<p><em>Remeowstered</em>&nbsp;was rebuilt from the ground up to give a shiny new coat to the destructive feline gameplay of the original!</p>
<p><img src="https://i.imgur.com/xCc7PIW.gif" loading="lazy"></p>
<h4>Improvements and Additions</h4>
<ul><li>A complete progression redesign</li><li>More objects to topple and interact with</li><li>Brand new tasks to complete</li><li>Persistent stat boosts and abilities</li><li>Revamped cat models and animations</li><li>Overall improvements to UI, animations, and effects</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/8aGMnc2cDtY" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzczMDA2LzU5NTA0NzMucG5n/original/pKhhZG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzczMDA2LzU5NTA0NzcucG5n/original/ADrjAH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzczMDA2LzU5NTA0NzYucG5n/original/WTYXZ9.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzczMDA2LzU5NTA0NzQucG5n/original/uWXwAm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzczMDA2LzU5NTA0NzUucG5n/original/Rn6UPi.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzczMDA2LzU5NTA1MDEucG5n/original/KfVWJV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzczMDA2LzU5NTA1MDIucG5n/original/nsvEQ%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzczMDA2LzU5NTA1MDUucG5n/original/Y0HPMn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzczMDA2LzU5NTA1MDMucG5n/original/hkBaoo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzczMDA2LzU5NTA1MDQucG5n/original/PTBi%2BX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzczMDA2LzU5NTA1MDYucG5n/original/3RCrbH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzczMDA2LzU5NTA1MDcucG5n/original/V0%2BwsI.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzczMDA2LzU5NTA1MDgucG5n/original/kf5Vb3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzczMDA2LzU5NTA1MDkucG5n/original/%2FA%2BPy8.png]]
<p>You play as the cat, in a place created just for you and your friends. You get to go on a nice adventure with them where nothing goes wrong and everything is perfect, as long as your friends stay there, right by your side.</p>
<p>Over the course of the game, you get to explore 120 rooms and discover new abilities like the hookshot and light burst.</p>
<p>A world editor is included.<br></p>
<p></p>
<p><strong>This game contains dark story elements, including strong feelings of abandonment and detachment from reality. This game is not for children.</strong></p>
<p><strong><br></strong></p>
<p><strong>Minimum system requirements:<br></strong></p>
<p><strong>This game only supports 64-bit systems.</strong></p>
<p><strong>OS:</strong> Windows 7, macOS 10.12 Sierra, Ubuntu 16.04<br><strong>Processor:</strong> 6th Generation Intel Core i3<br><strong>Graphics:</strong>&nbsp;Minimum required OpenGL version is 3.2<br><strong>Memory:</strong> 400 MB RAM<br><strong>Storage:</strong> 400 MB available space<br><strong>Additional notes:</strong> Memory listed indicates available free memory for the game.<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/jnZr6gtWJjk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTA4ODk2LzI2NTg5NzYucG5n/original/0svp8i.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA4ODk2LzI2NTg5NzcucG5n/original/oEZ1mH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA4ODk2LzI2NTg5NzgucG5n/original/H4zFs2.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA4ODk2LzI2NTg5NzUucG5n/original/PtZw3%2F.png]]
<p><strong>Cats are Liquid - A Better Place is available now (with more rooms and more abilities), and you should totally check it out by clicking <a href="https://lastquarterstudios.itch.io/cats-are-liquid-a-better-place">here</a>!</strong></p>
<hr>
<p>
Cats are Liquid - A Light in the Shadows is a 2D platformer about a cat with the ability to transform into liquid.<br></p>
<p>
	The game has 90 levels, that are spread across 9 different worlds. It has a minimalistic but colorful style. Along the way the game introduces new mechanics, like flying and summoning bombs to break down walls.
</p>
<p>
	The story is about a cat whose owner locked her in a set of rooms. She desperately wants to get out, but the rooms just keep continuing. Along the way the cat meets a new "friend" and gains new abilities. The story is told through small in game text pieces.</p>
<hr>
<p>
	More info about the game can be found here: 
	<a href="http://catsareliquidgame.tumblr.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">catsareliquidgame.tumblr.com</a>
</p>
<p>
	The latest news about the game can be found on the 
	<a href="http://twitter.com/lastquarterdev" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@lastquarterdev</a> Twitter feed.
</p>
<hr>
<p>
	<a href="https://twitter.com/search?q=%23CatsAreLiquid" target="_blank" title="#CatsAreLiquid on Twitter" rel="nofollow noopener" referrerpolicy="origin">#CatsAreLiquid on Twitter</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzY3NzIvNDc4OTQxLnBuZw==/original/Ajykbz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzY3NzIvNDc4OTQyLnBuZw==/original/5pLsQu.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzY3NzIvNDc4OTM5LnBuZw==/original/QMfMbV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzY3NzIvNDc4OTQzLnBuZw==/original/Soh0Qg.png]]
<p>Catty &amp; Batty: The Spirit Guide is a <strong>casual couch co-op puzzle game</strong>, inspired by Lemmings and Tower Defense!&nbsp;Play as Catty or Batty and build a path to guide spirits home.</p>
<h3>Features:</h3>
<p>🗺️ Campaign with 30 levels for<strong> 1-2 players (local co-op)<br></strong>🖋️ <span></span>Over 800 hand-drawn sprites<br>🎞️ <span></span>Over&nbsp;<span></span>150 animations<br>🕬 &nbsp;Over&nbsp;<span></span>100 new&nbsp;sounds<br>🎼 Original soundtrack<br>🎮 100% Controller support<br>🌈 <span></span>6 color modes&nbsp;(white, sepia, gray, dark, inverted, gameboy)<br>⏱️  About three hours of gameplay (including New Game+)<br><strong>✔️ Free steam key if you get it on itch.io! </strong>(Steam key not included in the World Land Trust bundle)<strong></strong></p>
<p><strong><em>Also available on Nintendo Switch, PlayStation 4 and 5, Xbox Series&nbsp;X|S, Xbox One.</em><br></strong></p>
<iframe src="https://store.steampowered.com/widget/1483470/" frameborder="0" width="646" height="190"><span class=""></span></iframe>

<iframe width="720" height="450" src="https://www.youtube.com/embed/u8HIWCTROV0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTI5NzgyLzQ2NDM2ODIucG5n/original/daeQA5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI5NzgyLzc1ODQxNDAucG5n/original/T5mGJl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI5NzgyLzc1ODQxNDEucG5n/original/yWOlzn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI5NzgyLzc1ODQxMzkucG5n/original/ug2WrP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI5NzgyLzQ2NDM2NzkucG5n/original/3jAz%2Fd.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI5NzgyLzQ2NDM2ODAucG5n/original/N9ruDX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI5NzgyLzQ2NDM2ODEucG5n/original/ozKFoJ.png]]
<h3>Stardate: 15th April, 2088
</h3>
<p>The starship Equinox is under attack from Stormlord and his robotic minions, the Exolons! You're the crew's only hope. Take your Samurai-1 fighter, find Captain Solomon's Key, clear the decks of evil robots, and save the Equinox from certain destruction!
</p>
<p>Cecconoid is an 8-bit inspired, flick-screen,&nbsp;twin-stick-shooter, set in an alternate dimension where the pixels are still chunky, and the bad guys are black and white. <br></p>
<p> Except for their dangly red bits.<strong>..<br></strong></p>
<h3>Also&nbsp;includes...</h3>
<p> A full, bonus arcade game; <strong>Eugatron!&nbsp;</strong>50 levels of Robotron-style, twin-stick, arena-based shooting, direct from the 80s and remixed for your pleasure. Can you be a <strong>Eugenius?</strong><br></p>
<h2>Features</h2>
<ul><li>50+ Rooms</li><li>6 different power-ups</li><li>High Score Table</li><li>Full, bonus arcade-game, <strong>Eugatron<br></strong></li></ul>
<p>Also available on:</p>
<ul><li> iOS: <a href="https://apps.apple.com/us/app/cecconoid/id1476360841" rel="nofollow noopener" referrerpolicy="origin">https://apps.apple.com/us/app/cecconoid/id1476360841</a></li><li>Android: <a href="https://play.google.com/store/apps/details?id=com.tdp.cecconoid" rel="nofollow noopener" referrerpolicy="origin">https://play.google.com/store/apps/details?id=com.tdp.cecconoid</a></li></ul>
<h4>EPILEPSY WARNING</h4>
<p>This game contains flashing images that could potentially trigger seizures for people with photosensitive epilepsy. <strong><em>Like, seriously, the entire game flashes, ALL THE TIME, and there's no option to change it.</em></strong></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/lFtRonr1VqM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzk0NjI1LzIxMTUyODEuanBn/original/THPmkR.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzk0NjI1LzIxMTUyNzYuanBn/original/KK3t9z.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzk0NjI1LzIxMTUyNzkuanBn/original/gHZjtH.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzk0NjI1LzIxMTUyODAuanBn/original/wsOjrW.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzk0NjI1LzIxMTUyNzcuanBn/original/P0UiHu.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzk0NjI1LzIxMTUyODMuanBn/original/LIIjtK.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzk0NjI1LzIxMTUyNzguanBn/original/3Z0NZ5.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzk0NjI1LzIxMTUyODIuanBn/original/qGLpwC.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzk0NjI1LzI2MzEwMDMuanBn/original/nwddM6.jpg]]
<p>Help Madeline survive her inner demons on her journey to the top of Celeste Mountain, in this super-tight, hand-crafted platformer from the creators of multiplayer classic TowerFall.</p>
<p><img src="https://img.itch.zone/aW1nLzEwMjQyNzAucG5n/original/9q4HnH.png" loading="lazy"><br></p>
<ul><li>A narrative-driven, single-player adventure like mom used to make, with a charming cast of characters and a touching story of self-discovery</li><li>A massive mountain teeming with 700+ screens of hardcore platforming challenges and devious secrets</li><li>Brutal B-side chapters to unlock, built for only the bravest mountaineers</li><li>IGF “Excellence in Audio” finalist, with over 2 hours of original music led by dazzling live piano and catchy synth beats</li><li>Pie</li></ul>
<p>The controls are simple and accessible - simply jump, air-dash, and climb - but with layers of expressive depth to master, where every death is a lesson. Lightning-fast respawns keep you climbing as you uncover the mysteries of the mountain and brave its many perils.&nbsp;</p>
<p class="text-center"><em>This is it, Madeline. Just breathe. You can do this.</em></p>
<p><img src="https://img.itch.zone/aW1nLzEwMjQyNzIucG5n/original/cKNZVV.png" loading="lazy"></p>
<p><a href="https://radicaldreamland.bandcamp.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzEwMjQyNzMucG5n/original/uG8bIo.png" alt="Buy the Soundtrack" title="Buy the Soundtrack" loading="lazy"></a><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjE2OTk2LzEwMjQyODAucG5n/original/Nt%2FcfZ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE2OTk2LzEwMjQyNzkucG5n/original/Usrjwz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE2OTk2LzEwMjQyODQucG5n/original/1tVn%2BC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE2OTk2LzEwMjQyODIucG5n/original/JeBZ4U.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE2OTk2LzEwMjQyODcucG5n/original/Cr%2FjEb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE2OTk2LzEwMjQyODUucG5n/original/tms389.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE2OTk2LzEwMjQyODkucG5n/original/P8PL%2BV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE2OTk2LzEwMjQyODMucG5n/original/4Gr7D9.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE2OTk2LzEwMjQyODgucG5n/original/Jm%2B%2FPL.png]]

<p><em><strong></strong>Come away, O human child! To the waters and the wild with a faery, hand in hand,&nbsp;for the world’s more full of weeping than you can understand.</em></p>
<p><em>~ W.B. Yeats</em><strong></strong></p>
<p><strong>Description</strong><span></span>
&nbsp;
</p>
<p>Changeling is a GxB, non-stat raising, full-length visual novel about love, reconciliation, and trying to survive in a dangerous supernatural world. Play through about 30-40 hours of content and over 40 unique endings while trying to survive the perils of a newly discovered paranormal community. Romance one of 6 love interests as you uncover information about the supernatural and the secrets from your own past - all while you try to patch up your relationship with your twin brother who grows more and more suspicious of you with each passing day.<span></span>
</p>
<p>&nbsp;
</p>
<p><strong><span class="">Story</span></strong><span></span>
</p>
<p>The human world accepted&nbsp;as reality is only a thin veneer under which lies a world of supernatural creatures, entities, and people. They live beside humans hiding their nature or walking among them unseen. And most people go about their lives entirely unaware of the dangers around them. Mysterious situations are written off as fake, or they're glossed over with some sort of mundane explanation. <span></span>
</p>
<p>The same was true for Nora, a normal girl struggling with the usual litany of everyday problems - including her crumbling relationship with an angry, resentful twin brother with whom she's nearly given up on reconciling. <span></span>
</p>
<p>But her family's return to the town in which she'd grown up set in motion a chain of events that would shatter every illusion she had about a world she thought she knew. Her eyes newly opened to the truth around her, Nora begins a journey to uncover the secrets of her own mysterious past and the reason for her brother's bitter hatred toward her. Alongside her best friend, and a group of unusual guys she met after her return, Nora begins to chip away at the lies shrouding her life. Lies that have been haunting her since childhood.<span></span>
</p>
<p>But in a world where Vampires, Werewolves, and Faeries are real, learning the truth may come at a high cost.&nbsp; <span></span>
</p>
<p><strong>Features</strong></p>
<ul><li>685,000 words (around 100-115k per route, not including the common route)<span></span>
</li><li>25-35 hours of playable content (4-6 hours per route)*<span></span>
</li><li>6 love interests<span></span>
</li><li>Over 40 unique endings<span></span>
</li><li>30+ unique CGs<span></span>
</li><li>30+ unique backgrounds<span></span>
</li><li>30+ characters and sprites<span></span>
</li><li>Developed side characters<span></span>&nbsp;
</li></ul>
<p>*calculated at a reading speed of 300 wpm<span></span>
</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/GJlQdB-1fzU" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzIxMTg0LzE1ODUxMTcucG5n/original/WtwxoB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzIxMTg0LzE1ODUxMjYucG5n/original/j8BXzK.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzIxMTg0LzE1ODUxMjMucG5n/original/u5Jmdl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzIxMTg0LzE1ODUxMjUucG5n/original/M3vgho.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzIxMTg0LzE3NTk3OTkucG5n/original/%2B0iQqw.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzIxMTg0LzE3NTk4MDAucG5n/original/eAgGUk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzIxMTg0LzE3NTk4MDEucG5n/original/Qrjk%2FY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzIxMTg0LzE3NTk4MDIuanBn/original/Ap2rSc.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzIxMTg0LzE3NTk4MDgucG5n/original/6b3O7k.png]]
<p>This is a roleplaying game about changelings i.e. fae creatures (the elves, the faerie, the fair folk) inhabiting human bodies. While in the mortal realm they must control their conflicting nature while fighting for the cause that called them onto Earth.</p>
<h2>Characters</h2>
<p>The players take the role of the changelings. The fair folk, the fae left this world as the civilization developed and banality ruled. Now, recalled by human dreams of a better world, they return as changelings. Infuriated with the world that once rejected them, with the people who killed the magic and replaced it with Excel spreadsheets. The Faerie, wearing a human body, finds a cause to fight for. They come to help the weak and the excluded.
</p>
<h2>World</h2>
<p>Urban fantasy with glimmers of hope and magic in the exhausted, dirty world. The world burns. Climate catastrophe, galloping inequality, all-powerful corporations, and politicians fighting them with hatred. Billionaires, more and more resembling Bond villains. In the third decade of the 21st century, things seem to be worse than ever before. But there is a glimmer of hope.
</p>
<h2>Rules</h2>
<p>"Changelings" are a hack of "Wights" that uses the mechanics, structure, and world of the original to give players new possibilities. The rules are based on the game "Lasers &amp; Feelings" - they are short, simple, oriented towards narration, and joint story-making. The whole thing was created with short, action-packed sessions in mind, played without prior preparation.
</p>
<p>No knowledge of the original is required.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNzA5NS84MzE2Njc2LmpwZw==/original/2RqlHZ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNzA5NS84MzE2Njc1LmpwZw==/original/%2BbltSG.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNzA5NS84MzE2Njc3LmpwZw==/original/jrbRMO.jpg]]
<p>Changes is a puzzle game where you push cells to reshape the world and discover wonderful transformations. All the puzzles emerge from three simple rules which come together to tell stories; some tragic, others epic, and a few are pretty cute.<br></p>
<ul><li> Solve over 100 thoughtfully designed levels which teach you about the system. 
</li><li> Explore 8 worlds, each showcasing unique aspects of the system.
</li><li> No gated areas or hidden levels. Everything is unlocked for you to explore. 
</li><li>Dynamic music that responds to your actions.
</li></ul>
<p>Even failure can produce beautiful results.<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/zirKxAPoQx8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA5NTAxOC82NDE1NjQxLnBuZw==/original/9ipXom.png]]
<h3><a href="http://store.steampowered.com/app/604010/Chimpology/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Chimpology is now on Steam!</a></h3>
<p>
	Have you ever wondered why the internet was so slow back in the 90's?
	<br>
	Have you ever wondered what it's like to be a corporate chimpanzee?
</p>
<p>
	Well, now you can find out!
</p>
<p>
	Experience sitting at a computer, typing out the internet bit by bit, loading pictures for impatient clients, feeling pressure of time and earning lots of bananas for your hard work!
	<br>
</p>
<p>
	Chimpology is a 100% historically accurate* 90's corpo-chimp simulator!
</p>
<p style="color:#888888">
* - Chimpology may not present events that were 100% historically acurate
</p>
<p>
	<strong>The free demo was made during a gamejam, and is not supported or managed anymore.</strong><br>
</p>
<h4>The builds currently available are in beta, expect bugs, stuff that doesn't work and experimental features!</h4>

<iframe width="720" height="450" src="https://www.youtube.com/embed/Ui592TO3vQg" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzg3NTEvNDg3MTU5LnBuZw==/original/7%2FcQaQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzg3NTEvNDg3MTUxLnBuZw==/original/UXWqts.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzg3NTEvNDg3MTUyLnBuZw==/original/Juk8t5.png]]
<p><strong>Death isn’t the end, it’s just the beginning for this family.</strong></p>
<p>Blood is thicker than water, and as a member of a Chinese family, you are constantly reminded of your duty. Increase the face and fortunes of your family, all the while experiencing strange occurrences and life events that shape who you are.&nbsp;&nbsp;
</p>
<p>Chinese Ghost Stories We Tell Ourselves is a communal horror tabletop roleplaying game based on Chinese ghost stories and cultural interpretations. Find out what ghost story you will weave with your family. Can you avoid inviting ghosts into this world and can you confront your own inner demons?&nbsp;&nbsp;</p>
<p>This game is GM-less, uses a d100 system and is for 3-4 players. Please use safety tools for this horror game- they can be accessed here&nbsp;<a href="http://bit.ly/ttrpgsafetytoolkit" target="_blank" rel="nofollow noopener" referrerpolicy="origin">TTRPG Safety Toolkit</a>.&nbsp;</p>
<p>This is the Quickstart version of this game for #BIPOCVampJam! You do not have to be Chinese to play this game, but the design intentions behind this game was for the Chinese diaspora, also welcoming BIPOC, that found familiarity in the themes and experiences.&nbsp;&nbsp;Stay tuned for a fully released game!</p>

[img width=500 [https://img.itch.zone/aW1nLzY5NDcyOTMucG5n/original/vExNj5.png]]
<p><strong>Choice Chamber</strong> is a&nbsp;crowd-sourced action game designed for livestreaming where viewers play along via the chat to change the game in realtime as you play. Players constantly give feedback that changes how the game evolves, from power ups and enemies to obstacles and rule changes. The game world is procedurally generated based on viewer input, wildly changing the difficulty and surprises each time you play.</p>
<p><strong>NOTE:</strong> This game is meant to be broadcast on Twitch. You only need 1 viewer to get the proper experience, but the more the merrier. You can also play in Offline Mode, where you don't need to broadcast at all.</p>
<ul><li>Easily connect to your Twitch channel to get viewers playing along!</li><li>Works with any number of players, from 1 to infinity (there's also an offline mode)</li><li>2-Player local co-op (both online and offline modes)</li><li>Unlockable weapons, powers, characters, secrets! o.o</li><li>Full Controller support (co-op included)</li><li>Music by Jukio Kallio, musician for other indie games like Nuclear Throne, Luftrausers, and&nbsp;<a href="http://kozilek.bandcamp.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">many other things</a>!</li><li>The only game to be&nbsp;<a href="http://www.engadget.com/2014/04/16/twitch-funds-chat-driven-game-choice-chamber/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">funded</a>&nbsp;by Twitch!</li><li>Over a million players already!*</li></ul>
<p>* player count is a rough estimate of both streamers and chatters<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/pbjHcqxEu_U" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzAwMjgvNTQxMzk2LnBuZw==/original/dHnMb3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzAwMjgvNTQxMzk3LnBuZw==/original/mnud9L.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzAwMjgvNTQxMzk4LnBuZw==/original/YSCkNI.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzAwMjgvNTQxMzk1LnBuZw==/original/w0bxPG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzAwMjgvNTQxMzk5LnBuZw==/original/xdjPWj.png]]
<h4><em>Chronicles of 2 Hereoes: Amaterasu’s Wrath is a 2d action platforming game with metroidvania elements. Dart through levels facing Amaterasu’s minions and switch character in real time to unleash their unique skills and save Japan from the goddess’ madness.</em></h4>
<h4></h4>
<p class="text-center"><a href="https://discord.com/invite/KYGSDfUgSG" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzcwNzYxMDAucG5n/original/Yh5HMx.png" loading="lazy"></a>&nbsp;<a href="https://twitter.com/InfinityExperi4" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzcwNzYxMTUucG5n/original/Cm5yIp.png" loading="lazy"></a>&nbsp;<a href="https://store.steampowered.com/app/1747560/CHRONICLES_OF_2_HEROES_AMATERASUS_WRATH/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzcxMDY1NzgucG5n/original/3JC7yL.png" alt="Steam" title="Steam" loading="lazy"><br><br></a><br><a href="https://www.kickstarter.com/projects/projectjapan/chronicles-of-two-heroes-amaterasus-wrath?ref=clipboard-prelaunch" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzcxNjg3MjMucG5n/original/VEX60g.png" alt="Kickstarter pre-launch" title="Kickstarter pre-launch" loading="lazy"></a><br></p>
<h4><br>You can download for FREE the demo of our game. Please consider to help us by answering the 9-question survey linked below. Thank you for your support and we hope you enjoy it!<br><br><br><a href="https://docs.google.com/forms/d/e/1FAIpQLSeLLJITypry3sAVmrc4PLrHUv_whmWNP9Aaz12tz_APThkVKw/viewform" target="_blank" rel="nofollow noopener" referrerpolicy="origin">SURVEY</a><br><br><br>GAMEPLAY:<br>
</h4>
<p>Switch characters in real time to face the challenges of Amaterasu, use the unique skills of each sibling to find new ways to defeat your enemies and save Japan!
</p>
<p>Every character relies onto a great variety of unique skills unlockable throughout the game. The key to victory lies in being able to combine the right move at your disposal at the right time. Will you brave Amaterasu’s wrath?</p>
<h3>LORE:
  </h3>
<p>Ancient legends tell about the great Amaterasu’s Wrath and of the cruel reign of her disciple, Empress Imiko, who through the iron fist of her mighty imperial army dragged Ancient Japan into an endless vortex of wars, famine, and epidemics.
  </p>
<p>The hope to bring back peace and order to the reign are entrusted to two siblings, Kensei a samurai and Ayame a kunoichi. Thanks to the teachings of their master and the support of the people that they will meet on their journey, decide to walk straight into the imperial capitol to steal the empresses’ source of power: the three sacred treasures. 
  </p>
<p>This endearing plan will sever once and for all the link between Imiko and the mad goddess Amaterasu and restore peace to the reign.</p>
<h3>SETTING:
  </h3>
<p>COTH is set between 400 and 600 AD into the mystical land of Japan! Venture through its beautiful landscapes and prepare for a journey that will lead you to the imperial capitol of Osaka… and back!
  </p>
<h3>ENEMIES:
  </h3>
<p>Beside Imiko’s mighty imperial army, Amaterasu will unleash hordes of otherworldly creatures to try to stop you: be ready to face multitudes of Yokais and bosses highly inspired by Japanese mytholgy the likings of Gashadokuro and Tengu!</p>
<h4><br><br>Share with us the final stats of the run on the comments or in our discord channel!</h4>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIxMjcwOC83Mzc3Mzc2LnBuZw==/original/MClp%2BS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxMjcwOC83MDc1NTYwLnBuZw==/original/TWC7o%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxMjcwOC83MDc1NjgyLnBuZw==/original/atjGjo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxMjcwOC83MDc1NTcwLnBuZw==/original/uDUzIU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxMjcwOC83MDc1NTU4LnBuZw==/original/aPQd3h.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxMjcwOC83MDc1NTYxLnBuZw==/original/xKo47p.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxMjcwOC83MTE2ODYxLnBuZw==/original/4b13tb.png]]
<p>A platform-adventure game about time travelling, puzzle solving and a friendship between an Old Inventor and a Snail.</p>
<h2>Key Features</h2>
<p>• Time changes everything - Solve puzzle by travelling back and forth in - or freezing - time<br>• Characters with heart and soul - Switch between two lovable characters with different abilities and combine their strengths<br>• A mind-bending story line. As the story unfolds, learn how the main character has already played a central role in shaping the future of his world<br>• A magical, colorful, vibrant and living universe that mixes elements from different times and cultures<br>• Amazingly animated characters, machines and creatures, inspired by Hayao Miyazaki(Howls Moving Castle, My Neighbor Totoro)</p>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/KgjaRo1o1No" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTgwNjQzLzg0NDE1Ni5qcGc=/original/8k9V79.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTgwNjQzLzg0NDE1Ny5qcGc=/original/RWwXWk.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTgwNjQzLzg0NDE1OC5qcGc=/original/0%2FVpAv.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTgwNjQzLzg0NDE1OS5qcGc=/original/ZUmPpu.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTgwNjQzLzg0NDE2MC5qcGc=/original/%2BBHszg.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTgwNjQzLzg0NDE2MS5qcGc=/original/XMc6ep.jpg]]
<p style="font-size:24px">
	<span style="font-size:36px">Circa Infinity is a brain-melting circular platformer by Kenny Sun, with a pulse-pounding soundtrack by Jack + Jim Fay.</span>
</p>
<p style="font-size:18px">
	<strong>If you purchase this game on itch.io you will also receive a Steam Key.</strong>
</p>
<p style="font-size:18px">
	Play the <a href="http://kennysun.itch.io/circa-infinity-demo">free demo</a> to try it out!
</p>
<p>The game will be available on September 9th, 2015. If you have any questions, you can contact me through 
	<a href="mailto:mailto:kenny@kennysun.com" rel="nofollow noopener" referrerpolicy="origin">E-mail</a> or <a href="https://twitter.com/KennyYSun" rel="nofollow noopener" referrerpolicy="origin">Twitter</a>.
</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/c9WL2qXl1tU" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzI5OTYvMTQzMjUzLmdpZg==/original/ZiWKGp.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzI5OTYvMTQzMjU2LmdpZg==/original/m2ynYF.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzI5OTYvMTQzMjU1LmdpZg==/original/qkXyPZ.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzI5OTYvMTQzMjU0LmdpZg==/original/VEevQA.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzI5OTYvMTQzMjU3LmdpZg==/original/7VbEu3.gif]]
<h2>CLAM MAN 2: OPEN MIC is OUT NOW on STEAM AND ITCH!</h2>
<h2>The free prologue for the sequel is out already!&nbsp;&nbsp;<iframe frameborder="0" src="https://itch.io/embed/592061?linkback=true&amp;border_width=3&amp;bg_color=51c4be&amp;fg_color=17193e&amp;link_color=0b8627" width="556" height="171"><a href="https://marafrass.itch.io/clam-man-2-open-mic">Clam Man 2: Open Mic by Marafrass</a></iframe></h2><iframe src="https://store.steampowered.com/widget/1278360/" frameborder="0" width="646" height="190"></iframe><p>If you enjoy it, leave a review! It's a huge help for small developers like myself, especially with Clam being a personal project with basically 0$ behind it!</p><p><br></p>
<h2><iframe width="518" height="291" src="https://www.youtube.com/embed/JuwPwNjyVCo" frameborder="0" allowfullscreen="" style="color: inherit; font-size: inherit"></iframe><span></span></h2>
<h1><strong>Clam Man&nbsp;</strong></h1>
<p>is the story of the Clam Man. Intriguing, isn't it? Yes, it's true - he is a clam and yet also a man. This is not a topic of debate, it is fact. We've confirmed it while working on this game. Using science.<br><br><em>"He certainly is a clam man." - Playtester</em><br><br>Thank You, Playtester - we couldn't agree more.</p>
<p><img src="https://img.itch.zone/aW1nLzIxMTc5NzMuZ2lm/original/1ygok7.gif" loading="lazy"><br></p>
<p><br>But to be more specific: This is the story of a man, recently promoted to junior sales representative, enjoying the comforts and leisure of lower-mid-level office work. However, things suddenly take a turn for the worse, and the Clam Man is cast into an adventure full of danger, suspicion, and mystery. Join him, as he unravels the conspiracy behind the tragic event that befalls him, and fight to restore CLAMMY JUSTICE to the world of Snacky Bay.<br><br><img src="https://steamcdn-a.akamaihd.net/steam/apps/1000640/extras/HeroClam.jpg?t=1551811288" loading="lazy"><br></p>
<h2>FEATURES</h2>
<ul><li>A story full of twists and turns and a huge amount of strange jokes!</li><li>More than 20 unique and strange characters to interact with! (I really like the jellyfish personally)</li><li>A spectacular original soundtrack!</li><li>Lots of plants</li><li>Umm</li><li>Phone calls!</li><li>Puzzles!&nbsp;</li><li>Knots!</li><li>The most evil bad guy in the history of evil bad guys</li><li>Anime fight scene!</li><li>Our boys in blue!</li><li>And of course, a duck.</li></ul>
<p><img src="https://img.itch.zone/aW1nLzE5NzY3MDcucG5n/original/WJvsvZ.png" loading="lazy"><br></p>
<h2>WHOAH WHOAH WHOAH ENOUGH WITH THE JOKES What is all this about even</h2>
<p>Clam Man is a point'n'click adventure game, with an emphasis on story rather than puzzles. We wanted to create a game focused on the parts we loved about old school adventure games - the story and the jokes. It's a simple, entertaining game where you explore the world and interact with it's inhabitants. Oh, and we did throw a few puzzles in here and there, too.<br><br><img src="https://img.itch.zone/aW1nLzE5NzY3MTAucG5n/original/YIC8rC.png" loading="lazy"><br></p>
<p><br>IS THE CLAM MAN&nbsp;FOR ME?<br><br>I don't know you, but I'm sure you're a pretty cool person. I'll just ask a couple questions to figure that out:</p>
<ul><li>Do you enjoy story-driven games?&nbsp;</li><li>Do you enjoy absurd and strange comedy?&nbsp;</li><li>Do you want to relax and play a game where the primary objective is to make you laugh at said strange comedy?</li><li>Have you got a thing for ridiculous underwater settings and weird, nonsensical stories?</li></ul>
<p>well yeah you know in that case it's definitely for you<br><br><img src="https://steamcdn-a.akamaihd.net/steam/apps/1000640/extras/Ill2.jpg?t=1551811288" loading="lazy"><br><br>Much love,<br>//Team Clam</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/JuwPwNjyVCo" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzk4ODc2LzIxMTg2OTQuZ2lm/original/GchOK7.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzk4ODc2LzE5NzY3MDIuanBn/original/ab1tTo.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzk4ODc2LzIxMTgwMjcuZ2lm/original/5qnaHx.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzk4ODc2LzIwNTc1MjkuZ2lm/original/YaGirZ.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzk4ODc2LzIwNTc1MzEuZ2lm/original/FtHCyB.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzk4ODc2LzIwNTc1MzUuanBn/original/YpU9Qj.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzk4ODc2LzIxMTg3MDMuZ2lm/original/ikbPZ7.gif]]
<p><strong>INTRODUCING CLASH FORCE!</strong></p>
<p>A retro, 8-bit style run-and-gun inspired by Saturday morning cartoons of the 80s!<span></span></p>
<p><strong>STOP CRACKMAN</strong></p>
<p>The Evil Crackman and his minions are causing mayhem, and only Clash Force is up to the task of stopping his fiendish plans! Guide Voom, Scorpido, or Echid through forest bases, hydrofied deserts, underground mines, and eventually to Crackman's Flying Fortress where the final battle will unfold!&nbsp;</p>
<p><img src="https://img.itch.zone/aW1nLzg3OTc1MC5naWY=/original/rw5%2F65.gif" loading="lazy"><br></p>
<p><strong>FEATURES</strong></p>
<ul><li><span style="color: inherit">Over 20 stages of frantic retro action&nbsp;</span></li><li><span style="color: inherit">Multiple weapon upgrades to make wasting enemies a snap!&nbsp;</span></li><li><span style="color: inherit">Normal, Hard, and Expert difficulties! Perfect for the novice OR the 1980s game masters.&nbsp;</span></li><li><span style="color: inherit">Auto-save feature lets you pick up where you left off!</span></li><li>Steam key now included with purchase on itch!<ul><li>If you already own the game on Itch, just <a href="https://itch.io/docs/buying/already-bought">go back to your purchase page</a> to claim it!</li></ul></li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/9C-PJTfeBZY" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTg4MTAzLzg4MzA0Ni5wbmc=/original/8IJUzl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg4MTAzLzg4MzA0OC5wbmc=/original/RScb3o.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg4MTAzLzg3OTc2MC5wbmc=/original/x8OAfn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg4MTAzLzg4MzA0OS5wbmc=/original/YbICBk.png]]
<p>My entry for the Bolt Jam #2. I didn't write a single line of C# code for this.</p>
<h3>MISSION</h3>
<p>You are <strong><em>Window Cleaner-Man!</em></strong>&nbsp;Try to help by cleaning windows with your ultra cleaning skills! You might even find gold while doing so.</p>
<h3>Controls</h3>
<p>W - Move up<br>S - Move down<br>A&nbsp; - Swing left<br>D - Swing right<br>Left mouse button - Draw<br>Space - Freeze time for 1 Water/sec<br>Tab - Switch view&nbsp;</p>
<h3>Assets used</h3>
<ul><li>Bolt (obviously)</li><li>Amplify Shader Editor&nbsp; (for Skybox &amp; Water Bar)</li><li>POLYGON City&nbsp;Pack (People, Skyscraper)</li><li>Epic Toon FX (Firework)</li></ul>
<h3>Everything else was done by me during the Jam&nbsp;including:</h3>
<ul><li>Music (incl. the lyrics)</li><li>Custom Shaders (ex. for Water)</li><li>Animations &amp; Particle Systems (ex. People, Bubbles, etc.)</li><li>Bolt graphs (even for rope physics and procedural character animations)</li><li>AMAZING *irony off* 3D models (Sponge, Rope, Wood stick, etc.)</li><li>Level design</li><li>Dirt texture</li><li>And other stuff</li></ul>
<h3>Bolt usage</h3>
<div class=""><iframe style="width: 500px; height: 281px" src="https://www.youtube.com/embed/1yzo7YYRrtU" frameborder="0" allowfullscreen=""></iframe></div>

<iframe width="720" height="450" src="https://www.youtube.com/embed/1yzo7YYRrtU" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzEyMDU0LzE1NDIyOTAuanBn/original/y%2FTcvb.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzEyMDU0LzE1NDIyOTEuanBn/original/RwbVz%2B.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzEyMDU0LzE1NDIyOTIuanBn/original/%2FjPjOz.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzEyMDU0LzE1NDIyOTMuanBn/original/RDLrXv.jpg]]
<p>Climate Control is a series of three panel meditations. It ended up significantly grimmer in places than I thought it would, but that happens sometimes. It ended up significantly more joyful in places as well, and that I’m exceptionally happy with. It’s a great deal harder for me to come up with joy and hope than it is to bring about the grimdark, especially in trying times.</p>
<p>Painting my way through this, doing the layout, and making sure the pieces were in order was accompanied by a lot of tea and coffee. Sometimes during the layout phase, what I thought I’d painted turned out to have been something else entirely – a surprise rendition of the other, a moment of unexpected sadness – and I’d find myself pleasantly put out having to build new words.</p>
<p>Throughout the process, I was bolstered up by some pretty awesome folks, as well as some pretty darn nifty cats. Somehow, no paintings were lost to the cats, despite their best efforts.</p>

[img width=500 [https://img.itch.zone/aW1nLzUzMzM3NzEuanBn/original/aIIBso.jpg]]
<p><a href="https://www.technicalgrimoire.com/clink" rel="nofollow noopener" referrerpolicy="origin">Available in Print y en Espanol.</a><br></p>
<p>Clink is a tabletop RPG about drifters, the creeds that bring them  together, and the history that drives them apart. This game uses coins  to tell a story inspired by spaghetti westerns, ronin tales, and shows  like Firefly or Supernatural.
</p>
<p><em>72 Pages, Color Softcover, 5.5"x8.5" Book.</em><br></p>
<h2>Your past is a mystery, but your Creed drives you forward.<a href="https://www.technicalgrimoire.com/clink#your-past-is-a-mystery-but-your-creed-drives-you-forward" class="" rel="nofollow noopener" referrerpolicy="origin"> <span class=""></span> </a> </h2>
<p>Characters  begin as rough sketches of the shifty sort you’d see in an old Western  or Noir film. They all start as blank slates, their histories unknown.  Tell stories about their past and <strong>create your character as you play</strong>.
</p>
<p>Clink tells a non-linear story, crisscrossing between your characters’ flashbacks and the risky business of the day.
</p>
<blockquote>“We had a hilarious and memorable time. We’ll be playing again soon! 5 Stars! I can’t say it enough. 5 Stars!” - <a href="https://www.drivethrurpg.com/product_reviews.php?products_id=236659&amp;customers_id=1513007" rel="nofollow noopener" referrerpolicy="origin">Nate L.</a>
</blockquote>
<blockquote>“If  you want a simple game that you can play for a few hours, are new to  tabletops, or perhaps trying to get a friend to try - I highly recommend  this.” - <a href="https://www.drivethrurpg.com/product_reviews.php?products_id=236659&amp;customers_id=746255" rel="nofollow noopener" referrerpolicy="origin">Conrad A.</a>
</blockquote>
<h2>Make your mark on frontiers both familiar and bizarre.<a href="https://www.technicalgrimoire.com/clink#make-your-mark-on-frontiers-both-familiar-and-bizarre" class="" rel="nofollow noopener" referrerpolicy="origin"><span class=""></span> <span class=""></span> </a> </h2>
<p>Clink  includes three starting scenarios to kick off your adventures. Each  scenario contains a quick background, a few example creeds, and 5  characters so your group can jump right in.
</p>
<ul><li><strong>RUSTBARREL</strong>: A thriving frontier town caught between a corrupt silver miners and murderous outlaws.
</li><li><strong>TIANGONG</strong>: Once the pride of the stars, the space station has fallen to neglect and crime.
</li><li><strong>DARKGORGE</strong>: Ever since the double eclipse in December of 1880, the monsters haven’t stopped coming.
</li></ul>
<p>It’s  a flexible system that can support nearly any setting, so long as  there’s room for folks who aim to misbehave (six-shooters and  door-kickin’s encouraged too).
</p>
<h2>Spend coins to shape your past, or flip them to determine your future.<a href="https://www.technicalgrimoire.com/clink#spend-coins-to-shape-your-past-or-flip-them-to-determine-your-future" class="" rel="nofollow noopener" referrerpolicy="origin"> <span class=""></span> </a> </h2>
<p>By  spending hard-earned coins, the player is able to reveal more and more  of their Drifter’s personality through flashbacks and stories. But  sometimes those flashbacks will bring up painful memories, burdening  your Character with Scars.
</p>
<p>When push comes to shove in Clink, it’s  time to start flipping coins. A “heads” gets you what you’re going for,  but every “tails” sends you deeper and deeper into trouble.
<em></em>
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTEyNDE0MS82NTA0MzYwLmpwZw==/original/fSQWTB.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEyNDE0MS82NTA0Mzk1LnBuZw==/original/ir1Hw1.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEyNDE0MS82NTA0Mzk2LnBuZw==/original/4PFi%2Bi.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEyNDE0MS82NTA0Mzk3LnBuZw==/original/LVQHmB.png]]
<div class=""><iframe width="920" height="518" src="https://www.youtube.com/embed/I_Ehz0GVFfM" frameborder="0" allowfullscreen=""></iframe><br></div>
<p><strong><br></strong></p><h1>If the game does not start on mac, go <a href="https://noio.itch.io/cloud-gardens/devlog/355757/update-111-game-says-its-damaged-on-mac">here</a>.</h1><p><strong><br></strong></p><p><strong>A chill game abou</strong><strong></strong><strong>t using plants to overgrow abandoned wasteland dioramas</strong></p>
<p>Harness the power of nature to overgrow lo-fi scenes of urban decay and manufactured landscapes. Create small plant-covered dioramas of brutalism and beauty by planting seeds, repurposing hundreds of discarded objects and creating unique structures for nature to reclaim.<br></p>
<p>Dive into a relaxing sandbox mode with no goals, or take on a multi-chapter “campaign” where the task is to strike a balance between the natural and the manufactured. Adding objects will encourage lush vegetation to grow, but each object must be covered in foliage in order to proceed.<br></p>
<p>Cloud Gardens hovers somewhere in between a sandbox toy and a game with challenges. Partly a gardening simulator, partly a dystopian landscape builder, and partly a puzzle game that is both satisfying and without frustration. It is a relaxing experience that takes you from one scene to the next while encouraging creativity and coming up with your own solutions.</p>
<p>This is a chill game where the primary goal is to delight in your own creativity. Players can download looping videos of their completed dioramas and share them with other gardeners from across the internet, and our Discord server has a lively community of gardeners.<br></p>
<ul><li>Solve organic puzzles in a serene 3D space.</li><li>Create to your heart’s content in creative mode.</li><li>Unlock an enormous catalogue of objects and plantlife.</li><li>Share your creations.</li><li>Featuring generative soundscapes by <strong>Amos Roddy</strong>, composer of Kingdom.</li></ul>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/I_Ehz0GVFfM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzgxMjM2LzQzMzcxNjEuanBn/original/b40Y7t.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzgxMjM2LzQzMzcxNjIuanBn/original/Ou16vT.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzgxMjM2LzQzMzcxNjUuanBn/original/P6b5F1.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzgxMjM2LzQzMzcxNjQuanBn/original/J7WHHN.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzgxMjM2LzQzMzcxNjMuanBn/original/6ltM9k.jpg]]
<p>An easy-to-learn puzzle game where you can't stop moving. Collect all the orbs and get to the exit without crashing into anything. Wrap around the map to get to hard-to-reach locations and discover new challenges in each zone.<br></p>
<p>60 levels spread over 6 different zones.</p>
<p><a href="http://tricksygoblin.com/games/cloud-serpent/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Play Demo in Browser</a><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjc2MzI1LzEzMzk0MDYuZ2lm/original/HFtOnM.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjc2MzI1LzEzMzk0MDguanBn/original/e07S9W.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjc2MzI1LzEzMzk0MDkuanBn/original/V3nhnR.jpg]]
<h1>☆ remember your first solo shopping trip?</h1>
<p><strong><br></strong></p>
<p><strong>co-open</strong> is a game about a kid's first time buying groceries on their own. Looks like it's time to explore and have some fun! <br></p>
<p><br></p>
<h3>♲ a classic loaf of rye bread, some birthday cards, and kompot</h3>
<p>The products available in the local cooperatively run store  are community-selected, trying to suit everybody's needs. You might not  find everything you're expecting, but maybe there will be something  that surprises you!           
Check the information on product price tags to make  sure you only pick fresh local produce, call your grandmother for a  suggestion, or just go with whatever catches your eye! Just try not to  feed the store cats off the shelves. Please. They are fed regularly. <br></p>
<p><br></p>
<h3>☃ anything else?</h3>
<p>You can get your ice cream and veggies in a few minutes to  rush back home sooner — or stray away from the shelves and find yourself  a part of a drawing class in the rooftop park, or an underground  snowskating hangout! Don't be scared to check things out. <br></p>
<p><br></p>
<h3>❀ making memories</h3>
<p>Looks like your neighbor friend is also shopping today! But  could you meet anybody else? What if it's a very (very) big crow, or a  mysterious vent dweller? Maybe you will even get to keep some meaningful  mementos from your adventures! <br></p>
<p><br></p>
<h3>☏ so, how was your day?</h3>
<p>In the end, grandma will always come to pick you up. What  will she say about your shopping trip — or, more importantly, about your  product picks? <br><br></p>
<p><a href="https://2021.amaze-berlin.de/honorable-mentions/page/2/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzYyNzcxODYucG5n/original/RWzm1H.png" alt="A Maze. 2021 Honorable Mention" title="A Maze. 2021 Honorable Mention" loading="lazy"></a>&nbsp;&nbsp;&nbsp;<a href="http://mqgf.com.au/2021/awards/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzcxNDIwMzgucG5n/original/2y0ht%2F.png" alt="MQGF Awards 2021 Shortlist" title="MQGF Awards 2021 Shortlist" loading="lazy"></a>&nbsp;&nbsp;&nbsp;<a href="https://www.youtube.com/watch?v=Ozqhc7YXd3M&amp;t=900s" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzYzMDE5MjQucG5n/original/jT3OY9.png" alt="Wholesome Direct 2021" title="Wholesome Direct 2021" loading="lazy"></a></p>
<p><br></p>
<h1>♛ words</h1>
<ul><li>"It’s quite simply your regular supermarket, inhabited by all the locals of the town you live in. They all feel like real people (birds?) particularly because the game is unabashedly queer." – <a href="https://www.rockpapershotgun.com/the-best-games-you-missed-in-2021-co-open" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Oisin Kuhnke, Rock Paper Shotgun</a></li><li>"“co-open” in this way presents a utopia in which empathy, tolerance and collective cooperation are central. Thus, it is not only a beautiful game [...], but also a political one that promotes a better way of living together" – <a href="https://game-curator.com/indie/co-open/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Sebastian Standke, game-curator.com</a></li><li>"The world is big and cold but you are small and soft. Also a bird" – <a href="https://itch.io/blog/280304/the-itchio-summertime-selects-bundle-is-now-live" target="_blank">Spencer Hayes, itch.io</a></li><li>"Lovely, relaxing and a great deal of fun" – <a href="https://wfgames.net/games/co-open/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Weird Fucking Games</a></li><li>"co-open sees you sent to the grocery store to pick up some stuff all by yourself. Now, whether you should be trusted to do that is up to you" – <a href="https://indiegamesplus.com/2021/07/co-open-takes-you-on-your-first-shopping-trip-alone" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Joel Couture, Indie Games Plus</a></li><li>"There's a good bit of exploration involved if you look around, you might  find some rather strange rooms in this surprisingly big building" – <a href="https://www.gamingonlinux.com/2021/06/co-open-is-a-wholesome-game-about-shopping-by-yourself-for-the-first-time" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Liam Dawe, GamingOnLinux</a></li><li>"It's all a very feel-good, inclusive experience, and those kinds of games are the one that you just want to support" – <a href="http://www.digitallydownloaded.net/2021/06/interesting-games-on-itchio-june-14.html" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Matt S., Digitally Downloaded</a></li></ul>
<p><br></p>
<h1>⚑ features</h1>
<ul><li>First-person immersive simulator gameplay
</li><li>Memorable treasures to collect
</li><li>Phonebook to fill with hidden phone numbers
</li><li>Cats you&nbsp;shouldn't&nbsp;feed,&nbsp;but&nbsp;can
</li><li>A secret ending
</li><li>Casual internal speedrun timer
</li></ul>
<p><br></p>
<h1>☛&nbsp;controls</h1>
<ul><li>Keyboard and mouse</li><li>Xbox 360 and Xbox One controllers support</li><li>Configurable controls</li></ul>
<p><br></p>
<h1>♫&nbsp;soundtrack</h1>
<p><iframe style="border: 0; width: 100%; height: 120px" src="https://bandcamp.com/EmbeddedPlayer/album=2512258906/size=large/bgcol=ffffff/linkcol=333333/tracklist=false/artwork=small/transparent=true/"><a href="https://kyleyerhot.bandcamp.com/album/co-open-original-soundtrack" rel="nofollow noopener" referrerpolicy="origin"><span class=""></span>ginal Soundtrack by Kyle Yerhot</a></iframe></p>
<p><br></p>
<h1>♡ special thanks</h1>
<p>All our friends who wrote in-game phone conversations, helped us test the game and make game trailers &lt;3<br>A MAZE. / Berlin Festival<br> Humble Bundle<br> KO_OP<br> Wholesome Games</p>
<p><br></p>
<h1>⚒ installation instructions</h1>
<p><strong>macOS:</strong> The game is not signed/notarized by Apple, so it will have security issues with macOS 10.15+ (Catalina and newer versions). To avoid these issues please do <strong>one of the following things</strong>: <br></p>
<ul><li><strong>[Preferable]</strong> Install the game through the official itch app: <a href="https://itch.io/app">https://itch.io/app</a></li><li>Manually approve the game's .app file in "Security &amp; Privacy" settings in System Preferences</li></ul>
<p><br></p>
<h1>⚠ safety caution</h1>
<p>The game depicts various queer identities and queer relationships. Please check the current laws of your country – you may have to be <strong>18 or older (18+)</strong> to play this game. Be safe. &lt;3</p>
<p><strong>Note: </strong>Just to make it clear, there's no adult content in the game, it's generally all-ages, except for some very mild occasional swearing.<br></p>
<div title="img-move-1"><img src="https://img.itch.zone/aW1nLzU5ODgyODMucG5n/original/30899W.png" title="img-move-1" loading="lazy"></div>
<div title="img-move-2"><img src="https://img.itch.zone/aW1nLzU5ODgyODMucG5n/original/30899W.png" title="img-move-2" loading="lazy"></div>
<div title="cat"><img src="https://img.itch.zone/aW1nLzU5ODgyODMucG5n/original/30899W.png" title="cat" loading="lazy"></div>

<iframe width="720" height="450" src="https://www.youtube.com/embed/C4LiBa-oddI" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAzNDI2My82MzAwNDAyLnBuZw==/original/UtgLRr.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzNDI2My82MzAwMzc1LnBuZw==/original/3j7lj5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzNDI2My82MzAwNTA0LnBuZw==/original/zuabsg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzNDI2My82MzAwNDkwLnBuZw==/original/Kghnks.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzNDI2My82MTk0ODA4LnBuZw==/original/frUVJG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzNDI2My82MzAwNDIwLnBuZw==/original/Ey9v4h.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzNDI2My82MTk0ODExLnBuZw==/original/%2BiZZ96.png]]

<p><strong style="color:#ffff00">Color Jumper</strong> is an abstract, color-based puzzle platformer which focuses on fast, precise movement to navigate your surroundings. Inspired by hardcore platformers like <strong>Super Meat Boy, Downwell, VVVVVV,</strong> and many others, your goal in <strong style="color:#ffff00">Color Jumper</strong> is to reach the exit.</p>
<p>You control a block with a different color on each side. Colored platforms are only solid when in contact with the connecting color of your block. Each jump rotates your block, creating a world where each jump must be planned carefully, turning levels into a twisting high-speed parkour race to the finish.<br></p>
<p><img src="https://img.itch.zone/aW1nLzEzNzg4MDQuZ2lm/original/WTVUZb.gif" loading="lazy"></p>
<h2>Featuring</h2>
<ul><li>Fully integrated colorblind mode
</li><li>Dedicated speedrun mode
</li><li>Incredibly tight and responsive controls
</li><li>Blisteringly fast gameplay
</li><li>Over 100 levels to conquer
</li><li>Four unique and challenging boss fights
</li><li>Collectibles which unlock additional extreme challenge levels
</li><li>Time and rotation goals for each level, a completionist's dream! (or nightmare?)</li></ul>
<figure><img src="https://img.itch.zone/aW1nLzEzNzg4MDUuZ2lm/original/NuV1Fy.gif" loading="lazy"><br></figure>

<iframe width="720" height="450" src="https://www.youtube.com/embed/B50OqGhAsI8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjgzNDk0LzEzNzg3OTgucG5n/original/%2Fx9XuI.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjgzNDk0LzEzNzg3OTkucG5n/original/DXR%2Fps.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjgzNDk0LzEzNzg4MDAucG5n/original/lg7RV7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjgzNDk0LzEzNzg4MDEucG5n/original/OEMCcB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjgzNDk0LzEzNzg4MDIucG5n/original/1l3JRA.png]]
<p>Combo Postage is an action-packed platform-puzzle game!<br>Join Sue on her summer job processing packages with a high-tech tape gun.</p>
<h5>Risk-Reward Puzzle Action!</h5>
<ul><li>Run, jump, and climb with responsive three-button controls. Tape up boxes by bumping into them, then stomp to clear 'em out!</li><li>Get combos by clearing multiple boxes at a time. Set up big combos by letting stacks pile up- just don't take too long to clear them...</li><li>Two gameplay variants: Go for big combos in <em>Standard</em>, and match numbered cards with combos in <em>Challenge</em>!</li><li>Runs are quick! When a hazard brings your shift to a close, just dust yourself off and jump back in when you're ready.</li><li>Lots to do! Check your stats, set up a customized shift, chat with Sue's coworkers, and more.</li><li>This game is pretty tough, but don't sweat it! You can focus on improving your personal best, go for bragging rights, or just have fun! There's no set ending to Combo Postage, so please play as long as you'd like. (Just not too long, OK?)</li></ul>
<p>Soundtrack avaliable here on <a href="https://kirklindsay.itch.io/combo-postage-original-soundtrack">itch</a> and on <a href="https://kirklindsaymusic.bandcamp.com/album/combo-postage-original-soundtrack" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Bandcamp</a>!<br></p>
<p><strong>Heads up!</strong>      Scores are local to players' machines and are not ranked online. There is no plan to implement this in the future. Sorry!! Please consider recording video of your highest scores and sharing over the internet.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/t6mhVUt-Tz0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjc3MzEwLzIyNTE5MDQucG5n/original/zFiPpG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjc3MzEwLzIyNTE5MDMucG5n/original/CzBX%2FI.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjc3MzEwLzIyNDg4MTAucG5n/original/TbYQVe.png]]
<p>Returning home as the descendant of a long-deposed leader, you explore what has become of your family's old domain. Though the scars of your ancestors' influence remain, the community has turned away from the past toward a hopeful future.<br></p>
<ul><li>Explore your rebuilt homeland&nbsp;above the clouds by climbing almost any surface and effortlessly gliding through the air</li><li>Listen to the stories of the folks who remain here and how they have recovered and restored their society</li><li>Visit the sites of the neglected pilgrimage of a long-forgotten faith</li><li>Discover the secrets of a recovering populace and the strength of a community</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjgxOTI3LzE0MTMzNDQuZ2lm/original/mVUl21.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjgxOTI3LzE0MTMzMzMucG5n/original/74v2Rx.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjgxOTI3LzE0MTMzMzQucG5n/original/l95zZH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjgxOTI3LzE0MTMzNTUucG5n/original/tG%2Fjon.png]]
<p>Compromise//Empire is a GMless roleplaying game for 2-3 players about forming temporary alliances and resisting empire.</p>
<p>Each player takes the role of a faction forced into an unlikely alliance. You must represent your agenda&nbsp;while making compromises to&nbsp;fight against the forces of empire.</p>
<p><strong>Premise</strong></p>
<p>The forces of the Empire, the forces of totalitarianism and exploitation, are invading. They have secured a foothold, and want complete control. Their soldiers trample the land, their spies and diplomats are in your places of power, time is limited.</p>
<p>You represent a faction. One of the factions who are working to resist the Empire. As a representative you must extend a hand and form whatever alliances you can with the other factions at play. Resisting the Empire will cost you, and your faction. Compromises must be made.</p>
<p>What cost will you pay to resist the Empire?</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjk1NDg0LzM5MTAxNTIucG5n/original/Tnsd1X.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjk1NDg0LzM5MTAxNTEucG5n/original/0V%2FTkg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjk1NDg0LzM5MTAxNTAucG5n/original/kCtYNd.png]]
<h1 class="text-center"><strong>Concentric</strong> is a minimalist action game about gracefully moving in circles.</h1>
<h2 class="text-center">Navigate along a set of concentric rings and bring energy back to your core.&nbsp;</h2>
<h2 class="text-center">Retrieve energy. Evade traps. Play fast and take risks for a better score. Carve a perfect path through the level and rise the ranks of the global leaderboards.</h2>
<div class=""><iframe style="width: 923px; height: 518px" src="https://www.youtube.com/embed/MYvgBxWGpqs?&amp;autoplay=0&amp;loop=1&amp;rel=0&amp;showinfo=0&amp;fs=0&amp;controls=0&amp;color=white&amp;iv_load_policy=3&amp;playlist=MYvgBxWGpqs&amp;modestbranding=1" frameborder="0" allowfullscreen="0">&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;span id=&quot;selection-marker-1&quot; class=&quot;redactor-selection-marker&quot;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/span&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;</iframe></div>
<p><strong><img src="https://img.itch.zone/aW1nLzk5NDk5Mi5wbmc=/original/5cMlcY.png" loading="lazy"><br></strong></p>
<figure><strong><img src="https://img.itch.zone/aW1nLzk5NDI5Ni5wbmc=/original/ihO6g3.png" loading="lazy"></strong></figure>
<p><img src="https://img.itch.zone/aW1nLzk5NDk5My5wbmc=/original/Uy1HYE.png" loading="lazy"><br></p>
<h2 class="text-center"></h2>
<h2 class="text-center">•••••</h2>
<h3 class="text-center">• Time-attack style gameplay •</h3>
<h3 class="text-center">• 26 challenging levels •</h3>
<h3 class="text-center">• Gamepad and Keyboard controls supported •</h3>
<h3 class="text-center">• Online Leaderboards •</h3>
<h2 class="text-center">•••••</h2>
<h3 class="text-center"><img src="https://img.itch.zone/aW1nLzk5NDI4Ni5wbmc=/original/InKhar.png" loading="lazy"></h3>
<h2 class="text-center"></h2>
<h2 class="text-center">•••••</h2>
<h4 class="text-center">A game by <a href="http://twitter.com/zerofiftyone_" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Ben Wilson</a></h4>
<h4 class="text-center">Made during&nbsp;<a href="https://itch.io/jam/wizard-jam-6" target="_blank">Wizard Jam 6</a></h4>
<h4 class="text-center">Leaderboard hosting by&nbsp;<a href="http://www.dreamlo.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Dreamlo</a>.</h4>
<h1 class="text-center"><strong><a target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzk5NDMyOS5wbmc=/original/Or0Lgh.png" style="max-width: 100%" loading="lazy"></a></strong></h1>

<iframe width="720" height="450" src="https://www.youtube.com/embed/MYvgBxWGpqs?&autoplay=0&loop=1&rel=0&showinfo=0&fs=0&controls=0&color=white&iv_load_policy=3&playlist=MYvgBxWGpqs&modestbranding=1" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjEwNzY4Lzk5NDc5Mi5wbmc=/original/goXKQt.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjEwNzY4Lzk5NDk5MS5wbmc=/original/tjM6gO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjEwNzY4Lzk5NDc5My5wbmc=/original/RZ7z0K.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjEwNzY4Lzk5NDk5MC5wbmc=/original/ip7cFl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjEwNzY4Lzk5NDc5NC5wbmc=/original/LRt7AY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjEwNzY4Lzk5NDk5NC5wbmc=/original/OLVvf9.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjEwNzY4Lzk5NDk5NS5wbmc=/original/dqVeuh.png]]
<p>Containment is a small, minimalist strategy/simulation game where you try to maintain the growth of bacteria. The core gameplay is easy to pick up but very challenging to master. The game can be completed in one sitting, but has leaderboards and challenging goals to accomplish that might take longer!<br></p>
<p><img src="https://img.itch.zone/aW1nLzE1OTgwOTkucG5n/original/UjT%2Bo9.png" loading="lazy"><br></p>
<p><strong>Core Gameplay</strong><br>Containment is turn-based; the bacteria proliferate, you fight back, and the cycle continues. There are a number of rules that give depth to the strategy involved in achieving three stars on each level:<br></p>
<ul><li>You have a limited number of doses</li><li>Intentionally ending your turn early and letting the bacteria grow lets you research stronger antibiotics</li><li>&nbsp;All bacteria lose one health per turn</li><li>Any bacteria without neighbors die the next turn</li><li>&nbsp;Every isolated bacteria gains you bonus points</li><li>Each extra dose at the end of the game earns you bonus points</li></ul>
<p><strong><img src="https://img.itch.zone/aW1nLzE1OTgxMDEucG5n/original/82cBzx.png" loading="lazy"><br></strong></p>
<p><strong>Aesthetic</strong><br></p>
<p>The game features a mix of cute and sleek design with a visually pleasing color palette and satisfying interactions in every corner. The music is soothing and relaxing to listen to while you battle the unending bacterial proliferation.</p>
<p><strong>Content</strong><br>The game contains the following amount of content:<br></p>
<ul><li>Comprehensive and interactive tutorial</li><li>9 brain-teasing and challenging levels</li><li>&nbsp;A creative sandbox mode (unlocked at the end of the game)</li></ul>
<p><img src="https://img.itch.zone/aW1nLzE1OTgxMDMucG5n/original/M8KMxc.png" loading="lazy"><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/AZSW1mOT_gY" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjAzNjA3LzE1OTgxMDUuanBn/original/ET8mOg.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzNjA3LzE1OTgxMDQuanBn/original/4K99bo.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzNjA3LzE1OTgxMDYuanBn/original/72E%2BPO.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzNjA3LzE1OTgxMDguanBn/original/YdZkDH.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjAzNjA3LzE1OTgxMDcuanBn/original/9GqT6O.jpg]]
<p>Cook, Serve, Delicious! 2!! is the massive sequel to the surprise best selling original, one of the few games that gives players complete control on how they want to build their restaurant.</p>
<p>The game starts like any other morning at SherriSoda Tower as you take the elevator up to open Cook, Serve, Delicious!, a platinum star restaurant that was surging in popularity thanks to your amazing chef and management skills. Just then, a swarm of police surround SherriSoda Tower. It seems the SherriSoda head executives were secretly stealing funds from the company at the same time they were incurring a staggering amount of debt, draining the accounts of the tower and several of the businesses inside of it, including CSD. Just like that, the tower was closed and put up for federal auction, including everything inside of it. It was all over… the Cook, Serve, Delicious! restaurant was no more.</p>
<p>Angry but determined to rebuild, you’ve scrounged up all of your personal life’s savings and bought commercial space inside the Teragon Supertower, the largest skyscraper in the city. It’s here that you will start a brand new Cook, Serve, Delicious! restaurant, build it back to its former glory, and rebuild your legacy as the best chef in the world.</p>
<p>Features include:</p>
<ul><li>A 60+ hour experience as you build your restaurant from a roach infested eatery to a World Class Platinum Star experience by either running your own restaurant or branching out as a chef for hire, where you take jobs within the tower and various restaurants as you gain experience with the large array of foods, which spans 400 levels across 33 restaurants!
</li><li>Several modes including Classic Mode that brings back the classic gameplay of the original, Stress mode that instantly rockets the difficulty to the highest setting, and Zen mode, which allows you to take it easy and relaxes many of the stressful elements to provide an easy day of cooking. </li><li>All new gameplay features and additions, with a greater flexibility of difficulty for those who like it casual or<em><strong> insanely difficult</strong></em>.
</li><li>Over 200 foods, sides, drinks and desserts to choose from, a staggering increase from the 30 foods in the original game.
</li><li>New local co-op mode! The all new split screen co-op feature allows you to play through the entire game with two players, with the ability for players to drop in and out during your progress within the game.
</li><li>Tons of lore including an email system with over 600 emails, unlockable secrets, and tons more!
</li><li>Unlock over 1,200 restaurant objects and design your restaurant however you'd like with the Designer mode.
</li><li>All new 1080p native/60fps code.</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/T_yIOosKNAg" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzc5MjI1LzE4OTk0MTUucG5n/original/P67WXD.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc5MjI1LzE4OTk0MTYucG5n/original/Epaqke.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc5MjI1LzE4OTk0MjUucG5n/original/%2BUucYM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc5MjI1LzE4OTk0MjAucG5n/original/L%2F24Vp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc5MjI1LzE4OTk0MTcucG5n/original/u7YjNa.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc5MjI1LzE4OTk0MTgucG5n/original/jb%2BEcb.png]]
<iframe src="https://www.youtube.com/embed/L1yB7PxqpJw?rel=0" allowfullscreen="" width="552" height="310" frameborder="0">
</iframe>
<h1 style="margin-top: 60px; margin-bottom: 40px">A puzzle game about planning the train route for the world's most awkward space colony</h1>
<p>Cosmic Express is a puzzle game about planning the train route for the world's most awkward space colony, from the minds behind <a href="https://draknek.itch.io/a-good-snowman">A Good Snowman Is Hard To Build</a> and the art of <a href="http://typhaine-uro.com" rel="nofollow noopener" referrerpolicy="origin">Tyu</a> from Klondike. It's cute, harder than it looks, and guaranteed to give you hours of frustrating fun across hundreds of levels.</p>
<p>Awards:</p>
<ul>
<li>Finalist - IMGA Global, 2017</li>
<li>Finalist - IndiePlus, 2017</li>
<li>Official Selection - Indie Megabooth, GDC 2017</li>
<li>Official Selection - Google Play Indie Corner, PAX 2016</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/L1yB7PxqpJw?rel=0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIxNjE0LzU2OTk3NC5wbmc=/original/HV0b6I.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxNjE0LzU2OTk3OC5wbmc=/original/gRKOkJ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxNjE0LzU2OTk3Ni5wbmc=/original/gVeKRu.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxNjE0LzU2OTk3Ny5wbmc=/original/IlsfYP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxNjE0LzU2OTk3NS5wbmc=/original/TlCKpg.png]]
<p><strong>A game of cosmic battle. Ram your opponent out of the ring, into oblivion. Attack? Parry? Dodge? Ro-Cham-Bo</strong><strong><br></strong></p><p>You might consider checking out this game's much more feature rich spiritual successor: <a href="https://dean-sick.itch.io/rebop-blasters">Rebop Blasters</a><br></p>
<hr>
<ul>
	<li>Keyboard Controls:
	<ul>
		<li>Player One
		<ul>
			<li><strong>(W/Z)(A/Q)SD</strong>: movement</li>
			<li><strong>SPACE</strong>: dodge (tap to parry)<br>
			</li>
		</ul>
		</li>
		<li>Player Two
		<ul>
			<li><strong>ARROW KEYS</strong>: movement</li>
			<li><strong>COMMA</strong>: dodge<br>
			</li>
		</ul>
		</li>
	</ul>
	</li>
</ul>
<p>
	Joysticks should work out of the box, left stick to aim, any button to dodge. If your joystick doesn't work, let me know and I'll address it.
</p>
<hr>
<p>
	<strong>FAQ:</strong>
</p>
<p>
	<strong>Q: </strong><em><strong>Isn't it spelled "Rochambeau"?</strong></em>
</p>
<p>
	<strong>A: </strong><em><strong>Cosmic Rochambo bears no resemblance to your Earth-game.</strong></em>
</p>
<p>
	<em><strong><br>
	</strong></em>
</p>
<p>
	<strong>Q: Why are we fighting?<br>
	</strong>
</p>
<p>
	<strong>A: <em>Because you must.</em></strong></p>
<hr>
<p>Send me videos of epic matches!<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/BMoD09BO3pU" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMjczLzYxMTU1OC5naWY=/original/HmxQ0i.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMjczLzYxMTU2MS5naWY=/original/x0NpJG.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMjczLzYxMTU2NC5naWY=/original/%2FEKAsE.gif]]
<h2>Couch Goblins is a 4 player local multiplayer&nbsp;party game. This demo features 3 obstacle courses&nbsp;that can be played solo, co-operatively or competitively. Future demos will feature eccentric mini games, PvPvE arena modes,&nbsp;and more!&nbsp;</h2>
<ul><li><strong>Ages:</strong> 6+&nbsp;</li><li><strong></strong><strong>Players:&nbsp;</strong>1-4&nbsp;</li><li><strong>Gamepad Compatible&nbsp;</strong></li><li><strong>System Requirements:&nbsp;</strong>Win64 system with a dedicated graphics card recommended.&nbsp;&nbsp;</li></ul>
<p><strong><em>Known Bug: <br>Press Windows Key and click back into game if you cannot access Start Menu.&nbsp;</em></strong><br></p>
<p></p>
<p><strong>Optional Keyboard/Mouse&nbsp;Controls (Player 1):</strong><br></p>
<ul><li>Attack =&nbsp;Mouse1</li><li>Jump = Space</li><li>Shift = Sprint</li><li>F = Interact/Zipline</li></ul>
<p><br></p>
<p><em>Developed during the Summer 2021 NA&nbsp;PUBG Hackathon.&nbsp;</em></p>
<p><strong>CREDITS:&nbsp;<br></strong></p>
<ul><li><a href="https://twitter.com/Emilee3D" rel="nofollow noopener" referrerpolicy="origin">Emillee Kieffer</a> - Art/ Design</li><li><a href="https://twitter.com/NotJoshCookfair" rel="nofollow noopener" referrerpolicy="origin">Josh Cookfair</a> - UI/UX Design</li><li><a href="https://sorcererstudios.com/" rel="nofollow noopener" referrerpolicy="origin">Joshua Lacey</a> - Props/ Audio</li><li><a href="https://mwschillinger.com/" rel="nofollow noopener" referrerpolicy="origin">Mackenzie Wall</a> - UI/UX Engineer</li><li><a href="https://twitter.com/goudabreeze" rel="nofollow noopener" referrerpolicy="origin">Grant Ervin</a>&nbsp;- Level Design/ Technical Art/ Game Design</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/O2FTF92gyBk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE0NTE1OS82NjQ1Njk1LmdpZg==/original/yPmqMT.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0NTE1OS82NjQ1NzAwLmdpZg==/original/dcm%2FhL.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0NTE1OS82NjQ2MDkyLnBuZw==/original/s1yLwX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0NTE1OS82NjQ1OTIzLnBuZw==/original/Ahfop1.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0NTE1OS82NjQ1OTIyLnBuZw==/original/hzyhHY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0NTE1OS82NjQ1OTIxLnBuZw==/original/3K2%2B4v.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0NTE1OS82NjQ1NzEyLnBuZw==/original/ORQiRi.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0NTE1OS82NjQ1NzE1LnBuZw==/original/cFbDYB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0NTE1OS82NjQ1NzQ2LnBuZw==/original/X0Sgu%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0NTE1OS82NjQ1NzQ1LnBuZw==/original/pXA6wg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0NTE1OS82NjQ1OTQ0LnBuZw==/original/C2ZIvi.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0NTE1OS82NjQ1OTQxLnBuZw==/original/VazCcV.png]]
<p>This retro-inspired 2D <strong>Action RPG</strong> might outright surprise you. CrossCode combines 16-bit SNES-style graphics with butter-smooth physics, a fast-paced combat system, and engaging puzzle mechanics, served with a gripping sci-fi story.</p>
<p>CrossCode is all about <strong>how it plays</strong>! That's why there is a <strong>free demo</strong>! Go give it a try!</p>
<p>Take the best out of two popular genres, find a good balance between them and make a great game. That's what CrossCode does. And it works pretty well. You get the puzzles of Zelda-esque dungeons and are rewarded with the great variety of equipment you know and love from RPGs. During the fast-paced battles you will use the tools you find on your journey to reveal and exploit the enemies' weaknesses and at the same time will be able to choose equipment and skills for a more in-depth approach in fighting your enemies.</p>
<p>Check the Reviews (On Steam, GOG, Gamejolt, heck all over the net!) to see who loves the game. We're sure you will, too! <br></p><p><br><strong>For those discovering CrossCode through the Ukraine Bundle and who did not get a Steamkey, you can get the DLC here: <a href="https://radicalfishgames.itch.io/crosscode-a-new-home">https://radicalfishgames.itch.io/crosscode-a-new-home</a></strong><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/CKHAu5u2ho0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTk5NTMvNTM1NDcwLnBuZw==/original/9A0fd9.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTk5NTMvNTM1NDY5LnBuZw==/original/WJEJiC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTk5NTMvNTM1NDg4LnBuZw==/original/rUAqYa.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTk5NTMvNTM1NDY3LnBuZw==/original/%2BdkiD1.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTk5NTMvNTM1NDc3LnBuZw==/original/qUi3K%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTk5NTMvNzc3NzYucG5n/original/SmErbv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTk5NTMvNTM1NDczLnBuZw==/original/q6QXNM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTk5NTMvNTM1NDY4LnBuZw==/original/MXXJ9o.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTk5NTMvNTM1NDcxLnBuZw==/original/7dKuTf.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTk5NTMvNTM1NDc1LnBuZw==/original/3evtAt.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTk5NTMvNTM1NDc0LnBuZw==/original/T%2Fh9Xy.png]]
<h3 class="text-center"><a href="http://www.crossniq.com" rel="nofollow noopener" referrerpolicy="origin"><em>Website</em></a><em> • <a href="http://www.facebook.com/crossniq" rel="nofollow noopener" referrerpolicy="origin">Facebook</a>&nbsp;• </em><a href="http://www.twitter.com/crossniq" rel="nofollow noopener" referrerpolicy="origin"><em>Twitter<br></em></a></h3>
<p>
</p>
<p>
</p>
<div class="text-center"><iframe style="width: 500px; height: 281px" src="https://www.youtube.com/embed/jQnf8J-AFek" allowfullscreen="" frameborder="0"></iframe></div>
<h3 class="text-center"><a href="http://www.twitter.com/crossniq" rel="nofollow noopener" referrerpolicy="origin"><em></em></a></h3>
<p><strong>CROSSNIQ+</strong> (CROSS-neek plus) is a speed-focused, arcade-style puzzle game inspired by "y2k-era" visual design - a tribute to highly polished, small-scope Japanese games from the late 90's.</p>
<p><img src="https://img.itch.zone/aW1nLzIzMDI1ODYucG5n/original/wUl0Mv.png" loading="lazy"><br></p>
<p>In CROSSNIQ+, the name of the game is re-arranging a grid of tiles to form <strong>"crosses" - rows and column of the same color.</strong> You can move tiles up, down, left or right - but moving them off the edge of the grid makes them wrap back to the other side, offering a unique and brain-bending challenge that's been compared to a mix between matching games and a color cube. Unlike other popular puzzle games, CROSSNIQ+ focuses on speed and technique rather than chains or combos - make crosses quickly and set up multi-crosses to earn bonuses.</p>
<p><img src="https://img.itch.zone/aW1nLzIzMDI1ODgucG5n/original/Rhqn9P.png" loading="lazy"><br></p>
<p>In Endless mode, keep making crosses to keep your timer filled - let it hit empty, and your game is over. In Time Attack, your time is a set amount - earn as many points as you can before the buzzer sounds. <br></p>
<p><img src="https://img.itch.zone/aW1nLzIzMDI1OTEucG5n/original/MgtQLp.png" loading="lazy"><br></p>
<p>Play against a friend in Versus, complete with items and special moves...</p>
<p><img src="https://img.itch.zone/aW1nLzIzMDI1OTMucG5n/original/bvlU71.png" loading="lazy"><br></p>
<p>...or simply relax to a variety of different, aesthetically striking playfields in Chillout mode, where there's no score, timer, or game overs. No matter your playstyle, there's a mode in CROSSNIQ+ for you!<br></p>
<p>Let's Cross! Aim for THE TOP!</p>
<p><img src="https://img.itch.zone/aW1nLzI0ODAyNjAucG5n/original/IfL9X2.png" loading="lazy"><br><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/jQnf8J-AFek" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMDI2MDAucG5n/original/r0plRU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMDI2MDMucG5n/original/Wk1wT4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMDI2MDIucG5n/original/LDwXsP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMDI2MDQucG5n/original/h0Ao7v.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMDI2MDEucG5n/original/1pB8j%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMTQxODMuanBn/original/uprniR.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMTQxODkuanBn/original/0hnHhZ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMTQxODEuanBn/original/hL0i3z.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMTQxOTUuanBn/original/0SWK6N.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMTQxOTIuanBn/original/SlOx%2BC.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMTQxOTQuanBn/original/iM9EI3.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMTQxNzkucG5n/original/wuoeUk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMTQxODUuanBn/original/GiWGgs.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMTQxODAuanBn/original/TeuD5f.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMTQxOTMuanBn/original/qvN9VT.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMTQxOTkuanBn/original/GzoPxm.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMTQxOTYuanBn/original/E2CFsJ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMTQxODguanBn/original/VxZr8S.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMTQxODYuanBn/original/odnXZh.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMTQyMDAuanBn/original/%2BXW94x.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMTQxOTAuanBn/original/gjBcqY.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMTQxODQuanBn/original/NRxDs7.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMTQxOTEuanBn/original/8CloAN.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMTQxOTguanBn/original/5puxzR.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMTQxODcuanBn/original/qwhX0F.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMTQxODIuanBn/original/ow937L.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0MDA0LzIzMTQxOTcuanBn/original/FS0DT4.jpg]]
<p><br></p>
<p>What's in <strong>Cruel World</strong>?</p>
<p><br></p>
<h1 class="text-center">EXPERIMENTAL PLATFORMING MECHANICS</h1>
<p>Learn how a platformer controls like you've never controlled a platformer before! Enjoy&nbsp;unparalleled freedom (roll and bounce and do weird shit!), and a thousand opportunities to klutz yourself into a pit of spikes.</p>
<p><br></p>
<h1 class="text-center">TEXT-INTERFACED TERMINALS</h1>
<p>I'm in love with the image of a game and a terminal side-by-side, and I finally got it working in Cruel World-- HACK, MINE, and KISS various objects in order to be allowed to save your game, to unlock doors to otherwise inaccessible places, and to read descriptions of&nbsp;the mechanics of the game itself.</p>
<p><br></p>
<h1 class="text-center"><del>A PERSISTENT&nbsp;WORLD THAT CAN ONLY GET WORSE</del></h1>
<p><del>A singular, shared server&nbsp;records your accomplishments and your every selfish action.</del></p>
<p><del>Will you&nbsp;protect yourself from the selfish actions of other players by taking selfish actions yourself, or will you keep faith and fight the good fight, no matter the personal&nbsp;consequences?</del></p>
<p><del>We all know the world is dying, but who will take the blame?</del></p>
<p><br></p>
<h1 class="text-center">THE WORLD ALREADY ENDED, LET'S THROW A HUGE PARTY</h1>
<p><a href="https://twitter.com/droqen/status/1379119999537778693" rel="nofollow noopener" referrerpolicy="origin">The world has&nbsp;already been ruined by OWNERS</a> -- it's time to take it back.&nbsp;Throw a PARTY at a private node, and everyone gets access as long as the PARTY keeps on rolling. Let's&nbsp; celebrate&nbsp;the&nbsp;end of the&nbsp;end of the world together!!!</p>
<p><br></p>
<h3 class="text-center"><em>Architects of this cruel world</em></h3>
<p>droqen [<a href="https://droqen.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">droqen.com</a>] initial concept, programming (Godot), art (PyxelEdit), sfx (Bfxr), level design, player jump physics fun stuff</p>
<p>Mer Grazzini [<a href="https://mergrazzini.itch.io/">mergrazzini.itch.io/</a>] DLC level designs, additional art (PyxelEdit, other)</p>
<p>John Molloy [<a href="https://twitter.com/newtonsninja" rel="nofollow noopener" referrerpolicy="origin">twitter.com/newtonsninja</a>] DLC level designs</p>
<p>Sylvie [<a href="http://love-game.net/" rel="nofollow noopener" referrerpolicy="origin">http://love-game.net/</a>] Sylvie World</p>
<p>And of course the hundreds of players who have&nbsp;HACK'd, MINE'd, and KISS'd every corner of&nbsp;Cruel World, turning it into the living landscape it is today.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTc5MTQ0LzU1NjM2NjAuZ2lm/original/2Kd6e6.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvOTc5MTQ0LzU1NjM5MDguZ2lm/original/WStgWm.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvOTc5MTQ0LzU1NjM5MDcuZ2lm/original/6Jz7bo.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvOTc5MTQ0LzU1NjM2NjYucG5n/original/I5qsMk.png]]
<h1>CRUST Launches in June&nbsp;on Gamefound</h1>
<h2>Give us your email address so we can get in contact with you as soon as the page is live!&nbsp;</h2>
<h2><a href="https://bit.ly/CRUSTalert" rel="nofollow noopener" referrerpolicy="origin">https://bit.ly/CRUSTalert</a></h2>
<div><br></div>
<p><strong></strong><strong><em>It’s 1993 and you’re landlocked on M-0847, a distant planet rife with resources the CORPOS use to perpetuate their booming space trade.</em></strong></p>
<p>You’re dirty gutter punks scrounging to survive in a place you don’t know well.
</p>
<p>There’s a wild world outside filled with deadly animals, weird weather, and cops.&nbsp;
</p>
<p>Worse yet are the abominations mutated from the depths of the planet that long to pull you into their gaping maws.
</p>
<p>Strap in, you’re here for the long haul.&nbsp;
</p>
<p>Find some food in a dumpster, and grift your way into a bed at the nearest hostel where at least you’ll <em>feel </em>safe.
</p>
<h2>What is CRUST?
</h2>
<h4>CRUST is a brand new sci-fi horror game inspired by OSR game ethos. It draws inspiration and elements Year Zero, Mork Borg, and the Black Hack. Players are able to&nbsp;fully customize a character in any way they imagine, through a variety of&nbsp;unique talents, weapons, and rare items.</h4>
<h4>CRUST employs a simple, modified dice pool system.&nbsp;Shoot for 6's or modify your rolls with a variety of abilities to increase your success chance.&nbsp;</h4>
<h2>It’s coming to the Gamefound Crowdfunding platform in June!</h2>
<p>CRUST is being published by Disaster Tourism.
<strong>CRUST will Feature:</strong>
</p>
<ul><li>3-4 full color zine booklets&nbsp;
</li><li>Concise and simple ruleset and super fast character creation.&nbsp;
</li><li>Dozens of world building tables, generators, loot tables and more.&nbsp;&nbsp;
</li><li>Dungeon generation tables for each of the three dungeon types, for fully randomized and fast encounter creation
</li><li>A full progression system with 40 talents, 12 mutations, and a variety of ways to gain experience.
</li><li>Professional editing by Jarrett Crader of MRC.
</li><li>D-beat cassette by the canonical band <em>Tourist</em> recorded by Sean Martin of The Aurora Sound
</li><li>A mini adventure designed by Copper State Games and Duvelman Dice included in the <em>Tourist </em>tape J-card.
</li><li>Custom Molotov dice&nbsp;by Duvelman Dice
</li><li>Patches and Stickers by Kristen Denner
</li><li>and more!
</li></ul>
<h2>Check out some of the concept art we've got going right now!</h2>
<p><strong>Gutterpunk Guns</strong></p>
<h3><img src="https://img.itch.zone/aW1nLzgxMTAzOTcucG5n/original/HJbDaE.png" loading="lazy"></h3>
<h3></h3>
<h2><strong>Social Media Links</strong>&nbsp;</h2>
<p>You can find us here on <a href="http://twitter.com/dtrpgs" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">Twitter</a><br></p>
<p>
You can find our games at <a href="https://disastertourism.itch.io/">Disaster Tourism</a>.
</p>
<p><strong><br></strong></p>
<h2>Team Members:</h2>
<p><strong>Kirby Franklin</strong> - Design and Development&nbsp;</p>
<p><strong>Kristen Denner</strong> - Art and Layout
</p>
<p><strong>Jarrett Crader - </strong>Editing
</p>
<p><strong>Andy Duvall - </strong>Development Input, Maps</p>
<p><strong>Gabe Rivera-</strong>&nbsp;Supplemental</p>
<p><strong>Sean Martin - </strong>Music
</p>
<p><strong>Mytrice Allen</strong> -&nbsp;Sensitivity Reading</p>
<p><br></p>
<h4>From Kirby:</h4>
<p>
This game began as a joke between Kristen and me a year and a half ago. We were throwing out ideas for weird and wacky game concepts, and she shouted “CRUST PUNKS IN SPACE!” and the concept just spiraled. It’s been through many iterations, but as I’ve grown my library, and gotten deeper into the OSR and other unique game systems it’s slowly grown to reflect that. The system, and setting of CRUST are one that I’ve labored over far more than I should have, but one of which I’m immensely proud. Kristen’s artwork is phenomenal, and reflects exactly what I had hoped in every aspect. Without her input from day one this game would have ended in a shredder. I hope you find hours (or months) of excitement and fun with this system. I know I have! &nbsp;
</p>
<p><strong><br></strong></p>
<h3>What People Are Saying
</h3>
<p>“I had to wash my hands after reading this..." - Emily Muise</p>
<p>"Are you sure you want to do this?" - <em>The World's Most Successful AP Podcast</em></p>
<p>“There’s definitely words on that page” - my Editor</p>
<p>“I really wish you’d go back to church, and stop this obscene behavior” - Mom
</p>
<p>“For the last time,&nbsp;please stop sleeping in here. And please, the printer is for schedules not games.” - Clerk at 7/11
</p>
<h2>If you haven't yet picked up the ashcan, you can purchase the full pdf below, and get a head start into the dumpster.</h2>
<p><a href="mailto:disastertourismgames@gmail.com" rel="nofollow noopener" referrerpolicy="origin"></a>
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM3MDQ4NC84MDczMjE3LnBuZw==/original/NbPCG3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3MDQ4NC84MTEwMzkxLnBuZw==/original/j9FADO.png]]
<p><em>"Cryptkeeper? Hello? Ah, hi, yeah we're back... sorry to bother you again. We... we don't know, er, there's, um, there's a bit of a situation with the crypt... yeah, I think we broke something. Sorry. Can you fix it?"</em></p>
<p>
</p>
<h2>The Basics:</h2>
<p>Every card serves dual purposes. If you explore a card as a tile on the map, it will trigger an Event Effect. However, if you instead draw the card as an item, you can use that card at any time to trigger an Item Effect. The map and the deck swap places every floor, so be careful about what you discard, because it'll come back as a map tile on the next floor!</p>
<p><img src="https://img.itch.zone/aW1nLzU5NjA2MzMucG5n/original/YYi4f6.png" loading="lazy"><br></p>
<p>A solo TTRPG made with inspiration from various&nbsp;roguelike games. Learn the game's systems and use them to your advantage!</p>
<p>Let me know what you think -- I expect I'll be tweaking the balance of the card effects, and your feedback will help!<br></p>
<h2>patreon:</h2>
<p>supporters on&nbsp;<a href="https://patreon.com/pancelor" rel="nofollow noopener" referrerpolicy="origin">patreon</a> ($3+) can&nbsp;<a href="https://pancelor.itch.io/cryptkeeper/patreon-access">get this game</a>&nbsp;for free! your support will help me make more of the sorts of games I've got here on itch. (fair warning: most are not TTRPGs, they're generally puzzle games, arcade games, and experimental games!)</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA0MTAzMS81OTU1NzU5LnBuZw==/original/2jCnc%2F.png]]
<p>You are a robot tasked with producing crystals.&nbsp; Organize a never ending supply of them and see how long you can last!<br></p>
<h3>Controls:</h3>
<p><strong>arrow keys/wasd:</strong></p>
<blockquote>places/grows/cracks a crystal if possible<br>grow/crack crystals by stacking crystals of the same color<br>moves that don't use crystal discharge your jump instead (cursor turns red)<br>you start with a jump (white cursor) and recharge it when you crack a crystal</blockquote>
<p><strong>space/x (action):</strong><br></p>
<blockquote>charge jump, move the preview to the next crystal<br>at position 3, action moves the preview back to position 1<br>the heart cost for moving the preview back down increases (1-2-3-3...)<br>useful when you get stuck, but comes at a cost</blockquote>
<p><strong>u/z (undo):</strong> <br></p>
<blockquote>you can undo all moves that don't generate a new color<br>click on the digit 3 to disable arcade mode (enables undo for all moves)</blockquote>
<p><strong>r (reset):</strong> <br></p>
<blockquote>used to restart at any point (careful, can't be undone)</blockquote>
<p><strong>mouse:</strong></p>
<blockquote>tap next to the player to move to that cell<br>tapping on the active piece preview triggers action</blockquote>
<h3>Hints:</h3>
<ul><li>the more of these you read, the less you get to figure out yourself (SPOILERS AHEAD)</li><li>try to keep your jump for a move sequence that cracks a crystal, since that recharges your jump</li><li>crystals with neighbors of the same color are more likely to require a jump to leave from, try to keep the neighbors distinct</li><li>alternating between jumping and cracking crystals (then jumping to the next crystal to crack) can get you far</li><li>if you reach 5 hearts you will trigger a crystal anomaly (not easy)</li></ul>
<p><br></p>
<p><br></p>
<p><strong>hi these people are cool and helped test and find 🐛</strong><br></p>
<p><a href="https://auroriax.itch.io/" target="_blank">auroriax</a>&nbsp; (thx for PS+ and realtime_twiddling), <a href="https://twitter.com/jseakle" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Jake Eagle</a> (grid expert), <a href="https://jackkutilek.itch.io/" target="_blank">Jack Kutilek</a> (poked at it a bunch), <a href="https://itch.io/profile/tjc-games" target="_blank">TJC games</a>&nbsp; (testing, cool digits), <a href="https://itch.io/profile/pinchazumos" target="_blank">pinchazumos</a> ( inspiration &amp;<span class=""></span><span class=""></span> feedback), <a href="https://twitter.com/noa_cubestudio" target="_blank" rel="nofollow noopener" referrerpolicy="origin">noa</a> (hüpf hüpf)<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI3MjE4MS83NDU1NTE2LnBuZw==/original/E6cqIe.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI3MjE4MS83NDU1NTE1LnBuZw==/original/mlIghA.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI3MjE4MS83NDU1NTE0LnBuZw==/original/IMb6Qr.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI3MjE4MS83NDU1NTE3LnBuZw==/original/my4%2FxB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI3MjE4MS83NDU1NTE4LnBuZw==/original/xHJCe2.png]]
<p>This collection features five NPCs designed for <a href="https://losing-games.itch.io/mausritter" target="_blank">Mausritter</a>, the table-top game of swords and whiskers.
  </p>
<p>This collection will add an extra dose of flavour, intrigue and  possibilities to your Mausritter adventure sites and hex crawl. Each NPC  card includes stats, personal information and tables for potential  side-quests and backstories. <br></p>
<p>Here's the cast of characters included in this collection:</p>
<p><strong>El Gecko</strong> the wall-climbing muralist. A lizard who wants to put their art in the most daring of places.</p>
<p><strong>Quillermo</strong> the ornery porcupine duellist. A quill wielding fighter who is desperate to find a worthy opponent.</p>
<p><strong>The Seer at Helen's Pond</strong>, a turtle who can see the future. A slow-talking (and moving) turtle who can reveal crucial information... for the right gift.</p>
<p><strong>One-Eyed Sligo</strong> the mage-hunter. A newt who wants to rid the world of all magic.</p>
<p><strong>Lupin Rainbow</strong> the ghost-squeaker. A mouse who sees and can talk to ghosts. <br></p>
<p><br></p>
<figure><img src="https://img.itch.zone/aW1nLzc5NTkzMzAucG5n/original/uJrrK1.png" alt="Mausritte compatibility logo" title="Mausritte compatibility logo" loading="lazy"></figure>
<p>These NPCs are independent productions by tim zee and are not   affiliated with Losing Games. It is published under the Mausritter Third   Party Licence.          </p>
<p>Mausritter is copyright Losing Games.      </p>

[img width=500 [https://img.itch.zone/aW1nLzgwMDM1MTUuanBn/original/UdAD%2Fp.jpg]]
<p>A digital artbook about the making of Curious Expedition.&nbsp;</p>
<p><br></p>
<p><em>The artbook is also available as part of <a href="https://maschinen-mensch.itch.io/curious-expedition">a bundle with the game and soundtrack</a>.</em></p>
<p><br></p>
<p>Features:<br></p>
<p>📖 Forewords by&nbsp;Ron Gilbert and Piotr Iwanicki<br>📖 (Procedural) pixel art galore<br>📖 Unreleased dev commentary<br>📖 Forgotten features<br>📖 176 pages</p>
<p><br></p>
<p>Chapters:<br></p>
<ul><li>Landscape backgrounds</li><li>Locations</li><li>Biomes</li><li>Characters</li><li>Procedural natives</li><li>Animals &amp; Monsters</li><li>Visual evolution</li><li>Field tiles</li><li>Changelogs &amp; Designs</li><li>Layout evolution</li><li>Abandoned features</li><li>Moments of development</li><li>Alpha updates</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDMzMDUzLzIxNjk2MjAucG5n/original/Rvj%2BgF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDMzMDUzLzIxNjk2MjIucG5n/original/JK0%2FNp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDMzMDUzLzIxNjk2MjMucG5n/original/r1EFTx.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDMzMDUzLzIxNjk2MjQucG5n/original/jjGVb6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDMzMDUzLzIxNjk2MjUucG5n/original/X0ojTI.png]]
<p>Curious Expedition is a roguelike expedition simulation set in the late 19th century. Together with famous personalities you will venture on unprecedented expeditions to regions never explored before for fame, science and treasures. Put on your pith helmet and khakis and make your way through a lush, procedurally generated world full of wonder and mystery. Now go explore, adventure awaits!</p>
<p><strong>Your purchase comes with a Steam key.</strong><br></p>
<p><em>Bundle alert: if you pay $24.99, you'll also get access to the soundtrack and digital artbook.</em></p>
<p><em>The best roguelike of 2016.<br><strong>—&nbsp;</strong></em><strong>Rock, Paper, Shotgun</strong></p>
<p><em>A disturbing portrait of the colonial mind.<br><strong>—&nbsp;</strong></em><strong>Killscreen</strong></p>
<p><em>One of my indie highlights of the year.<br><strong>—&nbsp;</strong></em><strong>Gamestar</strong></p>
<p><em>It’s pretty much what would happen if FTL and 80 Days had a kid.</em><br><strong>— Pockettactics</strong></p>
<p><em>It should be on your must buy list.</em><br><strong>— Ron Gilbert</strong></p>
<p><em>A love letter to exploring.</em><br><strong>— Leigh Alexander</strong></p>
<p class="text-center"><strong style="color:#00b779">— NEW MASSIVE MULTIPLAYER MODE —</strong></p>
<p><img src="https://img.itch.zone/aW1nLzI3MjQzNDgucG5n/original/xtyZ%2BF.png" loading="lazy"></p>
<p>Explore worlds that are up to 10,000 times larger than in the original game, discover new regions and have your name and portrait remembered for all players to see.</p>
<p class="text-center"><strong style="color:#00b779">— MODS / STEAM WORKSHOP SUPPORTED —</strong></p>
<p><img src="https://img.itch.zone/aW1nLzI3MjQzNTAucG5n/original/EK%2BnCq.png" loading="lazy"></p>
<p>Encounter endless possibilities with Curious Expedition mods, or create your own From simple items to new characters or expeditions to the moon, everything is possible.<br></p>
<p class="text-center"><strong style="color:#00b779">— FREE DLC INCLUDED —</strong></p>
<p><img src="https://img.itch.zone/aW1nLzI3MjQzNTIucG5n/original/w4dRZm.png" loading="lazy"></p>
<p>The game includes our free DLC "The Arctic Expanse" adding new arctic biomes, characters, items, events and much much more.<br></p>
<p class="text-center"><strong style="color:#00b779">— JOIN OUR DISCORD SERVER! —</strong></p>
<p><a href="https://discord.gg/maschinen-mensch" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzI3MjQzNTQucG5n/original/BcsYMX.png" loading="lazy"></a><br></p>
<p>Feel free to&nbsp;<a href="https://steamcommunity.com/linkfilter/?url=https://discord.gg/maschinen-mensch" target="_blank" rel="nofollow noopener" referrerpolicy="origin">join us on Discord</a>&nbsp;for regular updates, exclusive previews, to suggest features and hang out with our community.<br></p>
<p>
</p>
<p class="text-center"><strong style="color:#00b779">— GAMEPLAY OVERVIEW —</strong></p>
<ul><li><strong>Experience</strong> your very own adventure through a procedural story which makes every game unique.&nbsp;</li><li><strong>Explore</strong> procedurally generated worlds, each with its own distinctive set of challenges for the ambitious explorer.&nbsp;</li><li><strong>Plan and equip</strong> your trek. A good explorer is prepared for any eventuality.</li><li><strong>Manage</strong> your resources to keep your trek alive and sanity high. Balance your needs with the desire to carry all that precious treasure back home.&nbsp;</li><li><strong>Visit</strong> and interact with the land’s natives. Enter villages, trade and communicate with local tribes and civilizations that are unknown to mankind.&nbsp;</li><li><strong>Loot</strong> mysterious temple ruins to gain fame and treasures, but watch out for deadly traps and curses that will compromise your trek and the world around you.&nbsp;</li><li><strong>Equip and utilize</strong> miraculous treasures to gain advantages, but be wary of unforeseeable side effects.&nbsp;</li><li><strong>Fight and defend</strong> your trek against a wide range of wild animals, mystical creatures and even dinosaurs.</li></ul>
<p><strong>Supported Languages:</strong>&nbsp;English,&nbsp;Spanish, German, French, Italian, Polish, Portuguese-Brazil, Ukrainian, Russian, Korean, Simplified Chinese, Traditional Chinese, Japanese, Turkish</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/3hrxaVdN-AU" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjg2MDcvMzEyODgzLnBuZw==/original/N%2FZ37s.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjg2MDcvMzEyODc0LnBuZw==/original/nKhuS8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjg2MDcvMzEyODczLnBuZw==/original/cTqSYv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjg2MDcvMzEyODc4LnBuZw==/original/yZHtft.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjg2MDcvMzEyODc2LnBuZw==/original/uMionV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjg2MDcvMzEyODg0LnBuZw==/original/lFz5os.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjg2MDcvMzEyODY3LnBuZw==/original/P1N0kP.png]]
<p>A curse has befallen the Crescent Isle and it's up to you to save them. Luckily the curse has transformed your people into helpful monsters such as drills, blobs, icicles, and gravity flipping...things. With your monster subjects in hand you'll have to drill through rocks, maneuver through spiky terrain, freeze water to pass over the sea, and restore your kingdom to its former glory.</p>
<p><br>Key features: <br></p>
<ul><li>Story Mode </li><li>Speedrun Mode </li><li>Boss Rush Mode </li><li>Sound Test </li><li>Local Co-op </li><li>Updated graphics and sound (from the Xbox 360 version) </li><li>Updated game engine with improved physics (ish)</li></ul>
<p>--Credits-- <br>COVER ART: TEMMIE CHANG <a class="" target="_blank" href="https://steamcommunity.com/linkfilter/?url=http://-https://twitter.com/tuyoki" rel="nofollow noopener" referrerpolicy="origin">-https://twitter.com/tuyoki</a> <br>COMPOSER: DANIEL DAVIS - <a class="" target="_blank" href="https://twitter.com/an0va" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/an0va</a> <br>ARRANGER: STEVE LAKAWICZ <a class="" target="_blank" href="https://steamcommunity.com/linkfilter/?url=http://-https://twitter.com/a_p_0_c" rel="nofollow noopener" referrerpolicy="origin">-https://twitter.com/a_p_0_c</a> <br>GRAPHICS: MICHAEL LAMBERT <a class="" target="_blank" href="https://steamcommunity.com/linkfilter/?url=http://-https://twitter.com/Jakten" rel="nofollow noopener" referrerpolicy="origin">-https://twitter.com/Jakten</a> <br>DESIGN &amp; PROGRAMMING: ADAM MOWERY - <a class="" target="_blank" href="https://twitter.com/1amowery" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/1amowery</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/w_sYQ8X6qhM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzM0NjcvMTQzNzAxLnBuZw==/original/UwnbLV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzM0NjcvMTQzNzAyLnBuZw==/original/VXlYDS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzM0NjcvMTQzNzA0LnBuZw==/original/OzkU3v.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzM0NjcvMTQzNzAzLnBuZw==/original/x4Q2ME.png]]
<p>Curse of the  Emerald Sea is a sandbox&nbsp;swashbuckling adventure setting for Knave, the  old-school fantasy RPG by Ben Milton. It is suitable for level 1 to 3.
The Emerald Sea is a vast frontier filled with paradise islands, abundant resources, and competing factions.
A few months ago a mysterious mist shrouded the region, cutting it off from the outside world.
Strange things happened in the mists. Ships disappeared, friends turned on each other, and terrible monsters appeared.
Will you dare enter the mists and find the answer behind the Curse of the Emerald Sea?
What this 32-page book contains:
 </p>
<ul><li>A setting
</li><li>Four factions
</li><li>Five major islands
</li><li>A system for generating adventure prompts while exploring a hex map at sea
</li><li>Lots of random tables
</li><li>Voodoo magic
</li><li>Weird monsters, such as a monkey leviathan and weredemons that are a mix of shark, crab, and octopus
</li></ul>
<p>
What this book is:
 </p>
<ul><li>An island-hopping setting inspired by works such as the Secret of Monkey Island and Pirates of the Caribbean
</li><li>A tool for experienced referees to generate sandbox adventures on the fly
</li><li>Written to cut down on prep time. This is a book that's supposed to be used at the table
</li></ul>
<p>
What this book is not:
 </p>
<ul><li>A product for referees who are uncomfortable with coming up with  things on the fly (it could still be used to set up games ahead of time  though)
</li><li>A linear adventure that takes you from point A to B
</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE5OTE5My83MzAyMjY1LnBuZw==/original/yRroQj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE5OTE5My82OTk1ODQyLnBuZw==/original/XKAHsF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE5OTE5My82OTk1ODQ1LnBuZw==/original/Qihbzc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE5OTE5My82OTk1ODQ0LnBuZw==/original/4rvm2y.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE5OTE5My82OTk1ODQzLnBuZw==/original/YiiBMn.png]]
<p>Triplanetary and First Lensman were the first two novels in the classic Lensman series of books by E. E. "Doc" Smith, the father of Space Opera as a genre. This book takes the public domain text of those first two novels and turns them into a solo roleplaying resource, using the Cut Up technique.
</p>
<p>Cut Up Solo is a technique that uses random snippets of text that you pick and fit together, creating what the GM says to you. You can then respond to that, and then the cycle repeats. As all the snippets in this set all come from the same author, and series of books, it gives a sense of continuity.
</p>
<p>Cut up play is very different from more traditional oracle-driven solo play. If you struggle with how to interpret word pairs or prompts, cut up could be for you.
</p>
<p>These stories contain over 148,000 words of text, chopped into snippets of 4 or 5 words. You get over 35,000 snippets to mix and match in your solo games. The PDF contains two d1000 tables of snippets, and the spreadsheets contain the full set of snippets.
</p>
<p>A print version of this book is available on my <a href="https://ppmgames.myshopify.com/products/cut-up-solo-triplanetary-lensman?variant=39901429727396" target="_blank" rel="nofollow noopener" referrerpolicy="origin">website</a>.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/7NSzwjT6cCU" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA0NTk4OC81OTc4MjA5LmpwZw==/original/H6jgre.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0NTk4OC81OTc4MjA4LmpwZw==/original/tBO0wU.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0NTk4OC81OTc4MjExLmpwZw==/original/kxiLgh.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0NTk4OC81OTc4MjEzLmpwZw==/original/qAFSxf.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0NTk4OC81OTc4MjEyLmpwZw==/original/oaYxTg.jpg]]
<p>Dark &amp; Electronic Cyberpunk style songs designed for stealth gameplay or anything needing a brooding and mysterious mood. Sound effects designed to transition between the different moods and intensities of the songs - with a style inspired by classic spy movie sound effects!</p>
<p>6 loopable songs, 6 sound effects.
</p>
<p><strong>Music and SFX Previews: </strong><a href="https://soundcloud.com/chrislsound/sets/cyberpunk-stealth-musicsfx-pack" title="https://soundcloud.com/chrislsound/sets/cyberpunk-stealth-musicsfx-pack" rel="nofollow noopener" referrerpolicy="origin">https://soundcloud.com/chrislsound/sets/cyberpunk-stealth-musicsfx-pack</a></p>
<p><strong>MUSIC</strong> <em>(.wav - stereo, 44.1kHz, 16bit)</em></p>
<ul><li>Sneaking (2:06, 130BPM)
</li><li>Suspicious Low/Medium/High (1:58, 130BPM) - <em>NOTE: these three tracks are designed to be dynamically layered together, though they can be used individually if so desired!</em></li><li>Spotted (1:36, 140BPM)
</li><li>Safety (2:38, 100BPM)</li></ul>
<p><strong>SFX</strong> <em>(.wav - stereo, 44.1kHz, 16bit)
</em></p>
<ul><li>Suspicion-Low</li><li>Suspicion-Medium</li><li>Suspicion-High</li><li>Spotted</li><li>Suspicion-None</li><li>Game Over
</li></ul>
<p><strong>Contact: </strong>ChrisLSound@gmail.com
</p>
<p>If you have any requests or are interested in hiring me for custom music/SFX, please send me an email!</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjgwNTY2LzEzNjE4MTAuanBn/original/b2OEfS.jpg]]
<p><em><strong>Cycle 28 is a classic arcade space combat game where you have six minutes to beat your high-score. Simple controls, powerful upgrades, and intense dogfights. Perfect for when you just need to switch off and shoot something.&nbsp;</strong></em></p>
<h3>&nbsp;<em>Nominated for Best Game at BAFTA Cymru 2019</em></h3>
<figure><strong><em><img src="https://img.itch.zone/aW1nLzI4NzAxOTUucG5n/original/aWB763.png" loading="lazy"><br></em></strong></figure>
<p><strong></strong>As Olivia Bergen – a flight lieutenant that has become separated from her fleet – you only know Cycle 27. You live it over, and over, and over again. And if that wasn’t bad enough, every time you drop from warp&nbsp;<em>they</em>&nbsp;are waiting for you.</p>
<p>You don’t know who they are or what they want. You just know you’re the only thing between them and home. So you get better, faster, stronger. Maybe one of these Cycle’s you’ll figure it out. Until then, you can only keep dying.</p>
<p><img src="https://img.itch.zone/aW1nLzI4NzAxODcuZ2lm/original/bHl22b.gif" loading="lazy"><br></p>
<h4>Key Features</h4>
<p><strong>Kaleidoscopic space combat</strong>&nbsp;—&nbsp;Power slide your way between more bullets than any lesser pilot could handle. Nothing feels better than using your ship’s gun to propel you through enemy-infested space as you grip the trigger ever tighter.</p>
<p><strong>Upgrades</strong>&nbsp;— Beat your personal high score in a run to unlock upgrades. With 45 possible configurations, customise your ship and master new tactics to live just a little longer.</p>
<p><strong>Evolving story</strong>&nbsp;— Uncover the secrets of why you’re stuck in Cycle, why they’re hell-bent on destroying everything you love, and just who they really are.</p>
<p><strong>Epic original score</strong>&nbsp;—A powerfully atmospheric mix of modern orchestral and retro electronic sounds by Jordan Rees. (Composer of trailer music for The Mummy [Universal Pictures], Mother [Paramount Pictures], The Defenders [Marvel Studios]).</p>
<h3><img src="https://img.itch.zone/aW1nLzI4NzAxODguZ2lm/original/ivMmrn.gif" style="max-width: 100%; color: inherit; font-size: inherit" loading="lazy"></h3>
<h3>Reviews</h3>
<blockquote><em>“...we kept coming back to it again and again - and so will you.”</em></blockquote>
<p class="text-right"><a href="http://www.nintendolife.com/reviews/switch-eshop/cycle_28" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Nintendo Life</a></p>
<blockquote>“I can’t help but recommend it to anyone who’s looking for a healthy, arcade-style challenge.”</blockquote>
<p class="text-right"><a href="http://www.gamerswithjobs.com/node/1301807" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Gamers with Jobs</a></p>
<p><br></p>
<h3>Check out our newest game</h3>
<p></p>
<iframe frameborder="0" src="https://itch.io/embed/430934?linkback=true&amp;border_width=3&amp;bg_color=faefd4&amp;fg_color=222222&amp;link_color=fa5c5c&amp;border_color=899faf" width="556" height="171"><a href="https://pillbuginteractive.itch.io/making-it-home"><span class=""></span>Making it Home by Pill Bug Interactive</a></iframe>

<iframe width="720" height="450" src="https://www.youtube.com/embed/PyocLr6qTSE" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjE2ODMxLzEwNDE3NjkuZ2lm/original/EjColW.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE2ODMxLzEwMjY1ODQucG5n/original/NlgeZl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE2ODMxLzEwMjMzNDIucG5n/original/GRB5Aa.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE2ODMxLzEwNDc2MzQucG5n/original/UrXxpa.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE2ODMxLzEwMjMzNDEucG5n/original/SkiTuI.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE2ODMxLzEwMjMzNDkucG5n/original/XZoywE.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE2ODMxLzEwMjMzNDYucG5n/original/UJViTU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE2ODMxLzEwNDc2MzMucG5n/original/73dPuj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE2ODMxLzEwMjMzNDgucG5n/original/XhVoBQ.png]]
<iframe width="560" height="315" src="https://www.youtube.com/embed/ej1OAujypd8" frameborder="0" allowfullscreen=""></iframe>
<h2>What is Danger Crew?</h2>
<p>Danger Crew is a retro-style RPG about being a programmer at a company.</p>
<ul>
<li>Bust out your laptop in hack battles against other programmers</li>
<li>Level up your Crew with new scripts, laptop upgrades, and computer science themed items</li>
<li>Complete journal quests by helping people at the office and in the city solve big problems</li>
<li>A full 7 chapter single player story experience</li>
<li>Original soundtrack created by the developers and friends (full download included with the game!)</li><li>Built with HTML, CSS, and JavaScript (React)</li></ul>
<p></p>
<hr>
<p><strong>What's the gameplay like?</strong><br>A mashup of Earthbound, Super Mario RPG, and Pokemon.</p>
<p><strong>How long does Danger Crew take to complete?</strong><br>On average, people finish the story in 6-7 hours.</p>
<hr>
<h2>Reviewers and Streamers say:</h2>
<p>“Danger Crew has to be one of the more refreshing takes on an old school genre I've played in quite some time.” - PiroTae</p>
<p>“the graphical style is a nostalgic homage to quirky Super Nintendo RPGs like Earthbound &amp; Robotrek“ - devon.dale1</p>
<p>“If you like charming games like Stardew Valley, then you will enjoy this one as well!” - Rummy</p>
<p><br></p>
<h2>Join our Community</h2>
<p><a href="https://discord.gg/umD2GRy" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Join our Discord community</a></p>
<p><br><a href="https://twitter.com/dangercrewgame" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Danger Crew on Twitter</a></p>
<p><br><a href="https://us13.list-manage.com/subscribe?u=467755aba42db48795fa86c95&amp;id=b40db07f16" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Join our Email List for updates &amp; peeks at our next game</a></p>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/ej1OAujypd8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDgxNjE1LzI0ODQzMDUucG5n/original/s%2BZNOC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDgxNjE1LzI0ODQzMDcucG5n/original/d382eg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDgxNjE1LzI0ODQzMDkucG5n/original/bg3rKG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDgxNjE1LzI0ODQzMTAucG5n/original/tj6Oqx.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDgxNjE1LzI0ODQzMTIucG5n/original/QGYs0f.png]]
<p><img src="https://img.itch.zone/aW1nLzUyMzc3ODYuZ2lm/original/7tIQqd.gif" loading="lazy"><br></p>
<p>Deadly efficient. Highly skillful. Invisible to indifferent citizens. They fight the greedy corporations that have entire nations under their thumb. Suits scornfully called them Scavengers.<br><br>It was they who first noticed that the situation turned around. And it's an artificial intelligence A.I.O.N.E., who took over the control causing the machines to revolt against their masters.<br><br>The time has come. Step out from the shadows to face this new enemy in open battle.<br>Soon the A.I. will have to learn how dangerous the Scavengers are.<br><br>The evil A.I. brings doom upon the world. A group of outcasts - the Scavengers - once rejected by fate, now glorified and admired decide to overcome the status quo... and of course, loot on their way and return to their hideout with a bag full of great treasures... or broken scrap.<br></p>
<p><img src="https://img.itch.zone/aW1nLzUyMzc3OTAuZ2lm/original/ynBmuu.gif" loading="lazy"><br></p>
<p>You'll crawl higher than ever before.<br><br>Danger Scavenger is an intense cyberpunk-themed roguelite skyline crawler that takes you to the roofs of a breathtaking cyberpunk city, where you will face ruthless enemies controlled by the soulless AI.<br><br>Forget about crawling through the dungeons, caves, and the darkest pits of hell in search of adventures and treasures. The world has changed and new times are coming. You'll be going up and out of the underground to seek new horizons and possibilities.<br><br>Become one of the outcasts and set out on a risky hunt in search of liberation and countless riches hidden on the huge skyscrapers. The danger is so great that every Scavenger can change the course of history forever... or become another forgotten scrap hunter. Choose your path wisely - bigger risks means bigger reward!</p>
<p><img src="https://img.itch.zone/aW1nLzUyMzc3OTIuZ2lm/original/PX7%2BCj.gif" loading="lazy"><br></p>
<ul><li>Dynamic risk-reward gameplay: choose your path wisely, face the challenges, and become the hero you've always wanted to be! Or... take an easier path and return with nothing.</li><li>Collect scrap and craft the equipment out of it. You can customize each weapon to your individual needs using the crafting system.</li><li>Unexpected item combinations to discover during your adventures. Design your perfect strategy by many trials and errors, obviously resulting in many deaths.</li><li>6 unique Scavengers - each one has their skills and style of dealing with problems: stealth, strategy, rapid-fire action, or maybe a mix of them? You decide!</li><li>Defeat 5 greedy corporations. Face 30+ types of enemies, their special versions, and bosses. Choose from a large selection of 30+ various weapons, 50+ active and passive items and upgrades to buy or loot.</li><li>You'll crawl higher than ever before - this unique skyline crawler takes you to the roofs of the breathtaking cyberpunk city, where you will face robots controlled by AI.</li><li>Team up and fight the enemy robots in Cooperation Mode</li></ul>
<p><a href="https://discord.gg/UYAgnDc2fr" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzUyMzc4NDgucG5n/original/%2Fakpv5.png" loading="lazy"></a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/z8rjMXCAJOM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTI2MDc3LzUyMzc3MjMucG5n/original/Pytkhd.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTI2MDc3LzUyMzc3MTUucG5n/original/ARxHxd.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTI2MDc3LzU0MzUxMzAuanBn/original/iL9Nh%2F.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTI2MDc3LzU0MzUxMzcuanBn/original/cryCBI.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTI2MDc3LzUyMzc3MTYucG5n/original/nvkh1L.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTI2MDc3LzUyMzc3MTgucG5n/original/V0vvyl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTI2MDc3LzUyMzc3MjAucG5n/original/cMW%2Bed.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTI2MDc3LzUyMzc3MjQucG5n/original/qaNpZd.png]]
<p>"I needed to go home.</p>
<p>My car needed gas, and a lot of other things, but enough fuel to get home was enough for now. But still…</p>
<p>I should have just kept driving, even if it was a gamble on whether I’d make it or not.</p>
<p>I shouldn’t have stopped the car, I shouldn’t have gone into the station, I should have just kept going. But I didn’t. Now I just hope everything holds together while I find a way out.</p>
<p>No going back now."<br><br>In the year 199X, A team of game developers discovered a lost Commodore 64 game, and decided to remake it for the Playstation 1. Unbeknownst to them, they awoken great evils laying dormant in that Cassette Tape.<br><br>Created for Global Game Jam 2022<br></p>
<p>Credits:<br></p>
<p>Maxwell Kunze</p>
<p>Kyran Bush<br></p>
<p>Emma Stedman<br></p>
<p>Samuel Hundley</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/Ga4Q-4f_nV8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM3NjkzMS84MDIzNTM5LnBuZw==/original/yGYMjB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3NjkzMS84MDIzNTQ0LnBuZw==/original/v7jzfk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3NjkzMS84MDIzNTQyLnBuZw==/original/dQA2Qa.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3NjkzMS84MDIzNTUwLnBuZw==/original/i9FcXu.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3NjkzMS84MDIzNTQwLnBuZw==/original/whpGQ8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3NjkzMS84MDIzNTQ1LnBuZw==/original/TFyqEy.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3NjkzMS84MDIzNTQxLnBuZw==/original/K2YZj%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3NjkzMS84MDIzNTM4LnBuZw==/original/fP%2Bw9j.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3NjkzMS84MDIzNTQzLnBuZw==/original/QkXs%2BK.png]]
<p>
A complete tabletop RPG in zine form— Play as intrepid reporters in a 1920s New York filled with speakeasies, crime, and the occult!</p>
<p>Rules reference online at <a href="https://dangerousrpg.com/rules/" rel="nofollow noopener" referrerpolicy="origin">https://dangerousrpg.com/rules/</a><br></p>
<p>Everything you need to get started is included in the Zine. The game comes fully prepared with rumors and events, characters and locations that can be woven into play. Additional preparation is not required, though an interest in history can enrich the experience.</p>
<p>While a single session stands on its own, multiple sessions are meant to be strung together into a short campaign, during which recurring motifs and the progress of time tell a broader story about the city, characters, and publication.</p>
<p>This is for a <strong>PDF-only, digital version</strong> of the zine. <strong>60 pages</strong> long!</p>
<p>You can <a href="https://www.blankcodex.com/ks/landing" target="_blank" rel="nofollow noopener" referrerpolicy="origin">learn more about the game here</a>&nbsp;or check out the <a href="https://www.blankcodex.com/ks/campaign" target="_blank" rel="nofollow noopener" referrerpolicy="origin">successful Kickstarter campaign</a> here.</p>

[img width=500 [https://img.itch.zone/aW1nLzM2Mzg0MTIucG5n/original/9djtA6.png]]
<p>This is a customized GUI for ren'py. It includes the PNG files and all of the code already programmed into a renpy file (Not Built). You can take the code and assets out, or rename the renpy game file and use it.</p>
<p><strong>This was made in Ren'py 7.4.4.1439</strong>
</p>
<p><img src="https://img.itch.zone/aW1nLzU3NTA5NzkucG5n/original/mGsMbE.png" loading="lazy"></p>
<h3>Includes:</h3>
<ul><li>All Standard Screens
</li><li>Textbox, Choices, and Quick menu
</li><li>An "Extras" screen for Achievements, Endings and a CG gallery (Code Included!)
</li><li>Code for everything already plugged in
</li><li>Formatted for&nbsp;1080x1920
</li></ul>
<p>You can plug your script into the game file and change the name, or take the assets and code as needed.
</p>
<p>The game uses an open source font "Forum-Regular" which you can find for free:&nbsp;<a href="https://fonts.google.com/specimen/Forum?preview.text_type=custom&amp;query=forum" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Here</a>
</p>
<h3>Rights:</h3>
<p>If purchased you may use this project in commercial projects or free projects. You may not resell part of, or the whole GUI on its own. You can modify the GUI and code to suit your needs.
</p>
<p>You can credit me as Jaime Scribbles if you want, but it is not required.
</p>
<h3>Instructions:</h3>
<p>Download, unzip, and enjoy! Some additional instruction included in the download, see below!
</p>
<p><img src="https://img.itch.zone/aW1nLzQyMzMwMDQucG5n/original/u1oCc5.png" style="max-width: 100%" loading="lazy">
</p>
<figcaption>You can find the instructions.txt file under the custom GUI file after it is unzipped. This is the same place where you would find the game folder, and the errors, log and traceback.</figcaption>
<h3>Sample Assets:</h3>
<ul><li><a href="https://alte.itch.io/uncle-mugens-backgrounds" target="_blank">Background Art by Uncle Mugen</a>
</li><li><a href="https://dejinyucu.itch.io/agustina-visual-novel-sprite" target="_blank">Sprite by DejiNyucu</a>
</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAwOTQwMy81NzUxMTkwLnBuZw==/original/lT1%2BeG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwOTQwMy81NzUxMTkxLnBuZw==/original/r%2Ffn5U.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwOTQwMy81NzUxMTg3LnBuZw==/original/126DjF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwOTQwMy81NzUxMTg2LnBuZw==/original/D%2FpFk0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwOTQwMy81NzUxMTg4LnBuZw==/original/lhwbKZ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwOTQwMy81NzUxMTg5LnBuZw==/original/Fzxbyg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwOTQwMy81NzUxMTg0LnBuZw==/original/%2BjKOd5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwOTQwMy81NzUxMTg1LnBuZw==/original/Z7DIY2.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwOTQwMy81NzUxMTkyLnBuZw==/original/nJ6qqX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwOTQwMy81NzUxMTgzLnBuZw==/original/%2FlTDM%2F.png]]
<p><strong>What is Dark Sheep?</strong><br>Dark Sheep is a block-pushing puzzle game with horror elements, and a love letter to the Commodore 64, both in visuals and audio! Plays like classic Sokoban with new twists that force you to find creative solutions!<br><br><strong>The Lord Demands a Sacrifice.<br><img src="https://img.itch.zone/aW1nLzU3NDYyMjguZ2lm/original/p7z%2F%2BV.gif" loading="lazy"><br></strong>As a new member of an unholy cult, your job is to kidnap sheep, keeping them safe until the day of the ritual comes. Trick the sheep by using the grass as a bait to lure them into cages. Plan your moves ahead. Two sheep cannot take the same path. You‘ll do things in the name of your Dark Lord, that you wouldn't do in other puzzle games.</p>
<p><br><strong>Perform Dark Arts<br><img src="https://img.itch.zone/aW1nLzU3NDYyMzIuZ2lm/original/Ehbrme.gif" loading="lazy"><br></strong>They day of the ritual has come. Will you witness the Dark Lord's glorious return, or will things take an even more sinister turn? See the ritual through, and face the consequences that fall on you and your brotherhood.<br></p>
<ul><li>60 levels with increasing difficulty.<br>
</li><li>The soundtrack was created with genuine 1989 technology to bring that 8-bit, Commodore 64 inspired sound to life!<br>
</li><li>Keyboard only controls. Mouse is optional.</li><li>Optional CRT mode!<br>
</li></ul>
<p><em>Re-live the glory days of Commodore 64 gaming!</em><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/YCgefucezbo" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1nLzY5Mzg1MzAucG5n/original/5maH6q.png]]
<p>Darkspace is an immersive sci-fi experience.&nbsp;</p>
<p><em>It is the year 2271. Humanity has spread across the solar system,&nbsp;terraforming our moon and many others. You are the crew of the&nbsp;freighter ship Triton, bound for Earth from a mining colony on Charon&nbsp;at the edge of inhabited space. Though the journey takes nearly a&nbsp;decade, you and the rest of the crew will pass most of it in the&nbsp;dreamless sleep of your cryogenic pods...</em></p>
<p>Five players take on the roles of the crew of the Triton, an ill-fated cargo&nbsp;ship alone in dark space.&nbsp;</p>
<p>The captain, the doctor, the mercenary, the corpo, the synth <strong><em>—</em>&nbsp;</strong>one of you is a murderer.</p>
<p>Will you solve the mystery of the Triton&nbsp;before the ship's life support fails?</p>
<p><br></p>
<p>Darkspace can be played using&nbsp; any video&nbsp;conferencing software.&nbsp;The screens that will&nbsp;separate you and your fellow crew members are&nbsp;part of the game.&nbsp;</p>
<p>Unlike most murder mysteries no game master or non-player facilitator is needed. Just grab yourself and four friends and you are ready to play. The game file includes character backgrounds, secret information, and&nbsp;over an hour of custom audio to guide your experience.</p>
<p><br></p>
<p><em>Warning: Darkspace is intended to be an immersive experience that emulates an intense and stressful situation.</em></p>
<p><br></p>
<p></p>

[img width=500 [https://img.itch.zone/aW1nLzUxNjIxMDUuanBn/original/d2hkWk.jpg]]
<p><strong>The year is 1995, and you're newly single, ready to mingle...</strong> and fresh off the plane in&nbsp;Stradania, the dysfunctional micronation whose chief exports are pig iron, human misery, and radioactive souvenir mugs.&nbsp;</p>
<p>Your travel guides have steered you to the hottest nightclub in town. Now it's up to you to seize the evening by getting up close and intimate with Stradania's Most Eligible Vaguely Handsome Self-Absorbed Guys You Happened to Spot in the Club:</p>
<ul><li><strong>Dan -&nbsp;</strong>Half man, half existential crisis;&nbsp;subsists on a steady diet of Rimbaud, imported cigarettes, and unmarked pills.&nbsp;</li><li><strong>Fixer -&nbsp;</strong>The kind of person whose opinions have opinions. Don't get him started on data tapes - you'll be there all night.&nbsp;</li><li><strong>Sandman -</strong>&nbsp;Mysterious hacker of few words and even fewer discernible emotions. Smells vaguely of anti-flea shampoo.&nbsp;</li><li><strong>Shitparade -&nbsp;</strong>The leading authority on terrible VR trips, forever on the lookout for somebody to inflict them on.&nbsp;<strong></strong></li><li><strong>NoK00l - </strong>Stradania's&nbsp;techwear king. Once spent a month's salary on a package of "tactical socks," a fact&nbsp;he still brags about.&nbsp;</li><li><strong>Jack -&nbsp;</strong>Your friendly neighborhood bartender, always ready with a word of encouragement and a novelty cocktail. Oddly unfazed by his club's creepy decor.</li></ul>
<hr>
<p><em>Dates &amp; Wires&nbsp;</em>is the official otome spin-off of weekly webcomic&nbsp;<a href="https://www.drugsandwires.fail/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Drugs &amp;&nbsp;Wires</a><em>, </em>featuring the music of <a href="https://ningen.bandcamp.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">NINGEN</a>.<br></p>
<p><strong>FEATURES</strong></p>
<ul><li>6 available dates with multiple possible endings and unlockable souvenirs</li><li>2 - 3 hours of playtime, with&nbsp;more than 25,000 words of dialogue</li><li>Hidden scenes, dialogue, and more depending on play order and choices - multiple playthroughs recommended!<br>
</li><li>Gender-neutral protagonist</li></ul>
<p><strong>RATING &amp;&nbsp;CONTENT</strong><br></p>
<p><em>Dates &amp; Wires</em> is rated&nbsp;<strong>PG-13</strong> for minor language and drug references, mild suggestive content, and general cynicism.&nbsp;</p>
<p><strong>Also contains harsh experimental noise and two minor jump scare-ish moments.&nbsp;</strong></p>
<p><strong>TIPS FOR FIRST-TIME PLAYERS</strong></p>
<ul><li>The order in which you choose to tackle the dates will have long-term effects on dialogue, scenes, and options - don't be afraid to save and experiment a little to see what happens.
</li><li>There are seven unlockable souvenirs in the game, six of which are obtained from the main characters' best endings. The seventh? You might need to be a little cruel for that one...
</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAzNzQ3NS81OTUzMDU5LmpwZw==/original/cqrsEg.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzNzQ3NS81OTUzMDU4LmpwZw==/original/W3Ek2r.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzNzQ3NS81OTUzMDYwLmpwZw==/original/XSTRVY.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzNzQ3NS81OTUzMDYxLmpwZw==/original/gQng38.jpg]]
<p>Dawn of a Soul is a mathematical puzzle game starring chains and combos.</p>
<p>Progress through levels by building chains and combos to achieve the target score. In each level you have to find the perfect balanced path with a limited number of moves. Learn how to use different types of puzzle elements and their special features. Discover visual and mathematical patterns and adapt them to new challenges. Master your logical skills and beat all 64 puzzles.</p>
<div><h4>DRM free &amp; no installer. Just unzip it and play!</h4></div>
<h3>Key Features</h3>
<ul>
<li>Full control over chains and combos in a unique way</li>
<li>Challenging rise of the difficulty level</li>
<li>Basic mathematical &amp; logical skills</li>
<li>64 handcrafted Puzzles</li>
<li>4 gameplay areas of focus</li>
<li>Minimalistic fantasy setting and mystical atmosphere</li></ul>
<h3>Another puzzle game of mine, less hard but still very challenging!</h3>
<p><iframe frameborder="0" src="https://itch.io/embed/684780?bg_color=19171e&amp;fg_color=ffffff&amp;link_color=faa85b&amp;border_color=23202b" width="552" height="167" style="color: inherit; font-size: inherit"></iframe><br></p><h3><div>System Requirements</div></h3>
<p>Windows</p>
<ul>
<li>OS:&nbsp;Windows XP SP3 or later</li>
<li>Processor:&nbsp;SSE2 instruction set support</li>
<li>Memory:&nbsp;200 MB RAM</li>
<li>Graphics:&nbsp;Shader Model 3 Compatible</li>
<li>DirectX:&nbsp;Version 9.0</li>
<li>Storage:&nbsp;120 MB available space</li>
</ul>
<p>Mac OS X</p>
<ul>
<li>OS:&nbsp;Mac OS X 10.9+</li>
<li>Processor:&nbsp;SSE2 instruction set support</li>
<li>Memory:&nbsp;230 MB RAM</li>
<li>Graphics:&nbsp;Shader Model 3 Compatible</li>
<li>Storage:&nbsp;130 MB available space</li>
</ul>
<p>Linux</p>
<ul>
<li>OS:&nbsp;Ubuntu 12.04+</li>
<li>Processor:&nbsp;SSE2 instruction set support</li>
<li>Memory:&nbsp;200 MB RAM</li>
<li>Graphics:&nbsp;Shader Model 3 Compatible</li>
<li>Storage:&nbsp;130 MB available space</li>
</ul>
<p><a href="http://www.dawnofasoul.com/presskit" target="_blank" title="Presskit" rel="nofollow noopener" referrerpolicy="origin">Presskit</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/pynIisLIqTI" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTcwMDIwLzgxMTAwOS5wbmc=/original/7TtzRe.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTcwMDIwLzgxMTAxMC5wbmc=/original/foTeMr.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTcwMDIwLzgxMTAxMS5wbmc=/original/ihYkvy.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTcwMDIwLzgxMTAxMi5wbmc=/original/P7tMfP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTcwMDIwLzgxMTAxMy5wbmc=/original/v%2FcoH7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTcwMDIwLzgxMTAxNC5wbmc=/original/nEip7y.png]]
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzQ0OTY1MjEucG5n/original/gXZ4Qc.png" loading="lazy"></p>
<p>Discord:&nbsp;<a href="https://discord.gg/Z6MSezS" rel="nofollow noopener" referrerpolicy="origin">https://discord.gg/Z6MSezS</a></p>
<p>Twitter:&nbsp;<a href="https://twitter.com/BPotu" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/BPotu</a></p>
<p>Instagram:&nbsp;<a href="https://www.instagram.com/bernhardpgames/" rel="nofollow noopener" referrerpolicy="origin">https://www.instagram.com/bernhardpgames/</a></p>
<p><strong>What is real and what isn't?</strong><br><br>Dig deep down in a world of darkness. You have just your pipe and a strange kind of remote control. Uncover the secrets of your dreams and try to find out what is really going on. Are they just daydreams or your deepest nightmares?<br><br><img src="https://steamcdn-a.akamaihd.net/steam/apps/1300790/extras/giphy.gif?t=1603734633" loading="lazy"><br><strong>Story</strong><br>Are you awake? Do you live in an apocalypse? Or are those visions just dreams. What is real and what is not? Try to find it out with your mind, a pipe and a remote control.<br><br><strong>Gameplay</strong><br>Discover dark surroundings in this retro/psx style horror game. Fight against monsters and other dark occurences. Fight your way through dark tunnels, old houses and other dark and bizarre places to uncover the mysteries of this world. Puzzles, paper chases and other mysteries will occure during your journey.<br><br><strong>Features</strong></p>
<ul><li>PSX Style graphics</li><li>solve mysterious puzzles</li><li>battle against monsters or try to run away from them</li><li>solve even more mysterious paper chases</li></ul>
<p>All purchases will include a Steam key.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/sPbPQ-AJYRM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODAyNzIzLzQ0OTYwNTAuanBn/original/ifswcE.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODAyNzIzLzQ0OTYxNTcuanBn/original/DKJqY4.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODAyNzIzLzQ0OTYwNTEuanBn/original/q83m0Q.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODAyNzIzLzQ0OTYwMzcuanBn/original/xUW2bE.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODAyNzIzLzQ2MjI0OTkuanBn/original/7EbG2H.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODAyNzIzLzQ2MjI1MDAuanBn/original/u4OcKo.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODAyNzIzLzQ2MjI1MDEuanBn/original/0bNnwH.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODAyNzIzLzQ2MjI1MDIuanBn/original/sqBINL.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODAyNzIzLzQ2MjI1MDUuanBn/original/p%2BbeRw.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODAyNzIzLzQ2MjI1MDMuanBn/original/7ZSnp7.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODAyNzIzLzQ2MjI1MDYuanBn/original/%2FUiaVz.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODAyNzIzLzQ2MjI1MDQuanBn/original/G52k7y.jpg]]
<p>In this 2D, narrative-based game, you assume the role of the <strong>Grim Reaper</strong>... on an office job.&nbsp;<br></p>
<p>Your job is to decide which people are going to live or die. The consequences of your choices are yours to bear, while the mystery of your incarnation awaits revelation!</p>
<p>Death and Taxes is a game in the vein of great narrative-based indie titles, such as "Papers, Please", "Reigns", "Beholder" and "Animal Inspector", to name a few. Your choices will affect the world around you, and it's up to you as Grim Reaper of Cosmopolis City to keep the chaos away. Meet mysterious office ghosts, foil plots to destroy the world and rise through the ranks of Reapers all the way up to middle-management, if you dare!<br></p>
<p>Meet your Fate.</p>
<p>We are released! Try out our demo as well!</p>
<p><strong>Wishlist us on <a href="https://store.steampowered.com/app/1166290/Death_and_Taxes/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Steam</a>!</strong></p>
<p><span class="">Join us on&nbsp;Discord!&nbsp;</span></p>
<p><a href="https://t.co/Ze2MycaWvL?amp=1" title="http://tiny.cc/dnt" target="_blank" dir="ltr" class="" rel="nofollow noopener" referrerpolicy="origin"><span class="">http://</span>tiny.cc/dnt</a><br></p>
<p>Follow us on Twitter:&nbsp;</p>
<p><a href="https://twitter.com/DeathNTaxesGame" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/DeathNTaxesGame</a></p>
<p>Laugh at and share our memes on Facebook:&nbsp;</p>
<p><a href="https://www.facebook.com/DeathandTaxesgame/" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">https://www.facebook.com/DeathandTaxesgame/</a></p>
<p>We also have a website!</p>
<p><a href="http://deathandtaxesgame.com/" rel="nofollow noopener" referrerpolicy="origin">http://deathandtaxesgame.com</a><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/TYowXJGbhQE" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDc1ODE0LzI2OTg2OTAucG5n/original/YWmlzs.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDc1ODE0LzI2MzkwMDIucG5n/original/1bHKnX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDc1ODE0LzI2OTg2OTIucG5n/original/5MiTNA.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDc1ODE0LzI2OTg2OTEucG5n/original/JYeo6F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDc1ODE0LzI2OTg2OTMucG5n/original/Sg1GyU.png]]
<h2>You are Death</h2>
<p>The Grim Reaper, the dark collector of lost souls. Unfortunately, your horse has fallen ill so you need to drive a bus instead.</p>
<p>Navigate traffic, shoddy roads, and try not to run out of gas while gathering up angels and demons. Deliver these wayward souls to heaven or heck across 50 levels&nbsp;in this simple retro puzzle game.</p>
<h3>Featuring</h3>
<ul><li>50 levels of increasing difficulty</li><li>Retro, chunky 1-bit pixel art</li><li>Broken roads, moving cars, gas cans, lots of twists and turns that&nbsp;up the challenge</li><li>Original authentic Chiptune soundtrack by Abstraction</li><li>Controller supported!</li><li>Turn-based puzzles and fast restarts, no time pressure!</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/zTSZDCDXLPc" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjcxNjU0LzQwNTI4NDEuZ2lm/original/kFTSl8.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjcxNjU0LzM2NjI2OTAucG5n/original/XPpyCs.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjcxNjU0LzM2NjI2ODkucG5n/original/plRtMJ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjcxNjU0LzM2NjMwNTUucG5n/original/YRsXYj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjcxNjU0LzM2NjI2ODgucG5n/original/3wyz%2B6.png]]
<p><em>Dee Dum</em> is a 2D puzzle game with a simple premise - both characters move and jump at the same time, but their homes are in different spots.<br>As the home locations move and the world around them grows larger, the possibilities for brain-tickling puzzles become endless.</p>
<p>The in-browser version is just a demo - the first five levels to whet your appetite.</p>
<p>The full version includes 75 levels that will truly challenge your puzzle game playing prowess. &nbsp;Can you beat them all?&nbsp; Can you even unlock them all?</p>
<p><a href="https://eeease.itch.io/dee-dum-mobile" target="_blank">The (free) &nbsp;mobile version</a> has a bunch of in-app-purchases like hearts and level packs. &nbsp;This has none of that nonsense. &nbsp;It's a pure puzzle game where you have to get better to unlock the harder levels.</p>
<p>Note: <strong>If the game does well</strong> (greater than $100 across all platforms), level packs with new mechanics will be released. &nbsp;Your purchase of this version makes you eligible for receiving future level packs <em>for free</em>.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/mdKgKdjjVc8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTY4MTM2Lzc4MjU5Mi5wbmc=/original/v%2BxQbc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY4MTM2Lzc4MjU5NC5wbmc=/original/Auy%2Bvg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY4MTM2Lzc4MjU5My5wbmc=/original/0AkVAF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY4MTM2Lzc4MjU5Ni5wbmc=/original/zdLPQa.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY4MTM2Lzc4MjU5NS5wbmc=/original/dSan9G.png]]
<h3><a href="http://aamatniekss.itch.io/" style="font-size: 40px">My other packs</a></h3>
<h3></h3>
<h2>Deep Forest - Limited 16 colour palette tileset!</h2>
<p><strong>Asset pack in the same series as:</strong></p>
<ul><li><a href="https://aamatniekss.itch.io/ancient-temple-tileset">Ancient Temple - 16 Colour Tileset</a></li></ul>
<p><br></p>
<p><strong>This is a 16x16px tileset with slope tiles and full 16 tile variant tileset.</strong></p>
<p><strong>The tileset uses a 16 colour palette called #NA16 that i've created.&nbsp;The palette is included with the assets.</strong></p>
<p><strong>Full Details:</strong><br></p>
<ul><li>Full 16 tile variant tileset</li><li>slope tiles for both grass and dirt</li><li>dirt tiles for variation</li><li>verticaly tileable trees</li><li>horizontally tileable tree platforms</li><li>Lighter leaf tileset</li><li>Darker leaf/bush tileset&nbsp;</li><li>Spikes</li><li>Water tile</li><li>Lighter and darker hanging vine tiles</li><li>Flowers for decoration</li></ul>
<p><br></p>
<p><strong>LICENCE: This asset pack&nbsp;can be used in both&nbsp;free and commercial projects. You can modify it to suit&nbsp;your own needs. Credit is not necessary, but appreciated.&nbsp; You may not redistribute it or resell it.</strong></p>
<p>Follow me on Twitter for updates on more Asset Packs -&nbsp;<a href="https://twitter.com/Namatnieks" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/Namatnieks</a></p>
<p>I am now also on&nbsp;<strong>Patreon</strong>, where by pledging you can get access to all new asset pack releases -&nbsp;<a href="https://www.patreon.com/Namatnieks" rel="nofollow noopener" referrerpolicy="origin">https://www.patreon.com/Namatnieks</a><br></p>
<p><strong>And if you like the pack remember to Rate it! :)&nbsp;</strong><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzQyMTUyLzE2OTYwOTEuanBn/original/TnYJ4P.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQyMTUyLzE2OTYwODkuanBn/original/Tm50Yd.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQyMTUyLzE2OTYwOTAuanBn/original/1V%2BuRf.jpg]]
!sort[rating]
<p>The first release from b<em>ranching narratives</em>!</p>
<p>Defend The Tower is a flick and defend tower building game for <strong>2-4 players </strong>played in <strong>5-10 minute</strong> rounds.</p>
<p>Use <strong>existing dice and meeple</strong> and turn gaming night downtime into epic battles.</p>
<p>Only one can take the (potentially fictional) crown - make sure it's you!</p>
<p><br></p>
<p>Simple to teach and learn - Defend The Tower is fun for any age and will have you rolling back for more.</p>
<p><br></p>
<p>branching narratives supports all gamers and equity for all - we believe there is no place for intolerance in society or round our gaming tables.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNDIyMy84Mjk5NDg5LmpwZw==/original/Za8KNi.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNDIyMy84Mjk5ODYwLnBuZw==/original/Hfy8NF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNDIyMy84Mjk5ODYxLnBuZw==/original/byZUoX.png]]
<h4>A minimalist puzzle game about life, death, and clones.</h4>
<p><em>Created by <a href="https://twitter.com/_ericfreeman" rel="nofollow noopener" referrerpolicy="origin">Eric Freeman</a> &amp; <a href="https://twitter.com/_danielleart" rel="nofollow noopener" referrerpolicy="origin">Danielle Yoseloff</a></em></p>
<p></p>
<p><br></p>
<h5>Features</h5>
<ul><li>50 levels</li><li>Abstract sci-fi story<br>
</li><li>Dark Mode and Colorblind Mode</li><li>Localized in 13 languages (English, French, Italian, German, Spanish, Arabic, Japanese, Korean, Portuguese, Russian, Simplified Chinese, Traditional Chinese, and Hindi)</li></ul>
<p><br></p>
<h5>Reviews</h5>
<p>“As debut efforts go, Déjà Vu is a great go of it. The puzzle designs are unique and well thought out, and the cloning mechanic adds a great twist to the rule-set that requires forward thinking in ways other titles in the genre haven’t needed before.”<br><a href="https://www.xboxtavern.com/deja-vu-review/" rel="nofollow noopener" referrerpolicy="origin">Xbox Tavern</a><br><br>“Finally, Danielle and Eric decided that the pièce de résistance was cloning….. Oh developers, you know how to make a man work for his game completion. This last element was a masterstroke, and it made me think outside of the box. You must think several moves ahead, inputting the path you wish your clones to take. Once you are ready, you set them on their way, all while you try to progress through the stage.”<br><a href="https://www.bonusstage.co.uk/archives/171053" rel="nofollow noopener" referrerpolicy="origin">Bonus Stage</a><br><br>“It’s these tricks which Déjà Vu keeps hidden until the right time, which puts an unexpected twist on the puzzling action to keep things fresh and interesting. It feels original, innovative and is well-paced”<br><a href="https://www.thexboxhub.com/deja-vu-review-surprisingly-unfamiliar/" rel="nofollow noopener" referrerpolicy="origin">TheXboxHub</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/77evGtcUDIk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTEyNTMwMC82NTEyOTk2LnBuZw==/original/KRND8A.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEyNTMwMC82NTEyOTkxLmpwZw==/original/HRceFI.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEyNTMwMC82NTEyOTc3LnBuZw==/original/lVWh4e.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEyNTMwMC82NTEzMTczLnBuZw==/original/vWwkzA.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEyNTMwMC82NTEyOTc5LnBuZw==/original/WhcF8%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEyNTMwMC82NTEzMTk1LnBuZw==/original/bBmg8o.png]]
<p>Why do so many casual games tell you to stop playing them?</p><p>If you've ever run out of lives in Candy Crush Saga or played a Zynga game, you've encountered an energy mechanic – you run out of a resource, and have to stop playing while it regenerates or pay money to continue.</p><p>In this short collection of essays, Zoya Street explores energy mechanics. Each essay weaves in a new idea, and then applies those ideas to key examples from social and mobile gaming, bringing together game design theory with queer theory, anthropology and a study of the recent history of social game design.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjY2NTIvMTA3ODA1LmpwZw==/original/i83Q6c.jpg]]
<$button>
<$action-deletetiddler $filter="[has:field[url]]"/>
Delete tiddlers tagged "[has:field[url]]"
</$button>
<p>The old  empire of Tuje committed many foolish acts in their search for power,  and one of them was to dig so deep they tore a hole in reality. Now, a  thousand years later, a strange elevator-like device has been discovered  above an apparently bottomless borehole. One expedition went down, and  the elevator returned, empty. Now it is up to you to find out what  happened, rescue any survivors, and uncover the secrets of this strange  site.</p><p><br></p>
<h1 class="text-center">What sort of system to use?</h1>
<p><em>New: 13th Age Roleplaying Game compatibility guide also included!
 </em></p>
<p>You don't need much other than some kind of mechanism for resolving  outcomes based on players' abilities. It was playtested using a very  minimal system we made up on the spot. The decisions the players make  are most important.
 </p>
<p>It's assumed magic exists, technology is limited, and little is known  of what happens if you dig too deep underground. It could work for many  popular and unpopular fantasy adventure systems, so long as your table  likes character-driven stories, and could probably work with many modern  or sci fi games, with some adaptation.
 </p>
<p>There is the opportunity to add combat, but if it combat occurs, you  will need to select appropriate monsters for your game system. It is not  a major focus of the adventure.
 </p>
<p>This game lasts about one session, but could be added to a larger dungeon complex or other area to explore. <br></p><p><br></p>
<h1 class="text-center">Accessibility
</h1>
<p><strong>Content warning:</strong> mind control, claustrophobia, death.      </p>
<p>A screen reader friendly pdf is included. <br></p><p><br></p>
<h1 class="text-center">Legal</h1>
<p>Copyright 2021 Seedling Games, except for the art used under license:
 </p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elevator art and map also copyright Seedling Games
 </p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Art of Yidi-myana: Publisher’s Choice Quality Stock Art Copyright Rick Hershey/ Fat Goblin Games
 </p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Art of Gasu-nyeji: Copyright Daniel Comerci – danielcomerci.com
 </p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Some artwork © 2015 Dean Spencer, used with permission. All rights reserved. (Specifically, Svarthix and Dedazeh)
 </p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Paper frames copyright Direquest
 </p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Artwork used with permission by Charles Ferguson-Avery of Feral Indie Studio (black and white art in the tunnel)
 </p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Remainder of the art copyright Perplexing Ruins, licensed via the patreon <a href="https://www.patreon.com/perplexingruins" rel="nofollow noopener" referrerpolicy="origin">https://www.patreon.com/perplexingruins<br></a></p>
<p>13th Age and associated marks and logos are trademarks of Fire Opal  Media Inc., and are used under license. See 13thAge.com for more  information on the 13th Age Roleplaying Game. The 13th Age Roleplaying  game is published under exclusive license to Pelgrane Press Ltd.<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MjAyMi82NjkxNjM1LnBuZw==/original/yPA%2FAZ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MjAyMi82NjkxNjM4LnBuZw==/original/Tz6Ha6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MjAyMi82NjkxNjQ0LnBuZw==/original/YhTdbk.png]]
<p><img src="https://img.itch.zone/aW1nLzM5ODc5NzYucG5n/original/GWRugP.png" loading="lazy"><br></p>
<p><strong>DELVE: A Solo Map Drawing Game </strong>is a map drawing game that puts you in control of a dwarven hold as you discover the horrors that lurk below. This 44 page zine has everything you need to generate natural formations, forgotten ruins, enemies, wyrd magics, and ancient monstrosities. It has a simple turn-based combat system, rules for building your hold and optional challenges for a harder experience.<br></p>
<p>Inspired by games like <span class=""><em>Dwarf Fortress</em></span> and <span class=""><em>Dungeon Keeper</em></span><em>,</em> <span class=""><strong>DELVE</strong></span> aims to capture that feeling of building and protecting a fortress in an unforgiving subterranean world.</p>
<p>All you need to play is, a pencil, paper (preferably 1" grid), and a deck of playing cards. </p>
<figure><img src="https://img.itch.zone/aW1nLzM5ODc5NzgucG5n/original/X1%2FGJB.png" loading="lazy"><br></figure>
<p><em>The Under-King has put out a bounty to all the holds demanding a Void Crystal, a rare and powerful gem found only in the deepest caverns. </em></p>
<p>Each round your dwarves will mine another square of the grid, you draw a card from your deck of playing cards and see what they found. Hearts ♥ and Diamonds ♦ are resources and trade goods that you'll use for building and hiring units while Clubs ♣ and Spades ♠ are natural formations and forgotten ruins. From ancient libraries to goblin lairs, these subterranean locales will become part of your hold's unique layout and may provide unexpected benefits. Or you might just unleash a horde of ravenous insects in which case, you'll need to fight.</p>
<p>Combat in <strong>DELVE</strong> is designed to allow for forward planning and strategic thinking without weighing you down with book-keeping. Enemies follow a tower-defense style path towards your hold's entrance while you move your units in simple turn-based tactical combat. Utilise traps, ranged attacks, and special units to face deadly foes or record your hold's epic demise.</p>
<p><strong>DELVE</strong> will also be supported with ongoing updates and expansions which bring new features such as farming, trading, the Cave Sea, and more. Or you can check out <strong><a href="https://blackwellwriter.itch.io/rise-a-game-of-spreading-evil">RISE</a> </strong>(a dungeon building variant which tasks you with keeping your mutinious minions happy) or <strong><a href="https://blackwellwriter.itch.io/umbra-a-solo-game-of-final-frontiers">UMBRA</a></strong> (a sci-fi variant with challenges you with colonising strange alien planets).<br></p>
<p>Sidebar images provided by, in order: Ed-Lynden Bell, <a href="https://twitter.com/UnMech" rel="nofollow noopener" referrerpolicy="origin">@Unmech</a>, <a href="https://twitter.com/Shanice_Fagan" rel="nofollow noopener" referrerpolicy="origin">@Shanice_Fagan</a>, and myself. <br></p>
<p><strong>Join the Discord - <a href="https://discord.gg/wr9x25s" rel="nofollow noopener" referrerpolicy="origin">https://discord.gg/GygdYnA</a></strong></p>
<p><strong>Physical Copies can be ordered from <a href="https://www.blackwellwriter.com/" rel="nofollow noopener" referrerpolicy="origin">https://www.blackwellwriter.com/</a></strong><strong><br></strong></p>
<p><strong>Expansion Links:</strong><strong></strong></p>
<ul><li><a href="https://blackwellwriter.itch.io/delve-feast-and-famine">Feast and Famine<br></a></li><li><span class=""></span><a href="https://blackwellwriter.itch.io/delve-necromancy">Necromancy</a></li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzE5NDAyLzQxODk4MDkucG5n/original/Nf%2BPCa.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzE5NDAyLzM5ODgxMjMuanBn/original/EelMBC.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzE5NDAyLzM5ODgwNDkucG5n/original/4TPsm7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzE5NDAyLzM5ODgwNTgucG5n/original/PEPtJa.png]]
<p>Delve into the shifting dungeons on your hunt for the Yithidian orb, but getting it might just be the easy part.&nbsp;<em>Delver</em>&nbsp;is a single player first-person action roguelike dungeon crawler, just like you wished they used to make.<br><br>Slay monsters, blast wands, hoard potions, and loot&nbsp;<em>everything.</em><br><br><strong>Features</strong></p>
<ul><li>A silky smooth mix of 90s FPS combat with classic RPG mechanics.</li><li>In these dungeons once you're dead you stay dead. Permadeath means that when you die, you begin each run into the dungeon anew.</li><li>Tough as nails gameplay will test your skills, no grinding will save you here.</li><li>A procedural dungeon that will keep you on your toes, no two runs will ever be the same.</li><li>Delicious chunky pixels!</li></ul>
<p>Easy to pick up gameplay, but difficult to master. The dungeon has been waiting for you.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/42POuwmyj5o" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzIzMTI5LzQwMTA3NjcuanBn/original/W%2FfkdM.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzIzMTI5LzQwMTA3NjMuanBn/original/0lCgDo.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzIzMTI5LzQwMTA3NjQuanBn/original/iPFYeW.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzIzMTI5LzQwMTA3NjYuanBn/original/FanaIA.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzIzMTI5LzQwMTA3NjUuanBn/original/IPc9jY.jpg]]
<p>The Democratic Socialism Simulator lets you play as the first socialist president of the United States. Can you redistribute power and wealth while addressing the climate crisis?&nbsp;&nbsp;</p>
<p>Enact radical reforms, tax the rich, transform the economy, tackle the most pressing issues without alienating voters or bankrupting the government. But beware: the ruling class won't give up its power easily. Even your closest allies may turn on you.<br></p>
<p>*Hundreds of choices based on existing policy proposals<br>*Randomly generated scenarios and multiple endings<br>*Room for different play styles, ideologies, and strategies<br>*A cast of extremely opinionated anthropomorphic animals<br>*Original Soundtrack by <a href="http://jessestil.es/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Jesse Stiles</a></p>
<p>The Democratic Socialism Simulator is an attempt to prefigure the opportunities and challenges of a Sanders (or Sanders-like) presidency.&nbsp; It&nbsp;is meant to entertain, enrage, provoke socialist-curious players as well as comrades on the front lines of the political revolution.</p>
<p><a href="https://play.google.com/store/apps/details?id=com.molleindustria.demsocsim" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Also available for Android devices</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTcxODE3LzMwMDgwNzgucG5n/original/lZ7mth.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTcxODE3LzMwMDgwNzkucG5n/original/A3UNJa.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTcxODE3LzMwMDgwODAucG5n/original/BOqE9d.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTcxODE3LzMwMDgwODEucG5n/original/vZK1xf.png]]
<p><span></span></p>
<p><strong>When th're is something strange in thy fantasy city, who is't shall thee summon? DEMONBREAKERS!</strong></p>
<p>If you're thinking Ghostbusters, but in the setting of Monty Python and the Holy Grail, you're in the right headspace for DEMONBREAKERS... Lets go!&nbsp;</p>
<p>You are Demonological Lorists, recently unemployed after the College Arcane terminated your grant due to your allegedly sloppy methods and questionable conclusions. In desperation you’ve started an exorcism business, just as Hell’s Gates have opened in your fantasy city, unleashing a torrent of demonological activity.&nbsp;
 					
 				
 			
 		
</p>
<p>This is a GM-full game, and all players will cooperate to create scenes, introduce consequences, and resolve conflicts.&nbsp;The rules are one page. The game uses mechanics found in&nbsp;no dice, no masters games. And there are&nbsp;card-driven prompts to help players embody npcs and opposition.</p>
<p>This is a hack of the fantastic little one page game "Sabotage" by James Hanna (<a href="https://bullfrogjam.itch.io/sabotage">https://bullfrogjam.itch.io/sabotage</a>).</p>
<p>Demonbreakers was a submission to the 2021 One Page RPG Hackathon jam (<a href="https://itch.io/jam/one-page-hack-a-thon-2021">https://itch.io/jam/one-page-hack-a-thon-2021</a>), and the&nbsp;Finish your Damn RPG jam (<a href="https://itch.io/jam/finish-your-damn-rpg-jam">https://itch.io/jam/finish-your-damn-rpg-jam</a>).<br></p>
<p>This is a pre-playtest version of the game. Your support is appreciated but not&nbsp;expected. If you'd like to kick the tires coughing up money, feel free to grab a community copy, they are for you!</p>
<p>Released under the CC 4.0 license<br></p>
<p><strong>SHAMELESS PLUG: If you are a fan of these kinds of games, you'll love what I&nbsp;have in store for season 2 of Instadeath Survivors Support Group. Subscribe now so you don't miss the awesome!&nbsp;Listen to the&nbsp;<a href="https://anchor.fm/instadeath" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Podcast</a>. Watch on&nbsp;<a href="https://www.youtube.com/channel/UCwTrrTuIv-EcWMhvuEJSPzQ" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Youtube</a>.</strong></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/-R5OYmSa-5c" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMxMzUzMC83NjM3ODQ4LnBuZw==/original/48ehKK.png]]
<p>
The fantasy bullet battle to end monstergirl genocide! Turn hateful humans into lovable demons in this 90s arcade style shooter, inspired by <em>Raiden Fighters</em>, <em>Strikers 1945</em>, and <em>Battle Garegga</em>.</p>
<p>The exiled princess Amelia has turned into a succubus and joined the peaceful monstergirl tribe. Then invaders arrive led by her sister Angelina. Fighting back with her newfound powers of hypnosis and demonization she departs to take on the kingdom in a desperate bid to save her new people.</p>
<ul><li>Seven challenging hand-crafted levels packed with beautiful pixel art - defend your forest, fight through towns, break monstergirls out of dungeons, race against cavalry and more</li><li>Battle fearsome enemy forces - masses of infantry and artillery, nimble swordsmen and assassins, tricky spellcasters and mighty magical constructs</li><li>Capture their souls - transform them into fellow demons and watch their powers grow with yours</li><li>Simple game systems reward natural and intuitive play - stay alive, shoot and bomb, and the rest will follow</li><li>Three difficulty levels - beginners, enthusiasts, and experts can all enjoy
</li><li>Rock out to a gritty, stompy YM2612 FM synth soundtrack
</li><li>Rich retro visual customization - portrait or landscape, low or high res, smooth or sharp pixels, stretch or no stretch
</li><li>A twist on the old monster-slaying story - includes free digital comic book revealing events before the game</li></ul>
<h1>Reviews</h1>
<p>
</p>
<p>“absolutely fantastic. It is unique and worth your time...I love this visual style...it hit me with nostalgia in a way that a lot of these...'nostalgic' games just don't do for me.”</p>
<p> <a href="https://www.youtube.com/watch?v=F_kMbAAn8X8" target="_blank" rel="nofollow noopener" referrerpolicy="origin">The Electric Underground</a> <a href="https://www.youtube.com/watch?v=ARlyXXCQER0&amp;t=890" target="_blank" rel="nofollow noopener" referrerpolicy="origin">#2 Shmup of 2020</a><br></p>
<p>“everything is measured to the millimeter so that the experience is as satisfactory as possible....one of my games of the year....Iori Branford has graduated with a superb degree, unashamed, profound, intelligent, full of justice and feeling.”</p>
<p><a href="https://steamcommunity.com/linkfilter/?url=https://islademonos.com/analisis/demonizer-el-odio-al-diferente/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Isla de Monos</a></p>
<p>“Demonizer is a very entertaining STG for new players to the genre...does a really good job accompanying with a simple tutorial, easy mechanics and makes it very quick to practice any level you want.”</p>
<p><a href="https://steamcommunity.com/linkfilter/?url=https://www.bitgamereviews.com/demonizer/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Bit Game Reviews</a><br></p>
<figure><a href="http://www.indiedb.com/games/demonizer" rel="nofollow noopener" referrerpolicy="origin"><img src="http://button.indiedb.com/popularity/medium/games/54464.png" alt="Demonizer" loading="lazy"></a><br></figure>
<h1>Controls</h1>
<table><thead><tr><th>Action</th><th>Xbox controller</th><th>Other controller</th><th>Keyboard</th><th>Mouse</th><th>Android touchscreen<br></th></tr></thead><tbody><tr><td>Move</td><td>D-pad</td><td>X and Y axes<br></td><td>Arrow keys<br></td><td>Move mouse</td><td>1 finger drag<br></td></tr><tr><td>Fire</td><td>X button<br></td><td>Button 1<br></td><td>Z key<br></td><td>Button 1<br></td><td>Automatic<br></td></tr><tr><td>Alt Fire<br></td><td>A button<br></td><td>Button 2<br></td><td>X key<br></td><td>Button 2<br></td><td>1 finger touch<br></td></tr><tr><td>Bomb</td><td>B button<br></td><td>Button 3<br></td><td>C key<br></td><td>Button 3<br></td><td>2 fingers touch<br></td></tr><tr><td>Pause</td><td>Start button<br></td><td>Button 4<br></td><td>Esc key<br></td><td>Esc key<br></td><td>Back button<br></td></tr></tbody></table>
<h1>How&nbsp;to Play</h1>
<ul><li>Knock out enemies with primary fire (forward), alternate fire (lock-on), bomb</li><li>Capture red enemy hearts to turn them into friendly succubi</li><li>Capture blue enemy hearts for score/bomb/powerup<ul><li>Power level 0: single shot</li></ul><ul><li>Power level 1: dual shot</li></ul><ul><li>Power level 2: friends collect hearts&nbsp;-&nbsp;alt-fire pulls them&nbsp;back&nbsp;to&nbsp;safety</li></ul><ul><li>Power level 3: autocollect all onscreen hearts</li></ul><ul><li>Max level: friends assault enemies&nbsp;-&nbsp;alt-fire pulls&nbsp;them&nbsp;back&nbsp;to&nbsp;safety</li><li>The more blue hearts collected without losing a heart or a friend, the higher their point value</li></ul></li><li>Bomb can rescue falling hearts</li><li>Reach the score on the top right for extra life</li><li>Rescue and protect friendly monstergirls for extra score</li></ul>
<h1>Guides &amp;&nbsp;Documentation</h1>
<h3><a href="https://ioribranford.itch.io/demonizer/devlog/194313/configuration-guide" target="_blank">Configuration Guide</a></h3>
<h1>Stream/Review Keys</h1>
<p>To stream the full game, you can request a key at Keymailer:<br></p>
<iframe scrolling="no" src="https://embed.keymailer.co/g/games/81646/request_button/_2196b0ee4b" style="" width="200px" height="50px"></iframe>
<p>Or Woovit:</p>
<p><iframe src="https://woovit.com/widget/offer/demonizer/10" width="250px" height="280px" frameborder="0"></iframe></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/TGYRJMf5UbM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODM0MzQvNjY3ODIzNS5qcGc=/original/vKIuW%2B.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODM0MzQvNjY3ODIzNi5qcGc=/original/V4qqEy.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODM0MzQvNjY3ODI0My5qcGc=/original/7UHh4o.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODM0MzQvNjY3ODIzNy5qcGc=/original/7o6omO.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODM0MzQvNjY3ODI0MS5qcGc=/original/DikHmN.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODM0MzQvNjY3ODIzOS5qcGc=/original/NP2j7F.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODM0MzQvNjY3ODI0Mi5qcGc=/original/r%2FkLiY.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODM0MzQvNjY3ODI0MC5qcGc=/original/yeLn9y.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODM0MzQvNjY3ODIzOC5qcGc=/original/YtVLuU.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODM0MzQvNjY3ODI0NS5qcGc=/original/0TbhWs.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODM0MzQvNjY3ODI0NC5qcGc=/original/ZvZhGC.jpg]]
<h4><img src="https://img.itch.zone/aW1nLzM0MDE3NDYuanBn/original/KPFr5s.jpg" loading="lazy"></h4>
<p><br></p>
<h4>10:50 PM.</h4>
<p><em>My bichette is waiting at home and I’m determined to bring her something special. The little dépanneur on this side street may still be open. It’s my last chance.</em><br><br></p>
<p><img src="https://img.itch.zone/aW1nLzM0MDE2NjIucG5n/original/Kgn8sn.png" loading="lazy"></p>
<h4>A SMALL GAME BY G.P. LACKEY</h4>
<p>You’re out on a rainy late-night quest for a very particular gift. The only problem is you don’t know what it is yet...</p>
<p>Finding a corner store that’s open at this hour must be kismet! With the help of its peculiar proprietor and her unusual inventory, you’re sure to find something worth your search. What will the gifts you pick foretell?</p>
<p>The dep is closing in an hour, so be forewarned… <strong>this is a single-sitting game</strong>.</p>
<h4>KEY FEATURES</h4>
<ul><li>Shop and explore at your own pace, discovering new secrets the longer you stay</li><li>Collect as many or as few gifts as your heart desires, budget is of no concern when it comes to your love!</li><li>Set in a magical, mystical interpretation of Montréal</li><li>Estimated completion time: 1–2 hours, a miniature jaunt</li><li>Fully bilingual (English and French with a Québec twist) - switch as you like!</li></ul>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzM0MDE2NjQucG5n/original/J0uyXJ.png" loading="lazy"></p>
<h4>ABOUT KO_OP mini</h4>
<p>KO_OP is making space for its team to be able to experiment, without the demands of a large production. This atmospheric little walkabout game is the first from our new initiative, KO_OP mini.<br></p>
<p><img src="https://img.itch.zone/aW1nLzM0MDE2NjYucG5n/original/ysgsOA.png" loading="lazy"><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/BC6rjLto4TY" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjI1OTk3LzE1MTg0NDguZ2lm/original/gpJPsr.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI1OTk3LzM0MDYxNzIuanBn/original/0GDdsn.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI1OTk3LzM0MDYxNjkuanBn/original/CV1HRQ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI1OTk3LzM0MDYxNjguanBn/original/wnRTw4.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI1OTk3LzM0MDYxNzEuanBn/original/Xh46kX.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI1OTk3LzM0MDYxNzAuanBn/original/kq90Up.jpg]]
<figure></figure>
<p>In a flooded future world rife with violence, rumors of killer machines have spread far and wide. As a number of factions emerge – violently vying for power – you become the sole defender of humanity’s last standing government. Only you can create the ultimate squad and save humanity in this turn based, tactical RPG with roguelike elements.<br></p>
<p><strong>Get a free Steam key with your purchase!</strong></p>
<h3>REVIEWS</h3>
<p>“One of the most detailed and immersive turn-based strategy games I have come across”<br>8/10 - <a href="https://www.bonusstage.co.uk/2020/06/06/depth-of-extinction-review/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Bonus Stage UK</a><br><br>“Not everyone will love Depth of Extinction's open-ended campaign as much as I did but it's a top-notch SRPG no matter how you slice it.”<br>4/5 - <a href="https://videochums.com/article/dark-indie-games#depth-of-extinction" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Video Chums</a><br></p>
<h3>GAME FEATURES</h3>
<ul><li>Explore a sunken world and build your own story&nbsp;</li><li>Familiar tactical options with a few new twists including action refunds, stealth positioning and ambushes</li><li>Create the ultimate squad from 10 different character classes including the brand new SABOTEUR</li><li>Outfit your team with 115 different weapons, armor, and items</li><li>Fight 30+ unique enemies from 5 factions</li><li>Position your team and then get the kill with stealth</li></ul>
<h3>WHAT HAS CHANGED SINCE LAUNCH?</h3>
<p>The game had some issues at launch but has had <strong>six</strong> major updates since then to directly address much of the feedback in that initial wave of reviews.&nbsp;</p>
<ul><li>Official support for <strong>English, Spanish, German, Japanese and Simplified Chinese</strong></li><li>Unofficial support (google translate) for French, Italian, Russian, Portuguese and&nbsp;Korean (only when downloading from itch.io)</li><li>More maps that require different tactics</li><li>Over powered skills and combos were rebalanced</li><li>More weapons, effects and death animations</li><li>More story cutscenes and a "proper" ending</li><li>Refined the existing enemies and created a few new ones</li><li>Full controller support</li><li>Additional options, including Color Blind mode</li><li>Increased turn speed and reduced friction in many of the menus</li><li>Casual mode for those that felt the original game was too punishing</li></ul>
<h5><br><a href="https://discord.gg/Y6taVrh" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzcxODcwODAucG5n/original/PbFtnL.png" alt="Join our Discord" title="Join our Discord" loading="lazy"></a></h5>
<h2>Also Available for</h2>
<table><tbody><tr><td class="text-center"><a href="https://www.nintendo.com/games/detail/depth-of-extinction-switch/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzM2MDg1MjYucG5n/original/LVbUfz.png" loading="lazy"></a></td><td class="text-center"><a href="https://www.microsoft.com/en-us/p/depth-of-extinction/9P868FJRZQC3?activetab=pivot:overviewtab" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzM2MDg1MjkucG5n/original/yOJo5f.png" loading="lazy"></a></td><td class="text-center"><a href="https://store.playstation.com/en-us/product/UP5707-CUSA18807_00-33636DEPTHEXTINC" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzQwNjQzNjcucG5n/original/AaPwhw.png" alt="PS4" title="PS4" loading="lazy"></a></td></tr><tr><td class="text-center"><a href="https://www.nintendo.com/games/detail/depth-of-extinction-switch/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Nintendo Switch</a></td><td class="text-center"><a href="https://www.microsoft.com/en-us/p/depth-of-extinction/9P868FJRZQC3" target="_blank" rel="nofollow noopener" referrerpolicy="origin">XBox One</a></td><td class="text-center"><a href="https://store.playstation.com/en-us/product/UP5707-CUSA18807_00-33636DEPTHEXTINC" target="_blank" rel="nofollow noopener" referrerpolicy="origin">PlayStation 4</a></td></tr></tbody></table>

<iframe width="720" height="450" src="https://www.youtube.com/embed/hDz7cgTDhXI" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODgxNDIvMTQ5NjkzNi5wbmc=/original/pthnHg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODgxNDIvMTQ5Njk0Mi5wbmc=/original/XXVDAs.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODgxNDIvMzE1NDY0Ni5wbmc=/original/syXU46.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODgxNDIvMzE1NDY1Mi5wbmc=/original/XQHB2P.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODgxNDIvMzE0ODAyMy5wbmc=/original/uhcm1J.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODgxNDIvMzE1NDY0OC5wbmc=/original/Dy9dkR.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODgxNDIvMTQ5Njk0NC5wbmc=/original/I9vZuc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODgxNDIvMzE1NDY0Ny5wbmc=/original/imRuzf.png]]
<h3 class="text-center">Description
</h3>
<p><strong>Derpy Deep Drive</strong> is a 3D Endless<strong>*</strong> Driving game.</p>
<p>In this endless* driving game, How far can you drive your School Bus?</p>
<ul><li><strong>Single&nbsp;Endless Mode.</strong></li></ul>
<ul><li><strong>Maneuver around obstacles to avoid getting damaged.</strong></li></ul>
<ul><li>Hit an Obstacle? don't worry your bus is more durable than you think. But how many hit's can it take?</li></ul>
<ul><li>Let's see your amazing Bus Driving skills.</li></ul>
<ul><li><strong>Made for Ludum Dare 48.</strong></li></ul>
<ul><li><strong>This game might not be balanced at all.</strong></li></ul>
<ul><li><strong>If the game is lagging, reduce the graphics quality using the in-game settings menu.</strong></li></ul>
<h3 class="text-center">Controls</h3>
<h1 class="text-center">🖱️</h1>
<p class="text-center">Mouse</p>
<h3 class="text-center">Engine</h3>
<p class="text-center"><strong>Unreal Engine 4</strong></p>
<h3 class="text-center">Credits</h3>
<ul><li>Music from <a href="https://www.zapsplat.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">ZapSplat<br></a></li></ul>
<h3>Update 1</h3>
<p><strong>Updates</strong></p>
<ul><li>Added Endless Mode.</li><li>Added the Distance meter to the Bus and removed the HUD UI.</li><li>Updated Out of bounds check to be more precise.</li></ul>
<p>Bug Fixes</p>
<ul><li>Fixed Score, speed and health not getting reset after game over.</li><li>Disabled an unintentional Jump functionality.<br>
</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAxNTY5OC81Nzg1NDc2LnBuZw==/original/eMm%2Fcp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAxNTY5OC81Nzg1NDk2LnBuZw==/original/4dTprE.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAxNTY5OC81Nzg1NDk1LnBuZw==/original/3ZO46G.png]]
<p>Desolate Roads is a short first-person psychological horror vignette.<br><br>Your car runs out of gas in the middle of nowhere - a nowhere that’s full of many kinds of nothing. Empty roads, a dark forest, endless thick and strangling fog, and an even darker nothing beyond. You have no choice but to explore this seemingly forgotten place alone.</p>
<h4>Features</h4>
<ul><li>An engaging story punctuated by light puzzles<br>
</li><li>Survival horror elements which keep you on your toes<br>
</li><li>A beautiful environment with a tense and threatening atmosphere<br>
</li><li>Multiple endings
</li></ul>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNDE0My84MzE3NjI1LnBuZw==/original/ScpsKn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNDE0My84MzE3NjI3LnBuZw==/original/Rt%2F44W.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNDE0My84MzE3NjI2LnBuZw==/original/EviNti.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNDE0My84MzE3NjI4LnBuZw==/original/ST8IbV.png]]
<p>Detail is a worldbuilding game for 1-5 people. This game facilitates collaboratively&nbsp;building a setting through the use of small Details given significance. Play it as a stand-alone game, or create a setting for other roleplaying games or stories.&nbsp;</p><p>Now featuring Detail:&nbsp;Regrowth, an expansion with 60 new details centered on the natural world.</p>
<p>Detail is a game by Declan Lowthian.&nbsp;</p>

[img width=500 [https://img.itch.zone/aW1nLzQ5MDAxNTcucG5n/original/7reezD.png]]
<p>A strange murder has occurred in the Hotel Lisbon, a man committed suicide with 14 stabs to the back while at the same time he peacefully drank his coffee.<br>This case with contradictory facts was too complex for Policeman Garcia to solve, so he decided to hire the only detective duo in town capable of solving it: the mythical Detective Case and the unmistakable Clown Bot.<br>Together, they will solve a network of love relations so complex and so intricate, that it would take at least 14 clairvoyants, 5 apocalyptic sect prophets who can predict the end of the world and 3 of those gypsies that can read the palm of your hand just to guess the final outcome.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/fR5X4Ibpp-c" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQyODExMS84MzIyMzQ5LmpwZw==/original/pVGSXz.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyODExMS84MzIyMzU3LmpwZw==/original/R8GG34.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyODExMS84MzIyMzU4LmpwZw==/original/9afEey.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyODExMS84MzIyMzY1LmpwZw==/original/sWd6z5.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyODExMS84MzIyMzY4LmpwZw==/original/ctSlhd.jpg]]
<p><em><em>No boughs have withered because of the wintry wind;<br></em></em><em><em>The boughs have withered because I have told them my dreams.</em> </em>
  - <strong>WB Yeats</strong><strong></strong></p>
<p>Devil's Dreams is a GMless story game for 2 or more players, in which they share their characters’ dreams as they trade news at a meeting spot. It uses Tarot cards as prompts to create dreams and their consequences.&nbsp;</p>
<p>These dreams come from the Devil, and are a foretelling of the future.</p>
<p>Set in rural Ireland at the turn of the 20th&nbsp;Century, this may raise issues of women’s rights, the flexibility of tradition, the clash between folklore and religion, the position of the Church and the power of British rule.&nbsp;</p>
<p>A two-page story game created for the <a href="https://itch.io/jam/folklorejam2020"></a><a href="https://itch.io/jam/folklorejam2020" target="_blank">Folklore Jam 2020</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/-Mxhn7PeIa4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzM3MDE5LzQyNDE2NzYuanBn/original/armUrZ.jpg]]
<p><em>One of the grave robbers is caught. The crowd wheels him about with furious, amateurish blows to his head and defensively raised arms.&nbsp;</em><em>"Where is the body?" they shout. "Where did they take it?"&nbsp;</em></p>
<p><em>The body thief wails. "We were to take the body to Dr. Galfani! To the Flayed House!" he says, begging mercy.</em></p>
<p>DIE, GRAVE ROBBER, DIE! is a gothic horror one-shot RPG incursion for Trophy Dark, designed for 3-5 players. A rain-drenched world of horror and open graves awaits! Can you reach the Flayed House in time to rescue a stolen body before it’s too late?</p>
<p>Never played Trophy Dark before?&nbsp;&nbsp;No problem! All the rules you need are contained within.&nbsp;</p>
<p>This collaborative play-to-lose RPG scenario follows a group of desperate people charged with reclaiming a stolen body that's been spirited out of its grave.&nbsp; It is very likely that all of them will die or—at best—be permanently scarred and haunted by the experiences waiting for them in the Flayed House!</p>
<p><br></p><p><b>Need an online character keeper?&nbsp;</b>&nbsp;Die, Grave Robber, Die!&nbsp;is supported by this&nbsp;<a href="http://arktosaur.us/keepers/trophydark" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Trophy&nbsp;Dark Character Keeper</a> courtesy of&nbsp;Ben Bond (Arktosaur).&nbsp;Note:&nbsp;requires a Google account to access.<br></p><p><br></p>
<p><strong>Spotify Playlist</strong><strong><br></strong><iframe src="https://open.spotify.com/embed/playlist/5fn5ZqCQIsVBjFTKE3Msr5?utm_source=generator" width="100%" height="380" frameborder="0" allowfullscreen="" style="color: inherit; font-size: inherit"></iframe></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/c7P_Hf-xATM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM1ODA3NS83OTA2MDEyLnBuZw==/original/r8jHfP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM1ODA3NS84MDA3MzI4LnBuZw==/original/efIE7h.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM1ODA3NS84MDA3MzMwLnBuZw==/original/Ww8Gh4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM1ODA3NS84MDA3MzI5LnBuZw==/original/itZHr%2B.png]]
<figure><img src="https://img.itch.zone/aW1nLzc1MTk5MjgucG5n/original/bO8KDr.png" style="color: inherit; font-size: inherit" loading="lazy"><br></figure>
<p>Your main objective is to rescue the crystals stolen by an evil wizard who lives on the island with the dinosaurs, for that the guardian needs to go through stages with challenges and collect crystals.</p>
<p></p>
<p>At the end of each part of the island the dino will have to face the evil wizard who took the crystals, so if you defeat him he will retrieve a crystal and continue to the next challenge.</p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzc1MTk5MzAucG5n/original/1VfEKK.png" loading="lazy"><br></p>
<ul><li><strong>Power-up</strong></li><li>More than <strong>40 levels</strong>.</li><li><strong>4 Bosses</strong>.</li><li>Different <strong>challenges </strong>in each part of the island.</li><li>Pixel Art</li><li>Platform game.</li><li><strong>Gameplay elements</strong>&nbsp;(exploding blocks,&nbsp;<strong>secret items</strong>, new locations).</li><li>Achievements for each level (best score, best time).<br>
</li><li>B<strong>onus levels</strong>&nbsp;and fixes and gameplay improvements.
</li><li><strong>Subtitles in Languages</strong>&nbsp;(English, French and Brazilian Portuguese)
</li><li><strong>Support 1080p and 60fps resolution</strong></li></ul>
<p><strong></strong></p>
<p><img src="https://img.itch.zone/aW1nLzc1MTk5MzMucG5n/original/e9U2KA.png" loading="lazy"></p>
<figure><strong><img src="https://img.itch.zone/aW1nLzY5NDA1NDUucG5n/original/V5ZLcb.png" alt="Dino Island The Four Crystals Power-ups" title="Dino Island The Four Crystals Power-ups" loading="lazy"></strong></figure>
<ul><li>A leaf that will make the dino fly.
</li></ul>
<ul><li>A glasses that allow the player to see invisible blocks to access new areas.
</li></ul>
<ul><li>A bomb to explode special blocks that gave access to other areas and more crystals.
</li></ul>
<ul><li>When the player finishes the game and manages to collect all the diamonds and make the best time of each stage he will gain a special power that will make him faster and with the highest jump as well as immortal.
</li></ul>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzc1MTk5MzUucG5n/original/lesYNP.png" loading="lazy"></p>
<ul><li>Windows 10 ( 32-bit and 64-bit&nbsp;)<br>
</li><li><strong>Disk space</strong> (<strong>Windows 118mb</strong>)</li><li><strong>2G</strong> of <strong>RAM </strong>(<em>Minimum</em>).</li><li><strong>Keyboard</strong> and <strong>Mouse</strong>.</li></ul>
<p><br></p>
<p><br></p>
<p>Credits:</p>
<p><a href="https://rottingpixels.itch.io/"></a><a href="https://rottingpixels.itch.io/nature-platformer-tileset">RottingPixels</a>&nbsp;-&nbsp;<a href="https://arks.itch.io/dino-characters" style="font-size: inherit">Arks</a>&nbsp;-&nbsp;<a href="https://kicked-in-teeth.itch.io/emoticons" style="font-size: inherit">Kicked-in-Teeth</a>&nbsp;-&nbsp;<a href="https://ansimuz.itch.io/sideview-fantasy-patreon-collectio" style="font-size: inherit">Ansimuz</a>&nbsp;-&nbsp;<a href="https://alomora.itch.io/" style="font-size: inherit">Alomora</a>&nbsp;-&nbsp;<a href="https://phoenix1291.itch.io/sound-effects-mini-pack1-5" style="font-size: inherit">Swiss Arcade Game Entertainment</a></p>
<p><a href="https://phoenix1291.itch.io/sound-effects-mini-pack1-5"></a></p>
<p><a href="https://phoenix1291.itch.io/sound-effects-pack-2">Swiss Arcade Game Entertainment</a><br></p>
<p>All songs in this game are licensed&nbsp;under&nbsp;<a href="https://creativecommons.org/licenses/by/4.0/" rel="nofollow noopener" referrerpolicy="origin">Creative Commons by Attribution 4.0</a></p>
<p><strong>Consider helping the developer if you like the game</strong>😉<br></p>
<p><br></p>
<p></p>
<div class=""><iframe width="500" height="281" src="https://www.youtube.com/embed/U3NIZ9258Jc" frameborder="0" allowfullscreen=""></iframe></div>
<p><br></p>
<p><strong>Follow me:&nbsp; &nbsp; &nbsp;</strong><a href="https://www.instagram.com/felipehunter_dev/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong><em>Instagram</em></strong></a>&nbsp; &nbsp; &nbsp;&nbsp;<a href="https://www.youtube.com/channel/UCAxPI1kF894RWXAXLQ6sStA" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong><em>Youtube</em></strong></a>&nbsp; &nbsp; &nbsp;&nbsp;<a href="https://www.tiktok.com/@felipehunter_dev" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><em><strong>TikTok</strong></em></a><span></span></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/U3NIZ9258Jc" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzkyNDU3LzUxMjc3NzguZ2lm/original/Tp6R47.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzkyNDU3LzUxMjc3OTguZ2lm/original/WVuJz6.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzkyNDU3LzUxNjQyNzguZ2lm/original/RUOnM1.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzkyNDU3LzUxNjQyNzkuZ2lm/original/ovyCJY.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzkyNDU3LzUxNjQyODAuZ2lm/original/rt5wNh.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzkyNDU3LzY0NDIwNjYucG5n/original/B%2BliiS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzkyNDU3LzY0NDIwNzIucG5n/original/mFfnMo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzkyNDU3LzY0NDIwNzYucG5n/original/yuvLHo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzkyNDU3LzY0NDIwOTEucG5n/original/nVIYY3.png]]
<p><strong>Dinos for Quest Volume I</strong> is a mini booklet of dinosaur NPCs designed for the <strong>Quest</strong> TTRPG system.</p>
<p>This booklet includes four NPCs:</p>
<p><strong>Neovenator </strong>- A solitary ambush predator and sometimes scavenger. <br></p>
<p><strong>Diplodocus </strong>- A massive herbivore that can cause tremendous damage (without meaning to).</p>
<p><strong>Centrosaurus </strong>- An ornery plant-eater known to charge down anyone who gets too close.</p>
<p><strong>Microraptor </strong>- A small flying pack hunter with beautiful plumage. <br></p>
<p>Each NPC includes a large full colour illustration and a size comparison chart. <br></p>
<p>Each of these NPCs come with a full compliment of stats so they are usable in your games of Quest. Each of them also includes details and colour to better enable storytelling involving these fantastic creatures.</p>
<p>Additionally, this booklet includes an adventure scenario that can be used to highlight each of these new PCs.</p>
<p>Dinos for Quest is an ongoing project that seeks to add dozens of prehistoric creatures to the catalogue of NPCs available for use in Quest.</p>
<p>These NPCs were designed using the resources created by J.N. Butler in their excellent <strong>Monster Manifest</strong>. That product is available here:</p>
<p><u><a href="http://jnbutlerart.itch.io/monster-manifest" target="_blank">jnbutlerart.itch.io/monster-manifest</a></u></p>
<p>This work uses material from the Quest Creators Resource. The Quest Creators Resource by The Adventure Guild, LLC is licensed under <u>CC BY 4.0</u>. For more information about Quest, please visit <a href="http://www.adventure.game/" rel="nofollow noopener" referrerpolicy="origin">www.adventure.game</a>. 
  </p>
<p><br></p>
<p></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA5NTg2Ny82MzE4MzMxLmpwZw==/original/r8fNzN.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5NTg2Ny82MzE4MzM0LmpwZw==/original/OnMQOM.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5NTg2Ny82MzE4MzM3LmpwZw==/original/Ua8Bt%2F.jpg]]
<p>Disobedient Sheep is a frantic and lighthearted sheep herd'em'up for two to four players. Play as adorable sheepdogs and guide your hapless flock to victory in four different game-modes by avoiding anvils, dodging dynamite, and bailing on boulders.<br><br>This is a small, unique game. Ideal for short-sessions, young children, rowdy friends, older folks and non-gamers.<br></p>
<h2>Features</h2>
<ul><li>Frantic fun ideal for parties and family get-togethers</li><li>Simple to pick up, tricky to master</li><li>Advanced herding and flocking AI</li><li>Controller sharing - two players with one controller; four players with two</li></ul>
<h2>Co-Op</h2>
<p>Challenge your high-scores in a time trial, or hold out for as long as possible in Endless mode.<br></p>
<h2>Versus</h2>
<p>Who's a good sheepdog?!&nbsp;<strong>You are!&nbsp;</strong>Look after your flock while trying to drive your opponents sheep into danger, or compete over territory in King of the Hill. Chow down on dog biscuits to run faster, drop anvils on your opponents, and lure sheep with tasty carrots.<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/y8jHYaDM2Lk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjE0ODg3LzMyNzE0NzgucG5n/original/0J1Pks.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjE0ODg3LzMyNzE0NzcucG5n/original/yljgJD.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjE0ODg3LzMyNzE0ODAucG5n/original/mrQMFK.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjE0ODg3LzMyNzE0ODQucG5n/original/1307M2.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjE0ODg3LzMyNzE0NzUucG5n/original/OseCCL.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjE0ODg3LzMyNzE0ODMucG5n/original/sewiWR.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjE0ODg3LzMyNzE0ODEucG5n/original/XjHP5n.png]]
<p>Our world is but one among many. We exist in a single paper-sharp slice of reality, pressed between the past and future, adjacent to the imaginary and unimaginable, above death and beneath eternity. Each layer of reality exists in relation to all the rest, and the paths we chart between them are often tangled to the point of absurdity. These worlds, the relationships between them, and the paths that wind between, are collectively known as the Disparateum.</p>
<p>As we speak, someone in the Disparateum is wandering the halls of a fractal museum-dungeon. Someone is planning a heist to steal a story from a mechanical dragon. Someone is running through a mirrored world while their reflection silently hunts them. Someone is flying through the streets of a collective dream to catch a bauble that'll grant them their heart's desire. Someone is opening a locked and dusty door in their soul to find something they tried to forget.<br></p>
<p>It could be you. The Disparateum waits for you to take the stage.</p>
<p>- - -<br></p>
<p>This game is in development! It currently contains Act I of <strong>Disparateum</strong>, as well as <strong>small business</strong>, the first of an eventual seven adventure modules included in the zine <strong>Seven Plays from the Disparateum</strong>. The current plan is for two more Acts, six more adventures, and a number of other supplementary materials, all contributed to by fantastic writers, game designers, and authors in the indie space. All the money this game makes will be going directly towards the goal of putting together that team of contributors and making really cool things with them, and while I've got a pretty good sense of what the other two Acts of the main book are gonna contain, the adventures and supplemental materials are gonna be free range and really, really weird. Can't wait for you to join us on this journey!<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MTIxNS82NzA3MDYzLnBuZw==/original/fe5LzX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MTIxNS82NzA3MTMyLnBuZw==/original/m%2BQw0u.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MTIxNS82NzA3MDYyLnBuZw==/original/cH%2F6sa.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MTIxNS82NzA3MDgzLnBuZw==/original/Tcu18v.png]]
<p class="text-center"><strong>DOGS THROWING SWORDS II: Three Barks To The Wind</strong><br></p>
<p>The latest entry in the notorious "Dogs Throwing Swords" series!</p>
<p>The mysterious horned devil ORELIA has been causing mischief in the Dogwoods!&nbsp;Three heroes have been chosen to take a stand, and put an end to her tyranny.</p>
<p>Choose and guide a team of three&nbsp;dogs, and lead those&nbsp;best friends to victory over the devil ORELIA! Each dog has its own unique strengths. Avoid enemy attacks and maximize your firepower by SHIFTING and ROTATING your dogs. Keep them safe as long as possible, so the forest can be free for all once more!</p>
<p>- 4 friends to choose from: Husky, Corgi, Pug, and Pomeranian!<br></p>
<p>- 6 doggone good levels to fight through</p>
<p>- Dog music. I mean good music</p>
<p>- Each dog lovingly hand-pixeled, from nose to tail</p>
<p>Play Dogs Throwing Swords&nbsp;II today, choose a dog, and throw a sword! Now go get it! Aww, who's a good dog! You are!&nbsp;Yes you are!</p>
<p><a href="https://twitter.com/ItsMeLilyV" rel="nofollow noopener" referrerpolicy="origin">Lily &lt;3</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjQ0OTM5LzM0NTM3ODguZ2lm/original/6WlrmT.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjQ0OTM5LzM0NTM3ODcuZ2lm/original/F7nvK%2B.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjQ0OTM5LzM0NTM3NTUucG5n/original/oZVzmO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjQ0OTM5LzM0NTM3NTQucG5n/original/OKmhxS.png]]
<div class=""><iframe style="width: 500px; height: 281px" src="https://www.youtube.com/embed/8NxMy6NXAuw" allowfullscreen="" frameborder="0"></iframe></div>
<p>Following a bizarre cataclysmic event that cracked the moon in half, the Earth is struggling with the environmental fallout. Everything is already dead or dying... except you. Or so you think. Don't Escape: 4 Days to Survive is a post-apocalyptic thriller from veteran developer Scriptwelder, creator of the popular horror series Deep Sleep and Don't Escape. Players must figure out a way to properly fortify their home against each night's new danger, as they learn the truth behind the apocalypse and search for a way to safety, if one exists.</p>
<p><br></p>
<p>Players will journey alongside David, a lone survivor after the end of the world, who finds himself having prophetic dreams... or nightmares. Each chapter of the game has multiple potential variations to encounter, from poisonous fog or spiders to a gang of murderous thugs or a deadly heat wave, and as a result, you'll need to adjust your strategy on different playthroughs. But you don't have forever. Certain actions advance the in-game clock, and you'll need to complete your preparations to (hopefully) stay alive before night falls.<br><br>Will you make it through all four days? Will your companions?</p>
<h4>Features:</h4>
<ul><li>A classic pixelart aesthetic and creepy atmosphere from a veteran of horror and thrillers.</li><li>Logical puzzles and exploration to challenge players without frustrating them.</li><li>Time mechanics; certain actions advance the clock in a race against time.</li><li>A post-apocalyptic thriller, with an engaging storyline and cast.</li><li>Moody and engrossing original musicial score.</li><li>Multiple variations for each chapter mean multiple playthroughs with new content.</li></ul>
<h4>About the Developer:</h4>
<p>Poland-based developer Scriptwelder is a well known creator of creepy web-based games, perhaps the most iconic of which is the Deep Sleep series, which has won multiple awards and been played by millions all around the world. The Don't Escape series began as a web game that inverted the classic escape-the-room formula... rather than trying to find a way out, players were instead trying to find a way to secure themselves within, usually from some sort of threat or danger. Don't Escape: 4 Days to Survive is his first full length premium game.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/8NxMy6NXAuw" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTI4MjQwLzI3NDUwODIuanBn/original/OMbxr5.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI4MjQwLzI3NDUwODMuanBn/original/bIe7je.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI4MjQwLzI3NDUwODUuanBn/original/yEghRa.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI4MjQwLzI3NDUwODcuanBn/original/M9Dnja.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI4MjQwLzI3NDUwODkuanBn/original/PKR%2F0o.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI4MjQwLzI3NDUwODQuanBn/original/UeHAfq.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI4MjQwLzI3NDUwOTEuanBn/original/LdX3PX.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI4MjQwLzI3NDUwODYuanBn/original/S1PUtv.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI4MjQwLzI3NDUwOTAuanBn/original/O72PVp.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI4MjQwLzI3NDUwODguanBn/original/%2B%2BCfl4.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI4MjQwLzI3NDUwOTMuanBn/original/kSkCCh.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI4MjQwLzI3NDUwOTIuanBn/original/31Ej9s.jpg]]
<p><em>“Wildly Funny”</em><br><a href="https://kotaku.com/draw-your-own-date-in-doodle-date-then-regret-not-havi-1825610326" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Kotaku</a></p>
<p><em>“Highly Entertaining”</em><br><a href="https://www.youtube.com/watch?v=lIGm3aWsk-k" rel="nofollow noopener" referrerpolicy="origin">Kelsey Impicciche</a></p>
<p><em>"ABSURD."<br></em><a href="https://www.youtube.com/watch?v=XJ-wpSoBQA8" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">Game Grumps</a></p>
<p><br>Romance, seduce, and even marry your own drawings! Forget about finding true love; In Doodle Date, you create it!<br><br><img src="https://steamcdn-a.akamaihd.net/steam/apps/830980/extras/DreamDateGifCropped_-_Copy.jpg?t=1569552200" loading="lazy"><br><br><strong>DRAW EVERYTHING!</strong><br><br>From your Dream Date, to the movies you watch, to the very food you eat, and much more!<br><br><strong>AN UNFORGETTABLE LOVE STORY!</strong><br><br>Go from flirting, to seducing, to eventually marrying your own dream date in a romantic, drama-filled tale for the ages!<br><br><strong>MULTIPLE ENDINGS!</strong><br><br>Choose from two different love interests and experience the different life paths you go on with each! (With a secret ending to boot!)<br><br><em>NOTE: Doodle Date is designed to be a short and sweet experience at around ~1 hour total.</em><strong><br><br>BONUS: Each purchase comes with a redeemable Steam key in addition to the DRM-free download.</strong></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/HxLOm-oIq20" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTUzNDkwLzI4OTcxMzcuZ2lm/original/Wd2YrC.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNTUzNDkwLzI4OTcxMzkuZ2lm/original/f7WnXa.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNTUzNDkwLzI4OTcxNTIuanBn/original/V1Gw6s.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTUzNDkwLzI4OTcxNTMuanBn/original/fl9gCb.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTUzNDkwLzI4OTcxNTQuanBn/original/SaCi6x.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTUzNDkwLzI4OTcxNTguanBn/original/dOsSH0.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTUzNDkwLzI4OTcxNTcuanBn/original/NBZLjv.jpg]]
<h3>Explore alternate dimensions, fight interdimensional criminals, and solve crimes in this thrilling action platformer!&nbsp;&nbsp;</h3>
<p>Developed by 13AM Games, the studio behind award-winning Runbow, Double Cross is an exciting action adventure game that has players take on the role of Zahra, an agent of R.I.F.T. (Regulators of Interdimensional Frontiers and Technology) whose job it is to maintain peace and order between all dimensions. A recent attack on R.I.F.T. headquarters thrusts players into a thrilling new case where they must use their R.I.F.T. developed gear to sling, swing, fight and investigate across distinct dimensions. During their travels players will gather clues to bring themselves one step closer to finding the identity of R.I.F.T.’s attacker and save every variation of the universe.</p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzE3NTM5NTYuZ2lm/original/C87eQO.gif" loading="lazy"><br></p>
<h3>FEATURES</h3>
<ul><li>Players can custom tailor their play style by collecting Upgradium and using it to level up and unlock RIFT agent gear.</li><li>An adventure-game style gameplay and upgrade system that allows players to choose how and in what order they play levels</li><li>&nbsp;A unique “Proton Slinger” mechanic that allows diversity of movement throughout levels and the ability to grab and throw objects and enemies</li><li>Varied and upgradeable attacks and combos</li><li>An intricate story engages players as they solve an interdimensional mystery with a diverse cast of interdimensional characters</li><li>Slick 2D HD art that draws upon traditional gaming and anime style</li></ul>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzE3NTM5NjEuZ2lm/original/XJkYWe.gif" loading="lazy"></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/VoC0LAwN4pA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzUyMTIwLzM2NDkwMDUuZ2lm/original/W7SJWx.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzUyMTIwLzM2NDg5ODguZ2lm/original/HkxBip.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzUyMTIwLzM2NDg5OTYuZ2lm/original/8k6NIl.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzUyMTIwLzM2NDkwMTUuZ2lm/original/b%2FOGwh.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzUyMTIwLzE3NTM3MDgucG5n/original/JSllR%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzUyMTIwLzE3NTM3MDYucG5n/original/LzndAZ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzUyMTIwLzE3NTM3MDcucG5n/original/T3skuR.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzUyMTIwLzE3NTM3MDUucG5n/original/qTOkZW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzUyMTIwLzE3NTM3MDkucG5n/original/rr6aZf.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzUyMTIwLzE3NTM3MDQucG5n/original/ng9BIg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzUyMTIwLzE3NTM3MTAucG5n/original/JTUssm.png]]
<p>Drop the dragons! Don't get dropped! In this game of timing, tactics and quick twists of luck, your fire breath temporarily wipes a line of cuboid platforms away. Try to stay on while dropping your rivals, but don't delay your next step, it could be your last! Hatch into Dragon Drop, and may the last (and best) dragon win!&nbsp;<img alt="❤" src="https://static.xx.fbcdn.net/images/emoji.php/v9/ted/2/16/2764.png" style="color: inherit; font-size: inherit; border: 0px" width="16" height="16" loading="lazy"><br><br><img src="https://img.itch.zone/aW1nLzY3MjY3ODMuZ2lm/original/VYWIva.gif" loading="lazy"><br></p>
<p>This is the&nbsp;early-access Alpha release of the game, featuring the basic game mode for Dragon Drop. Even though the game isn't 100% complete, there's TONS of content to enjoy even this early in the game! Such as:</p>
<h4>Fast-paced, frantic, multiplayer action!</h4>
<p><img src="https://img.itch.zone/aW1nLzcwNDQwMTguZ2lm/original/Wu1hT%2F.gif" loading="lazy"></p>
<h4>Loads of colors for your pico dragon!</h4>
<figure><img src="https://img.itch.zone/aW1nLzY3MjY3MDAuZ2lm/original/38d38v.gif" loading="lazy"><br></figure>
<h4>Personalize your look further with a selection of hats!</h4>
<figure><img src="https://img.itch.zone/aW1nLzY3MjY1NjUuZ2lm/original/7gLJCS.gif" loading="lazy"><br></figure>
<h4>A wide variety of stages!</h4>
<figure><strong><img src="https://img.itch.zone/aW1nLzY3MjY3NTUuZ2lm/original/PYiSwI.gif" loading="lazy"></strong></figure>
<h4>PARTY!!!!!<br><img src="https://img.itch.zone/aW1nLzcwNDQwMzYuZ2lm/original/6yCjvP.gif" loading="lazy"><br><br>Bunches of backdrops!</h4>
<figure><img src="https://img.itch.zone/aW1nLzY3MjY1ODIuZ2lm/original/NCLtcM.gif" loading="lazy"><br></figure>
<h4>Have meaningful conversation!</h4>
<figure><img src="https://img.itch.zone/aW1nLzY3MjY1ODguZ2lm/original/OxbHxD.gif" loading="lazy"></figure>
<h4>Salty Runbacks!</h4>
<h4><img src="https://img.itch.zone/aW1nLzY3MjY1ODcuZ2lm/original/Empkw%2B.gif" loading="lazy"></h4>
<h4>Fall in LOVE!?*</h4>
<p><img src="https://img.itch.zone/aW1nLzY3MjY1ODkuZ2lm/original/%2FBbiPB.gif" loading="lazy"><br></p>
<p><em>*Dragon Drop is NOT a dating app</em></p>
<p>All this and more await you in this new ground breaking party game! Don't delay, drop everything and check out Dragon Drop today!!</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/TudCMArfVIg" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODE0NzgxLzcwNDQwNTYucG5n/original/%2FFdTAT.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODE0NzgxLzcwNDQwNTcucG5n/original/onK5mo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODE0NzgxLzcwNDQwNjIucG5n/original/QoF5XI.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODE0NzgxLzcwNDQwNTgucG5n/original/qbS8rQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODE0NzgxLzcwNDQwNTUucG5n/original/6WbUpK.png]]
<p>You get to be a dragon<br></p>
<p>You get to kiss dragons</p>
<p>Need I say more?&nbsp; This Tabletop RPG is about&nbsp;about the clash of over-sized personalities between&nbsp;shapeshifters who can assume human or dragon form, or anything in between. It's a GMless—meaning everyone has equal narrative authority—and plays best over one or two 3-4 hour sessions, with 3-4 players.&nbsp;<br><br><strong>What about the Dragons, though?&nbsp;</strong><br><br>What is the fantasy of being a dragon?&nbsp;To me, dragons are interesting because they embody so many seemingly contradictory elements:&nbsp;they are powerful but vulnerable, unyielding but capricious, even tireless-but-sleepy. The one thing they aren't, in this game, is reserved:&nbsp;Dragons' emotions are all turned up to 11, and they aren't afraid to let everyone know exactly how they feel.<br><br><strong>What about the Hearts, though?</strong>&nbsp;<br><br>Notably though, while romance between characters is facilitated by the game and made as safe as possible by included support mechanics, it's also entirely opt-in: you declare on character creation whether your dragon is Open To Romance, and can change your mind at any time.&nbsp;<br><br><strong>And how does this game actually play?</strong><br><br><em>Dragonhearts</em> is made of several small scene types you play for different situations,&nbsp;like if you want to have&nbsp;big cool dragon duels <em>At Each Other's Throats</em>—which may at any moment become liaisons <em>In Each Other's Arms</em>—or change the entire world during <em>Endgame:&nbsp;The Eclipse</em>. Or, more importantly, you can have <em>A Dance</em>!&nbsp;&nbsp;<br><br>Players also collaborate on world-building elements to flesh out some Truths about the world, and can change them later during the endgame!&nbsp;<br><br><strong>How similar is it to Firebrands?</strong><br><br>This game follows the&nbsp;<em>Firebrands&nbsp;</em>Formula developed by&nbsp;Meguey and D. Vincent&nbsp;Baker, and while&nbsp;I was tempted to just "Find <em>Mobile Frame </em>Replace <em>Dragon" </em>I ended up doing... more than that. Most importantly, Dances are 50% longer! Also there are no coin flips or other mechanical randomizers. I've added several new games, and reworked the existing ones a bit to fit the setting.&nbsp;Also, wording and mechanics have been reworked to better facilitate interactions with more than two participants in certain games. <br><br></p>
<p>Generally speaking, one of the consentiest games ever is now even consentier, and more polyamory-friendly and trans-friendly.<br></p>
<p><br><strong>Character Keeper<br><br></strong>Originally written to be played in-person back when we could, uh, do that, I've made an updated Character Keeper to assist with playing this game online! (To find out how to make one for your own game, @GauntletRPG on Twitter has tutorials!)&nbsp;<br><br>You can open the Character Keeper at&nbsp;<a href="https://docs.google.com/spreadsheets/d/1mWJ6PCc0CxLe0POCc-gUTZbI9KhfJlCZ4QrbiiVoB1o/edit?usp=sharing" rel="nofollow noopener" referrerpolicy="origin">https://docs.google.com/spreadsheets/d/1mWJ6PCc0CxLe0POCc-gUTZbI9KhfJlCZ4QrbiiVo...</a>&nbsp;and then go to File &gt; Make A Copy to get your own instance of it to share and edit!&nbsp;&lt;3<br><br></p>
<p>—Alex<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/yX-_fAnQqlc" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDY1MTU0LzI2NjE0OTAucG5n/original/nrwjt6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDY1MTU0LzI2NjEzOTMucG5n/original/GomNVv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDY1MTU0LzI2NjEzOTcucG5n/original/gSD5Eg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDY1MTU0LzI2NjEzOTkucG5n/original/WkD6Y4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDY1MTU0LzI2NjE0MDIucG5n/original/ZNVmGS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDY1MTU0LzI2NjE0MDAucG5n/original/dh%2F%2Fr5.png]]
<p>Space dragons are attacking! Destroy them all using a variety of weapons and rescue all the escape pods</p>
<p>(the're not really dragons)</p>
<p>Keyboard controls WASD or direction keys to move, space or Insert on the number pad to shoot. This allows you to play using one hand, left hand on wasd and space or right hand on the arrows on the number pad with the insert/0 key to shoot with num lock off. Controller is also supported</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/KXo7eVHoIDY" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM5NzgzMS84MTQ2OTI4LnBuZw==/original/vyZPN7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5NzgzMS84MTQ2OTMwLnBuZw==/original/fKuiss.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5NzgzMS84MTQ2OTI5LnBuZw==/original/tqHpxn.png]]
<p>The first official publication for Dragons of Tirenia, this introductory guide and adventure module features:<br></p>
<p>- The adventure&nbsp;<em>Double Cross</em>:&nbsp;intrigue, spies, embezzlement, a cathedral heist, and a cart chase in downtown Fiumenze!</p>
<p>- A brief outline of the key characteristics, geography and history of Tirenia, including a country map</p>
<p>- Lineage and class summaries to cover the standard characters that can be created in the fifth edition of the world's biggest roleplaying game</p>
<p>- Access to online resources including full-size encounter map images, sequel hooks and pre-generated characters</p>
<p>The document is 40 pages long: cover page, glossary&nbsp;and back page, 10 pages of setting introduction, 27 pages of adventure and related resources. Please note, the guide is intended for use with the core rule set of the fifth edition of the world's biggest roleplaying game.</p><p>To learn more about our plans for this setting please visit <a href="http://www.skybeargames.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">www.skybeargames.com</a></p>
<p>The full campaign setting will be Kickstarted in 2021. Watch this space!</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzY5NjM1LzQ0NDk3NTYucG5n/original/djffeb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzY5NjM1LzQ0NDk3NTUucG5n/original/RTzAZp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzY5NjM1LzQ0NDk3NTQucG5n/original/1k%2BnNY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzY5NjM1LzQ0NDk3NTMucG5n/original/DBLXHi.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzY5NjM1LzQ0NDk3NTIucG5n/original/fsIb5I.png]]
<p><strong>You are a professional actor with a talent for the dramatic. Today is the big day:&nbsp;</strong><br><strong>The performance of your lifetime. </strong><strong>You must impress the Queen with your skills, do your best to finish the play, and be smarter, more beautiful, more charismatic and more breath-taking than your peers.</strong>
  </p>
<p>&nbsp;Drama! Drama! (and the Queen) is a one-page fast-paced humorous game about impressing the Queen, while outperforming the other players. To play you need 2-3 players, 5 d6 per player and a piece of paper with a pen. <br><br>Created for the <a href="https://itch.io/jam/one-page-rpg-jam-2021">One-Page RPG Jam 2021</a>. <br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE0NjU1MC84MzUyMjU0LmpwZw==/original/QhxkJK.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0NjU1MC84MzUyMjU1LmpwZw==/original/Sm4syi.jpg]]
<blockquote><em>In 1980 Khadath Games, a studio founded 2 years earlier, published their first role playing game, a small title known as&nbsp;Dream Quest. Notable for its limited mechanics, heavy focus on abstract theme, and seemingly ritual components, it was set upon by concerned parent groups and largely snubbed by critics. Shortly afterwards, Khadath Games folded and has since largely vanished into the dusty annals of history.<br><br></em><em>Today, we have uncovered Dream Quest, and present it to you in a digitised and playable form. The rules and mechanics remain unchanged, but we have cleaned up the presentation, remade the Sleeper Record, and are ready to incorporate more changes as you, the community, rediscover this lost classic. We hope you have as much fun playing it as we did when we were children.</em><em><br><br></em><em>- The Editors</em></blockquote>
<h2>What is Dream Quest?</h2>
<p>Dream Quest is a re-publication of an RPG that never existed, from an 80s that never was. Uncover the mystery of this "lost classic", meant to simulate a shared lucid dream into a strange landscape dominated by the abstract, yet with terror bubbling beneath the surface. Your support will allow me to produce more documents surrounding the past (and future) of this game, uncovering its occult origins, sinister secrets, uncensored editions, and even the handwritten notes of the original creators of the current rendition.</p>
<p><em>Disclaimer: Dream Quest is not a real game from the 80s. Khadath Games is not a real company, and William Carter and J.C. are fictional personae. Any resemblance to persons alive or dead or historical events are purely coincidental. Dream Quest is copyright 2021 Nakade. All rights reserved.</em></p>
<h2>What do I get?</h2>
<p>For 5 dollars, you will receive the full current edition of Dream Quest, and all future updates to the rules&nbsp;and itchfunding expansions.</p>
<h3>Itchfunding Expansions</h3>
<ul><li><del>If this project reaches 20 dollars, I will release the "80s edition" of Dream Quest, showing the game in all of its retro glory (you can seee the retro cover as a preview). The text and art remains the same.</del>&nbsp;<strong></strong><strong>RELEASED&nbsp;</strong></li><li>If this project reaches 50 dollars, I will release the "playtest edition", containing extra content surrounding the dark forces that threaten the Trance, your shared dream-world. <strong>PENDING</strong></li><li>If this project reaches 100 dollars, I will release "handwritten notes" from the original creators, detailing various dream-world domains.&nbsp;<strong>PENDING</strong></li><li>If this project reaches 300 dollars, I will create 4 pages from the "occult text" Dream Quest is derived from.</li></ul>
<p>If these goals are reached, please give me time to make them. They will likely be delivered over the next few weeks/months.</p>
<h2>Credits &amp; Influences</h2>
<ul><li><a href="https://screwylightbulb.itch.io/vintage-ornaments" target="_blank">Retro Ornaments</a> [CC0] by Screwy Lightbulb (Used for page ornaments)</li><li><a href="https://johnbattle.itch.io/my-body-is-a-cage" target="_blank">My Body is a Cage</a> by Batts</li><li><a href="http://www.invisiblewar.com/immortal/index2.html" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Immortals RPG</a> by Ran Valeron</li><li><a href="https://itrasby.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Itras By</a> by&nbsp;Martin Bull Gudmundsen and&nbsp;Ole Peder Giæver</li><li>Latin consultation and advice by <a href="http://www.rookfeld.com" rel="nofollow noopener" referrerpolicy="origin">Rook Feld</a></li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQxOTQxMC84MjY3MDAwLmpwZw==/original/PmbPQR.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxOTQxMC84MjY3MDEzLmpwZw==/original/OppOeS.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxOTQxMC84MjY3MDE0LmpwZw==/original/rG2CTx.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxOTQxMC84MjY2OTg2LnBuZw==/original/6wIyiT.png]]
<p><strong>This item includes only the rulebook (and handouts) for Dreampunk, not the deck of cards.&nbsp;<a href="https://xavid.itch.io/dreampunk-deck">The digital Dreampunk deck is available separately.</a></strong><br></p>
<p>At night, you dream. Your dreams are not idle imaginings, but visits to a persistent world of wonders and dangers both personal and alien. Will you find power there? Will you find freedom? Or will you slowly slip into Entanglement, and be trapped there forever?</p>
<p>Play to find out!
</p>
<p>Dreampunk is a tabletop roleplaying game for 2–6 players comprised of two parts: a rulebook and a deck of surreal art cards. Rather than the numerical randomness of dice, it uses these cards as both creativity prompts and a resource to power your special abilities.&nbsp;<strong>This item includes the rulebook only.</strong></p>
<p>Your character is a Dreamer, someone from a waking world who is drawn to the Dream when they sleep. As a Dreamer, you have powerful abilities to shape the world around you. To do so, you must play a card and incorporate into your action an element of your choice from the card.
</p>
<p>Dreampunk can be played with or without a dedicated Guide. By default, the Guide player, rather than play a Dreamer, portrays the world of the Dream and its denizens. Alternately, you may instead distribute the Guide role among all the players, so everyone both plays a Dreamer and shares responsibility for the world. Either way, Dreampunk uses the cards to encourage an improvisational style for inspiring challenges and obstacles, avoiding the need for detailed planning or prewritten adventures.&nbsp;
</p>
<p>Dreamers can be any type of character you can imagine, and they're defined primarily not by their powers or skills but by the Needs that have entangled them with the Dream. Thirteen different Dreamer playbooks are available, reflecting different reasons for entering the Dream, as well as four deeper playbooks for characters with stranger origins. No matter your playbook, you are given wide room to creatively define your character, the world they come from, and their position in the Dream.
</p>
<p>The mechanics for Dreampunk are heavily inspired by the token economy of&nbsp;<a href="https://buriedwithoutceremony.com/dream-askew" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><em>Dream Askew</em>&nbsp;and&nbsp;<em>Dream Apart</em>&nbsp;by Avery Alder and Benjamin Rosenbaum</a>&nbsp;as well as the zaniness and powerful abilities of&nbsp;<a href="https://afarandasunlessland.wordpress.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Jenna Moran</a>'s works. The focus on art cards, however, creates a unique gameplay experience. By playing a card, you can use your Dreamer's lucid abilities to shape the Dream around you and overcome obstacles, defend yourself, or cause chaos. You draw cards when you falter against the Dream, when you use your tethers to the waking world, and when you awaken or find respite. The constantly-shifting array of cards prompts options that are never the same twice for both Dreamers and the Guide.
</p>
<p>
</p>
<p>Written by Xavid. Includes art from&nbsp;<a href="http://sarahmorrisonillustration.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Sarah Morrison</a>, <a href="https://www.jhennetyler.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Jhenne Tyler</a>, <a href="https://www.artstation.com/stylesosunde" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Kindred Styles</a>, <a href="https://www.instagram.com/wyrwicz_arts/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Chad Wyrwicz</a>, <a href="https://godofironstudios.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Obaseun “godofiron” Ogunkeye</a>, <a href="https://september-xyzx.tumblr.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">September-XYZX</a>, <a href="http://steffbradley.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">steff bradley</a>, <a href="https://twitter.com/Faufix" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Idefix</a>, <a href="https://www.nathanielsantore.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Nathaniel Santore</a>, <a href="https://twitter.com/candiedreptile" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Camille “Karma” O’Leary</a>, <a href="http://twitter.com/amaranthsynth" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Finn J. Carey</a>, <a href="https://www.artstation.com/salzato" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Santiago Alzate</a>,&nbsp;and&nbsp;<a href="https://www.artstation.com/olivari" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Natalie Olivari</a>.</p>
<p>For full art credits and extras,&nbsp;<a href="https://dreampunk.xavid.us/" rel="nofollow noopener" referrerpolicy="origin">visit the Dreampunk website</a>.<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE1OTAyOS82NzQwMjg1LnBuZw==/original/36BPqF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1OTAyOS82NzQwMjg2LnBuZw==/original/4gO%2BNr.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1OTAyOS82NzQwMjg3LnBuZw==/original/y9QIBy.png]]
<p><em>"I just want to go home..."</em></p>
<p><br>A hand-drawn 3D third-person puzzle-platformer. Control Drew, a lost young girl trying to find her way back home, through a series of abstract levels requiring you to use clues in the environment to find invisible paths, gaining color to her black-and-white character as you progress.</p>
<ul><li>Featuring traditional animation in a fully third-person 3D environment, showing the possibilities of image-based animation (not relying on 3D models) in any type of game.<br>
</li><li>Basic, challenging, yet not frustrating, requiring patience and observation. Consists of short invisible platforming levels using a variety of visual clues to help the player find their way to the end of each environment, requiring you to look before you leap.<br>
</li><li>Simple story leading to an emotional conclusion.
</li></ul>
<p><br></p>
<p><em>Minimum System Requirements:</em></p>
<p>CPU: Intel Core 2 Duo or better (x86 or x64)</p>
<p>GPU:&nbsp;Intel HD Graphics 3000</p>
<p>RAM: 2 GB (32-bit system)&nbsp;or 4 GB (64-bit system)</p>
<p>Storage:&nbsp;2.4 GB available</p><p>OS Notes:&nbsp;Linux 32-bit recommended for native build</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/3j8sciXVF2A" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAwOTg3Mi81NzYyODA5LmpwZw==/original/scKQE3.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwOTg3Mi81NzYyODExLmpwZw==/original/x4Z8wG.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwOTg3Mi81NzYyOTAwLnBuZw==/original/LN7w8Z.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwOTg3Mi81NzYyODEzLmpwZw==/original/DCftq9.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwOTg3Mi81NzYyODE0LmpwZw==/original/e6FK%2BV.jpg]]
<p><strong>THIS PROJECT WILL BE TEN DOLLARS UNTIL THE END OF APRIL 2022. PLEASE GO PURCHASE THE <a href="https://itch.io/b/1316/bundle-for-ukraine" target="_blank">BUNDLE FOR UKRAINE</a> WHICH CONTAINS THIS PROJECT.<br>Content Warning:</strong> alcohol, intoxication</p>
<p><img src="https://img.itch.zone/aW1nLzYzNjcwMDcucG5n/original/3gvrgY.png" loading="lazy"><br><em>
  </em></p>
<p class="text-center"><em><em><strong>| <a href="https://pastellexists.neocities.org/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Website</a> | <a href="https://twitter.com/pastellexists" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter</a> | <a href="https://pastellexists.itch.io/" target="_blank">Itch</a> | <a href="mailto:starcatcher77@papercrown.org" rel="nofollow noopener" referrerpolicy="origin">Email</a> |<br></strong></em></em><em><em><strong>Drinking &amp; Intoxication
</strong></em>
    </em></p>
<p>There often comes a time in every adventure when the stress of the journey weighs on the psyche&nbsp;of&nbsp;an adventuring party.&nbsp;To alleviate&nbsp;this,  they&nbsp;tend to&nbsp;indulge&nbsp;in&nbsp;the&nbsp;vice&nbsp;of&nbsp;alcohol, one&nbsp;of the&nbsp;most&nbsp;common of  the earthly&nbsp;pleasures.   In this <em>homebrew </em>supplement for D&amp;D 5e, enjoy a brief set of crunchy rules for simulating the effects of alcohol on your lovely adventurers. <em></em></p>
<p>
<strong>Credits:<br></strong>Dungeons and Dragons<br>is made and published by Wizards of the Coast.<br>This supplement is not approved or endorsed by Wizards of the Coast. This is unofficial fan content, permitted via the Fan Content Policy. Portions of the materials used are property of Wizards of the Coast.<br><br>Images<br><a href="https://www.cleanpng.com/png-beer-glasses-coffee-cup-mug-1sa-gift-beer-tankard-7080254/" rel="nofollow noopener" referrerpolicy="origin">Tankard</a> <br><a href="http://www.uihere.com/free-cliparts/skull-and-bones-skull-and-crossbones-drawing-skull-998121" rel="nofollow noopener" referrerpolicy="origin">Skull and Crossbones</a><br><a href="https://www.klipartz.com/en/sticker-png-tpjjx" rel="nofollow noopener" referrerpolicy="origin">Bottles</a><a href="https://www.klipartz.com/en/sticker-png-tpjjx" rel="nofollow noopener" referrerpolicy="origin"><br></a></p>
<p>Special Thanks<br>Michael Cera<br></p>
<p>Inspired By<br><a href="https://www.dandwiki.com/wiki/Drinking_(5e_Variant_Rule)" rel="nofollow noopener" referrerpolicy="origin">Drinking (5e Variant Rule)</a> from <a href="https://www.dandwiki.com/wiki/Main_Page" rel="nofollow noopener" referrerpolicy="origin">D and D Wiki</a><br></p>
<p></p><p><strong>Bundles</strong>:<br>This game has appeared in the following bundles (in reverse chronological order):<br><a href="https://itch.io/b/1316/bundle-for-ukraine">Bundle for Ukraine</a></p>
<br><p></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODc0NTYwLzQ5MTkyODkuanBn/original/B916Nl.jpg]]
<p>
	<iframe src="https://www.youtube.com/embed/ONqBP9cYuoA" allowfullscreen="" width="560" height="315" frameborder="0"></iframe>
	<br>
</p>
<p>You can save Humanity!<br></p>
<p>In 2084, Cloud 9, the world Government body, perfects armed AI Drones, a cloud controlled advanced robot species created from bio-mechanical material traded with alien races who influence power on earth. Guided by their infallible logic, the drones conclude: "The Human Race is draining the earth resources and therefore must be imprisoned and destroyed."</p>
<p>
	<br>
	<br>
	Your task is simple, Kill Drones, Free Humans, Don't die! <br>
	Drones, The Human Condition is a fast paced twin stick, top down arena shoot 'em up, set in a futuristic Orwellian dystopia, with adrenaline-pumping electronic music, 13 hand designed levels of glitchy insanity and hoards of intelligent robots to blast to pieces. Bring on the destruction!
</p>
<p>
	<br>
	<br>
	Use 5 different weapon types to defeat hoards of Drones, you have 5 credits, once you have used all these credits, its game over! your progress is recorded, so you can pick up where you last died. beat 13 levels of chaotic destruction to complete the game. discover the secrets of Drones, The Human Condition.<br>
	The entire game was made by a solo attic dwelling developer.
</p>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/ONqBP9cYuoA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMwNDgvMjYzMTExLmpwZWc=/original/W4nQh4.jpeg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwNDgvMzUyNDA5LmpwZw==/original/VGOB2a.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwNDgvMzUyNDEwLmpwZw==/original/Qv66ZZ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwNDgvMzUyNDExLmpwZw==/original/W%2F%2BGO3.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwNDgvMzUyNDEyLmpwZw==/original/EcJ2Ly.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwNDgvMzUyNDEzLmpwZw==/original/zF%2FSS8.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwNDgvMzUyNDE0LmpwZw==/original/s%2Fb3nP.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwNDgvMzY0OTYyLmpwZw==/original/rKWjVV.jpg]]
<h2>welcome to dstnce.</h2>
<p>a platforming adventure game where you work your day job, clean up your room, look after your plant, and so much more as you try to get by one step at a time. it is what you make of it, so make the most of it.</p>
<p><strong><a href="https://www.escapistmagazine.com/v2/dstnce-daniel-coady-free-lonely-isolation-game/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">now featured on the escapist !</a></strong><br></p>
<h2>dstnce includes exciting features such as:</h2>
<ul><li> jumping
</li><li> landing
</li><li> ~ w i g g l y   e y e s ~
</li><li> incredibly advanced chatbot ai
</li><li> a dynamic soundtrack (this is where all the budget went, no joke)
</li><li> rubber duck</li></ul>
<p>please look after yourself and those around you, and please enjoy.<br>a solo project by daniel coady</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/HvsY7WB1MqU" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzgyMDEyLzQ3ODY2NDQucG5n/original/PNIXO5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzgyMDEyLzQ3ODY2NDIucG5n/original/JAERtN.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzgyMDEyLzQ3ODY2NDMucG5n/original/bjEGA0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzgyMDEyLzQ3ODY2NDEucG5n/original/Nm7VTv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzgyMDEyLzQ3ODY2NDAucG5n/original/VBSNHS.png]]
<p>Duelist is a<strong> combat add-on</strong> for tabletop roleplaying games, intended to add depth and variety to a wide range of most popular TTPRG games without replacing their mechanics. Instead, Duelist aims to <strong>work with the already existing game systems</strong>, to further bring out the fun of combat.</p>
<p><img src="https://img.itch.zone/aW1nLzY0MDQ1ODIuanBn/original/IFXLKU.jpg" loading="lazy"></p>
<p>Using Duelist in your games is going to help your fighter characters of all classes and variations <strong>express themselves through a combat style</strong>, and be more effective against foes at the same time. Duelist isn’t a direct power upgrade for your fighters, however, as<strong> the increased effectiveness comes at the cost of potential drawbacks</strong>.</p>
<p>To accomplish those goals through the use of<strong> a simple system of semi-random selection</strong> and multiple convergent stances and attack types. The players can choose theirs at will, while the non-player character opponents choose theirs either through Game Master/Dungeon Master fiat or through a simple semi-random selection method—the decision roll.</p>
<p><img src="https://img.itch.zone/aW1nLzY0MDQ2MTMuanBn/original/cO8nmc.jpg" loading="lazy"><br></p>
<h4>What's inside?</h4>
<ul><li>Tips for mixing Duelist with any RPG combat system</li><li>Rules for engaging in duels</li><li>Decision roll: a semi-random algorithm to simulate the opposition's intelligence and tactics</li><li>New initiative rules</li><li>Three stances affecting your defense and offense potential</li><li>Three types of attacks varying the speed and damage</li><li>Six combat moves introducing offensive and defensive maneuvers</li><li>Six bonus moves, from taunts to refreshments and dirty tricks!</li></ul>
<h4>What's next?</h4>
<p>Duelist is the first in the series of system-neutral add-ons by Double Proficiency. Stay tuned for more in the coming months!</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTEwOTIyOC82NDA0NTI5LmpwZw==/original/mtrLbT.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEwOTIyOC82NDA0NTMwLmpwZw==/original/%2BGeMdA.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEwOTIyOC82NDA0NTMxLmpwZw==/original/L4mcea.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEwOTIyOC82NDA0NTMyLmpwZw==/original/xyF6pz.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEwOTIyOC82NDA0NjIxLmpwZw==/original/o%2FFE37.jpg]]
<p><em></em><em>Duelists Of The Pages</em> is a game where you use your books to create duelists. And then pit these duelists against each other!&nbsp;</p>
<p><img src="https://img.itch.zone/aW1nLzQxMzgwODkucG5n/original/%2BtSSLL.png" loading="lazy"></p>
<p>This game is suitable for 2 or more players. And each player only needs a book and a bookmark to play.</p>
<p>Players pick a book and swap bookmarks. The other player fills in the { } with numbers and returns the bookmark to its original owner. The player then picks a page from their book and uses the numbers given to generate their duelist.&nbsp;<br><br>Players then set their duelists against each other! Either in a tournament or round-robin format!&nbsp;</p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzQxMzgwODkucG5n/original/%2BtSSLL.png" loading="lazy"><br></p>
<p>This game can also be played by one player.&nbsp;</p>
<p>Use a D6 to roll a selection of random numbers and use these numbers to create duelists from several books. Then pit these duelists against each other!&nbsp;<br><br>Find out which of your books is the strongest!<br></p>
<p><img src="https://img.itch.zone/aW1nLzQxMzgwODkucG5n/original/%2BtSSLL.png" loading="lazy"><br></p>
<p>To play&nbsp;<em>Duelists Of The Pages</em> you will need:</p>
<p>- Bookmarks (one per player/Duelist)</p>
<p>- Book (physical or ebook)</p>
<p>- Pencil/Pen</p>
<p>- D6 (if playing alone)&nbsp;</p>
<p><em>Note:&nbsp;</em>When printing the PDFs, make sure to print them as one double-sided page.&nbsp;</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzQyNjA3LzQxMzgwNjEucG5n/original/rKqEFT.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQyNjA3LzQxMzgwNjQucG5n/original/pEOEW7.png]]
<p><img src="https://img.itch.zone/aW1nLzcwOTI5NjIucG5n/original/9LRNVv.png" loading="lazy"><br></p>
<p>"Insecurities can bring out the worst in anyone—including Keldran and Ace, centuries-long friends with benefits. What starts off as a fun haunted house trip soon turns sinister, as they find themselves at the mercy of a ravenous spirit that wears their faces. If they cannot navigate their unspoken feelings and conquer their fears, they may find themselves as nothing more than silent spirits, wandering the halls forever."&nbsp;</p>
<p><br></p>
<p>Length: 15k</p>
<p>Genre: Visual Novel, BL, Drama, Romance, Supernatural</p>
<p>Spooktober 2021 submission</p>
<p>Choose who to follow &nbsp;- (pick Keldran if you haven’t played DUFE)</p>
<p>Partially voiced</p><p><br></p><p>RELATED&nbsp; STUFF:&nbsp;</p><p>Sequel (mature content fic): <a href="https://galengames.itch.io/dufe-epilogue-ficlets"></a><a href="https://galengames.itch.io/dufe-epilogue-ficlets" target="_blank">Deliver Us From Evil: Epilogue Ficlets</a></p>
<p>Sequel (otome game):&nbsp;&nbsp;<a href="https://galengames.itch.io/dufe" target="_blank">Deliver Us From Evil</a>&nbsp;</p>
<p>Sequel (polyroute where&nbsp; you can date both of them): <a href="https://galengames.itch.io/dufe-cadenza" target="_blank">Deliver Us From Evil: Cadenza</a></p><p><br></p>
<p>PRESS KIT:&nbsp;<a href="https://www.notion.so/DUFE-Masquerade-Press-Kit-28b8b0fdab024b9691c01f9419e2a329" rel="nofollow noopener" referrerpolicy="origin">here</a><br></p>
<p><img src="https://img.itch.zone/aW1nLzcwOTI5NjMucG5n/original/kItu7y.png" loading="lazy"><br></p>
<p>Director/Lead Artist: <a href="https://www.galengames.com/team" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Crysil</a></p>
<p>Writing: <a href="https://twitter.com/hoyleryan" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Ryan Hoyle</a></p>
<p>Music: <a href="https://soundcloud.app.goo.gl/g7VGB" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Ednar Pinho</a></p>
<p>Scripting: <a href="http://twitter.com/midgethetree" target="_blank" rel="nofollow noopener" referrerpolicy="origin">midge</a></p>
<p>Editing: <a href="https://illegalileo.itch.io/" target="_blank">illegalileo</a></p>
<p>VA Director: <a href="http://ashethurman.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Ashe Thurman</a></p>
<p>VAs: <a href="https://twitter.com/hoyleryan" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Ryan Hoyle</a>&nbsp;(Ace) , <a href="https://alexponential.wixsite.com/voiceactor" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Alex Gardipe</a>&nbsp;(Keldran)</p>
<p>Scripting Assistant: <a href="https://twitter.com/rowanty1" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Rowanty</a></p>
<p>Logo: <a href="https://twitter.com/daxsu_artsu" target="_blank" rel="nofollow noopener" referrerpolicy="origin">DAX</a></p>
<p>Beta Testers: <a href="https://twitter.com/rowanty1" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Rowanty</a>, 123NamK</p>
<p>Russian Translation:&nbsp;<a href="https://vk.com/keepersoftimerus" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Keeper of Time</a></p>
<p>Some assets from Zapsplat.com and Vecteezy.com (full list in game credits)</p>
<p><br></p>
<p><a rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzc0NTU0NzIucG5n/original/seen5C.png" loading="lazy"></a><br></p>
<p></p>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/p_RH9m3FTUo" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE1NjA5NC83MDkyNzU5LnBuZw==/original/3a7%2B4C.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1NjA5NC83MDkyNzc5LnBuZw==/original/pnV8vC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1NjA5NC83MDkyNzYwLnBuZw==/original/9V57k7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1NjA5NC83MDkyNzY0LnBuZw==/original/tzN8pC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1NjA5NC83MDkyNzg4LnBuZw==/original/wNmg8w.png]]
<p><em><strong></strong></em></p>
<p><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy"><br><br>Join&nbsp;Dumpy &amp; Bumpy&nbsp;in a puzzle adventure<br>bursting with 80 charming but challenging levels to bite,<br>blow up, and push through. Dive in as Dumpy, or bring on<br>a bestie as Bumpy, to crack each level’s code and crush<br>the evil Ghostlord. Be sure to make haste though, or the<br>Ghost minions will make a waste...of you!<br><br><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy"><br><br><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/dumpy_bumpy3.gif?t=1632163104" loading="lazy"><br>Venture across 8 colorful worlds,<br>each with 10 puzzling levels for you to solve<br><br><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy"><br><br><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/dumpyandbumpy2.gif?t=1632163104" loading="lazy"><br>Experience a clever take on Japanese retro-classic puzzle games.<br>Throw and bite blocks, dodge past danger, blow up bombs,<br>breathe fire, teleport, or even golf!<br><br><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy"><br><br><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Avatar1.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Avatar3.png?t=1632163104" loading="lazy"><br>Work as a team in 2P mode, or mess with each other, to<br>master gimmicks and clear stages…<br><br><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy"><br><br><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/dumpyandbumpy.gif?t=1632163104" loading="lazy"><br>Or duke it out in a separate VS battle mode!<br><br><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy"><br><br><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/dumpybumpy.gif?t=1632163104" loading="lazy"><br>Replay levels to improve your high score or beat the<br>Pro time<br><br><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy"><br><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/AllAchievements.png?t=1632163104" loading="lazy"><br><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Star.png?t=1632163104" loading="lazy">&nbsp;<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Diamond.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Heart.png?t=1632163104" loading="lazy"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1631500/extras/Moon.png?t=1632163104" loading="lazy"><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/y6IHJxsT23U" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODMyODAxLzYzMzA5NjcuanBn/original/O9zyHw.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODMyODAxLzYzMzA5NjYuanBn/original/gCWa%2Fn.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODMyODAxLzYzMzA5NjUuanBn/original/qr9pHn.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODMyODAxLzYzMzA5NzAuanBn/original/gZ6jR9.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODMyODAxLzYzMzA5NjkuanBn/original/eEwTwn.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODMyODAxLzYzMzA5NjguanBn/original/v353mJ.jpg]]
<p>Challenging 2D platformer with simple graphics and great chiptune soundtrack. Try to escape the mysterious dungeon which full of dangerous traps and enemies.&nbsp;</p>
<p><br>Features:</p>
<ul><li>Minimalistic graphics&nbsp;</li><li>Hardcore gameplay&nbsp;</li><li>Great original Soundtrack</li><li>Many levels</li><li>Enemies blast if jump on their heads</li><li>Coins! Who does not like a coins?</li></ul>
<p>Can you pass all the tests and get out of a dangerous dungeon?</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/YCzl7_2089Y" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDAwMTA2LzU4NDUxMjguanBn/original/ipUjMH.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDAwMTA2LzU4NDUxMjcuanBn/original/iuQLGu.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDAwMTA2LzU4NDUxMzAuanBn/original/PApDdd.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDAwMTA2LzU4NDUxMzUuanBn/original/6G5jlh.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDAwMTA2LzU4NDUxMzEuanBn/original/8eseVy.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDAwMTA2LzU4NDUxMjkuanBn/original/5jLgbD.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDAwMTA2LzU4NDUxMzYuanBn/original/IqMjjb.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDAwMTA2LzU4NDUxMzMuanBn/original/yc5Icq.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDAwMTA2LzU4NDUxMzQuanBn/original/xpf1UI.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDAwMTA2LzU4NDUxMzIuanBn/original/gRgfeQ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDAwMTA2LzU4NDUxMzcuanBn/original/x5JdwR.jpg]]
<p class="text-center"><strong>What is this?</strong><br><em>Dwarves of Renida</em>r&nbsp;is a backstory builder for ttRPGs, ideally fantasy based ones. It was originally made for 5E but can be used for any system.&nbsp;It helps players create a connection to the culture and gods of the Renidari dwarves</p>
<p class="text-center"><strong>What's a Renidari dwarf?</strong><br>The Renidar Mountains are from my homebrew world. I made em' up. But they can easily be inserted into any fantasy ttRPG.&nbsp;</p>
<p class="text-center"><strong>Who's this for?</strong><br>This is for gamemasters and players. For gamemasters it's a quick and handy addition to their game. For player's it helps them build a connection to their character's world. Gives them knowledge of their culture, an understanding of their gods, and even some common sayings.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODA2OTcyLzQ2MTgyMjcuanBn/original/QulgCV.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODA2OTcyLzQ2MTgyMjIuanBn/original/UoP73a.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODA2OTcyLzQ2MTgyMjMuanBn/original/XNluI9.jpg]]
<p><strong></strong><b>A simple, lightweight way to make scrolling or non scrolling credits.</b><br><br>Just an empty scene and the&nbsp;<b>Easy Credits</b>&nbsp;package and you will have&nbsp;<b>beautiful customizable</b>&nbsp;credits.<br><br>- Manage credits via a&nbsp;<b>spreadsheet</b>!<br>-&nbsp;<b>Inlay images</b>&nbsp;and objects into the credits.<br>- Easily trigger&nbsp;<b>custom functions</b>&nbsp;on credits start and end.<br><br><b>Customizable</b><br><br>- Fonts.<br>- Colors.<br>- Spacing.<br>- Timing.<br>- Sprites.<br>- Quit Scene.<br>-And more!<br><br><b>Easy Credits Inlay System</b><br><br>- Place scrolling or stationary Sprites, Videos, Animated Objects and Audio Clips in to the credits.<br>- Easily manageable from inspector and spawns with the procedural credits.</p>
<p>Support:&nbsp;<a href="https://discord.com/invite/oneratgames" rel="nofollow noopener" referrerpolicy="origin">https://discord.com/invite/oneratgames</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODUyNTQ5LzgzODA3ODMucG5n/original/Y4vp3d.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODUyNTQ5LzgzODA3ODQucG5n/original/TxI4te.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODUyNTQ5LzgzODA3ODEucG5n/original/wtZ6se.png]]
<p><em></em>Eatvolve is an evolutionary eat-em-up, elevating a lowly worm to the ultimate hybrid organism by gobbling up other critters - and stealing their unique abilities! Freely explore a colourful world of adorable, edible animals and combine their powers to find new ways to get around, powerful attacks, and more. Be careful, though: only one species can be the pinnacle of evolution, and competition is fierce!<br><span></span></p>
<p>many controllers are supported,&nbsp;</p>
<p>wasd&nbsp; / arrow keys &nbsp; - Movement<br>E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Eat<br>S / Down Arrow&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; - Dig<br>space&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- Attack<br>P /&nbsp; ESC&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;-&nbsp; Pause menu</p>
<p>I have uploaded a new&nbsp; - in&nbsp;development build of Eatvolve&nbsp; priced at $5<br>I appreciate your support! this helps me to work on improving Eatvolve.<br>WARNING -&nbsp; There are many bugs in this version!<br><br>Once Eatvolve is complete, any purchase will have access to the full version!<br>I will also raise the price of Eatvolve at this time!&nbsp;</p>
<p><span></span></p>
<p>Music by coda - <a href="https://twitter.com/codatrigger" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/codatrigger</a></p>
<p>comments &amp; suggestions welcome 😊<br><a href="https://twitter.com/papadar_" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/papadar_<br>https://discord.gg/DF7TZEr<br></a><br></p>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODMzNjAvMjk4NzQ5NS5naWY=/original/Xu1QU0.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvODMzNjAvMTIyMjg2My5wbmc=/original/Ox3oIj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODMzNjAvMTIyMjg2MS5wbmc=/original/TAGF0h.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODMzNjAvMTIyMjg2Mi5wbmc=/original/n7zxXd.png]]
<h2 class="text-center">A procedural hook-based platformer&nbsp;</h2>
<p></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzU2NTU2ODcuZ2lm/original/4k2xQs.gif" loading="lazy"></p>
<div class="text-center"><div class=""><div class=""><iframe width="500" height="281" src="https://www.youtube.com/embed/3ns3PQorNWc" frameborder="0" allowfullscreen=""></iframe></div><br></div></div>
<p></p>
<p class="text-center"><strong>The cocos have been kidnapped!</strong>&nbsp;
</p>
<p class="text-center">The&nbsp;<strong>Pogovon&nbsp;</strong>empire invaded Cocodu planet and captured the cocos!&nbsp;Pogovons are searching for an<strong>&nbsp;unlimited source of power</strong>&nbsp;amongst&nbsp;species from different planets and heard about the&nbsp;<strong>unlimited happines</strong>&nbsp;of the cocos. Now they&nbsp;plan to extract their happiness to&nbsp;<strong>power up</strong>&nbsp;their<strong>&nbsp;deadly weapons</strong>.&nbsp;
</p>
<p class="text-center"><strong>This time there's no help around.&nbsp;</strong>
</p>
<p class="text-center"><strong>Play as a coco</strong>&nbsp;that finds an experimental&nbsp;<strong>laser-hook</strong>&nbsp;and swing your way out,<strong>&nbsp;search for your friends</strong>&nbsp;and destroy those&nbsp;<strong>super weapons.</strong>
</p>
<p></p>
<p class="text-center">Now also on&nbsp;<a href="https://linktr.ee/SIDRALGAMES" target="_blank" rel="nofollow noopener" referrerpolicy="origin">PS4, PS5, Xbox and Nintendo Switch</a></p>
<p></p>
<h3 class="text-center"></h3>
<h2 class="text-center">&nbsp;&nbsp;<img src="https://img.itch.zone/aW1nLzMwMDI5MjAuZ2lm/original/Q1Td%2Bg.gif" loading="lazy"></h2>
<ul><li><strong>Super cool</strong>&nbsp;<strong>hook movement</strong><strong>:</strong>&nbsp;Jump and swing across the place with a laser-hook and reach every corner to save your friends.
</li><li><strong>Randomly</strong>&nbsp;generated levels: Each run is completely different!
</li><li><strong>Infinite gameplay</strong>: Complete the game and loop the next time&nbsp;just to&nbsp;see how far can you make it.
</li><li><strong>Bouncing&nbsp;</strong>bullets!
</li><li><strong>10&nbsp;</strong>different playable&nbsp;<strong>cocos: E</strong>ach one have a&nbsp;different&nbsp;skill!&nbsp;<img src="https://img.itch.zone/aW1nLzU2NTU3MDguZ2lm/original/3NYAA3.gif" loading="lazy">
</li><li><strong>Six bosses:</strong>&nbsp;Destroy them by finding and pushing the&nbsp;<strong>buttons</strong>&nbsp;that deactivates them.
</li><li><strong>Secret</strong>&nbsp;and dangerous areas to discover.
</li><li><strong><img src="https://img.itch.zone/aW1nLzU2MzM4NTcucG5n/original/mNvplm.png" loading="lazy">&nbsp;Challenge Mode&nbsp;<em><strong><img src="https://img.itch.zone/aW1nLzU2MzM4NTcucG5n/original/mNvplm.png" loading="lazy">&nbsp;</strong></em></strong>&nbsp;Clear a series of handmade levels and unlock new cocos!
</li><li>Aliens!
</li><li><strong>More than 15 upgrades to choose!</strong>&nbsp;Turn enemies into food, obtain a shield, slow down missiles, jump higher, attract food...&nbsp;</li></ul>
<p></p>
<h4 class="text-center">&nbsp; &nbsp; &nbsp;&nbsp;<img src="https://img.itch.zone/aW1nLzMwMDI5MjQuZ2lm/original/bI3xVZ.gif" loading="lazy"></h4>
<ul><li>Eat&nbsp;<strong>food</strong>&nbsp;to gain hp.&nbsp;&nbsp;<img src="https://img.itch.zone/aW1nLzU2MzM4NzUucG5n/original/U%2Fes3A.png" loading="lazy">
</li><li>Go faster to increase the lenght of your&nbsp;<strong>trail.</strong>
</li><li>Use your trail to&nbsp;<strong>destroy enemies</strong>.&nbsp;<img src="https://img.itch.zone/aW1nLzU2MzM4OTEuZ2lm/original/TBwoyB.gif" loading="lazy"></li></ul>
<p class="text-center"><span style="color: inherit; font-size: inherit">&nbsp;</span><img src="https://img.itch.zone/aW1nLzQzNDY4NjIuZ2lm/original/SvXo0T.gif" style="text-align: center; color: rgb(188, 188, 188); font-size: 32px" loading="lazy"></p>
<p></p>
<p></p>
<p><br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzU2NzE4MjQuZ2lm/original/RCNLmv.gif" loading="lazy">&nbsp;&nbsp;&nbsp;<img src="https://img.itch.zone/aW1nLzMwMDY1NjYuZ2lm/original/QddMZt.gif" loading="lazy">&nbsp; &nbsp;&nbsp;&nbsp;<img src="https://img.itch.zone/aW1nLzU2NTU3OTQuZ2lm/original/h%2Bi7Fr.gif" loading="lazy">
</p>
<p class="text-center">&nbsp;<img src="https://img.itch.zone/aW1nLzU5Mjk5ODIucG5n/original/Z%2Fj01d.png" loading="lazy"></p>
<p class="text-center">&nbsp;<img src="https://img.itch.zone/aW1nLzQyNzMyODUucG5n/original/77wTOJ.png" loading="lazy">
</p>
<p class="text-center">&nbsp;<a href="https://twitter.com/pvvvlo" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@pvvvlo</a></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzQyNzMyODgucG5n/original/cc%2BGK9.png" style="color: inherit; font-size: inherit" loading="lazy"></p>
<p class="text-center">&nbsp;<a href="https://twitter.com/IngalaMusic" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@IngalaMusic</a>
</p>
<h2 class="text-center"><img src="https://img.itch.zone/aW1nLzU2MzEwNjguZ2lm/original/D7wDFC.gif" loading="lazy"></h2>
<p></p>
<p><br></p>
<p class="text-center">&nbsp; &nbsp; &nbsp; &nbsp;<img src="https://img.itch.zone/aW1nLzMwMDM0MjEuZ2lm/original/d3uDBU.gif" loading="lazy">
</p>
<p class="text-center">Pay the specified amount above the minimum and get the full high-quality&nbsp;<strong>20-track techno-synthwave soundtrack!</strong></p>
<figure><img src="https://img.itch.zone/aW1nLzU5Mjk5NzMuZ2lm/original/ePybOA.gif" loading="lazy"></figure>

<iframe width="720" height="450" src="https://www.youtube.com/embed/3ns3PQorNWc" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAzMzM5Ni81ODk3NzkyLmdpZg==/original/xC%2Bgx9.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzMzM5Ni81ODk3NzkzLmdpZg==/original/e0jDvo.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzMzM5Ni81ODk3Nzk1LmdpZg==/original/YVGsqr.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzMzM5Ni81ODk3NzkwLmdpZg==/original/1bgAg0.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzMzM5Ni81ODk3Nzk0LmdpZg==/original/4kQWpR.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzMzM5Ni82NDU0ODQ1LmdpZg==/original/NtP3Df.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzMzM5Ni82NDU0ODQ2LmdpZg==/original/%2FMdAE1.gif]]
<figure><img src="https://media.st.dl.pinyuncloud.com/steam/apps/715020/extras/Elden---Path-of-the-Forgotten-Temple.gif?t=1600656926" loading="lazy"></figure>
<p>Elden: Path of the Forgotten follows Elden’s journey as they are thrust into a dark and dying world that they must survive. The story is inspired by my experiences leaving home at age of 15 and being thrust into a dark world that scared and confused me.
</p>
<div class="text-center"><iframe style="width: 500px; height: 281px" src="https://www.youtube.com/embed/EMeCJV-rxQY" frameborder="0" allowfullscreen=""></iframe></div>
<p>Guide Elden on a mission across a blighted land to save their mother from ancient horrors. Engage in brutal, technical combat and master eldritch magics as you walk the Forgotten Path. Elden explores non-traditional storytelling through indirect methods – like reading an illustrated book in a language you don’t understand. The combat is based on reaction rather than action. Strategically, you will need to manage your stamina and position in order to master the art of parry or to find the perfect time to strike. Visually inspired by classic 16 and 8 bit games, Elden: Path of the Forgotten is a stunning, encapsulating, dark world waiting to be explored.<br><br><img src="https://media.st.dl.pinyuncloud.com/steam/apps/715020/extras/Elden-Item-Ques-v1.gif?t=1600656926" loading="lazy"><br></p>
<ul><li>Figure out Elden’s confusing world without guidance, tutorials, or support.</li><li>Many diverse and challenging regions.</li><li>Horrifying Lovecraftian enemies and bosses.</li><li>Unique and brutal weapons and spells.</li><li>Powerful and dynamic items.</li></ul>
<p><img src="https://media.st.dl.pinyuncloud.com/steam/apps/715020/extras/OtherworldScene.gif?t=1600656926" loading="lazy"></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/EMeCJV-rxQY" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODI0NDc0LzQ2MjEzMzcuanBn/original/UdBm6G.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODI0NDc0LzQ2MjEzMzQuanBn/original/kccQfT.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODI0NDc0LzQ2MjEzMzkuanBn/original/21r509.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODI0NDc0LzQ2MjEzMzguanBn/original/Uh9hPs.jpg]]
<p>Eldritch is a first-person action game inspired by roguelikes, immersive sims, and H. P. Lovecraft.</p>
<ul><li>Unearth ancient secrets and find your way to freedom! </li><li>Sneak, fight, and explore strange worlds! </li><li>Invoke mystical powers to augment your play style! </li><li>Randomly generated levels provide fresh challenges and opportunities! </li><li>Unlock shortcuts to jump directly to deeper dungeons!</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/OF_cCOKXgvk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzA1NTAvMjAyMTczNC5wbmc=/original/e2Z%2Fau.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzA1NTAvMzI2MTUzLnBuZw==/original/AKELan.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzA1NTAvMzI2MTU0LnBuZw==/original/njSur1.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzA1NTAvMzI2MTU5LnBuZw==/original/MCfyBr.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzA1NTAvMjAyMTczNS5wbmc=/original/odtkAw.png]]
<p><img src="https://img.itch.zone/aW1nLzQ3MjY1MzEucG5n/original/7aBotX.png" loading="lazy"></p>
<p><em><br></em></p>
<p><em>It's said that somewhere, hidden from all but the most determined explorers, there is a miniature world where one may go to escape the worries of life. After falling from the sky, you've found yourself in that very same miniature world. But now that you're there, can you ever return home again? <br></em></p>
<p><em>Snorri, the resident Wizard of the miniature world, has told you of a mysterious Tower in the Sky above his shop. Perhaps if you can collect enough Gems, you can reach the Tower, and with any luck, get back home!</em></p>
<p><strong><em>Elephantasy</em></strong> is a small exploratory puzzle-platforming game where you play as a tiny Elephant trying to get back to their home. Collect hidden Gems to raise your Rank, borrow Items from Snorri the Wizard, explore a vast and varied pixel-art world, meet a colourful cast of characters, and more! While exploring the miniature world, you'll discover a wide array of unique rooms and puzzles to solve using your Items, all of which give you various abilities; grow vines to reach high places, dash over seemingly bottomless pits, dive into uncharted waters, and lift the heaviest obstacles with ease! But beware; there are also strange and powerful beings in this magical world, many of whom won't give up their Gems willingly! It'll take all of your abilities, wits, and skill to gather enough Gems to reach the Tower!</p>
<p><em><strong>Features</strong></em><em><strong>:</strong></em></p>
<ul><li>Charming pixel-art characters, items, and environments</li><li>350+ unique rooms to discover</li><li>6+ Distinct areas to explore</li><li>A vast assortment of NPCs to meet and talk with</li><li>36 Gems to collect, in addition to other secrets</li><li>Multiple endings</li><li>4 Boss encounters (3 of which are optional)</li><li>Game speed settings, to allow players to set their own pace while exploring</li></ul>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzQ3MjcwMDUucG5n/original/dr7FGw.png" loading="lazy"><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODQzMTExLzQ3MjY4NjUucG5n/original/jRPMj7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODQzMTExLzQ3MjY4NjYucG5n/original/Jqkx1r.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODQzMTExLzQ3MjY4NjQucG5n/original/GuDkfr.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODQzMTExLzQ3MjY4NjcucG5n/original/7Q73%2BL.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODQzMTExLzQ3MjY4NjgucG5n/original/cT84a%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODQzMTExLzQ3MjY4NzIucG5n/original/p49TrY.png]]
<p><em>Elf Genders </em>is a worldbuilding tool for creating your own new systems of fantasy genders. Most humans are women, men, or nonbinary, but maybe elves are… something else? <em>Elf Genders </em>helps you decide what!<br></p>
<p>Elves are the example culture, but you can use these techniques to create a new system of genders for Dragons, Orcs, Fae, Werewolves, or any other fantasy creatures.
</p>
<p>Want to brighten up your fantasy RPGs with vivid, complex gender options? Generate these setting and lore details before you start a campaign or one-shot of any fantasy tabletop RPG, from Dungeons &amp; Dragons to the latest indie games.<span class="">&nbsp;</span>
</p>
<p><strong>You Will Need:</strong></p>
<p>* Any number of players, including 1.<span class="">&nbsp;</span>
</p>
<p>* A set of polyhedral dice (d4, d6, d8, d10, d12, d20) or online dice roller.<span class="">&nbsp;</span>
</p>
<p>* For multi-player sessions: a method for shared note-taking, such as Google Docs (if playing online) or a designated scribe (if playing in person).
</p>
<p><strong>Credits:</strong><br></p>
<p>Lucian Kahn – writing &amp; game design</p>
<p>Jabari Weathers&nbsp;– cover illustration</p>
<p>Nathan D. Paoletta&nbsp;– layout</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAyNjk0MC81ODU3MzkwLmpwZw==/original/Sw8q5O.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAyNjk0MC81ODU3MzkyLmpwZw==/original/YePD9K.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAyNjk0MC81ODU3Mzk0LmpwZw==/original/cpAMIv.jpg]]
<h4 class="text-center"><a href="https://www.patreon.com/posts/52507741" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Support me on Patreon and get this plugin with a discount or even for free!</a></h4>
<h3>Features:</h3>
<ul><li>Create mini-maps from images or drawings!</li><li>Use icons to represent characters on minimap!</li><li>Change icon zoom, hue, and much more!</li><li>Create icon templates for quick use in events/actors! (PRO)</li><li>Hide/Show the minimap with a switch.</li><li>Add a noise filter to the minimap! (PRO)</li><li>Set 4 different shapes for mini-maps! (PRO)<br>
</li><li>Put mini-map inside a window! (PRO)
</li><li>See a full mini-map on a different scene! (PRO)
</li><li>Play common event when clicking/touch minimap (PRO)</li></ul>
<h3>Free Version:</h3>
<div class=""><iframe width="560" height="315" src="https://www.youtube.com/embed/WP-ikV6HPOE" frameborder="0" allowfullscreen=""></iframe></div>
<h3>Pro Version:</h3>
<div class=""><iframe width="560" height="315" src="https://www.youtube.com/embed/naveUQGVFc8" frameborder="0" allowfullscreen=""></iframe></div>
<h3>Char Sprites on the minimap</h3>
<div class=""><iframe width="500" height="281" src="https://www.youtube.com/embed/6LfPGXTr2h0" frameborder="0" allowfullscreen=""></iframe></div>
<h3>Noise filter</h3>
<div class=""><iframe width="560" height="315" src="https://www.youtube.com/embed/bOasSDzun2g?controls=0" frameborder="0" allowfullscreen=""></iframe></div>
<h3>Future updates</h3>
<ul><li>Command on the option scene to enable/disable the minimap</li><li>Navigate&nbsp;through&nbsp;characters&nbsp;on&nbsp;the&nbsp;full&nbsp;minimap</li><li>Toll&nbsp;tips&nbsp;on&nbsp;characters&nbsp;or&nbsp;Description&nbsp;window&nbsp;for&nbsp;each&nbsp;character</li><li>Cancel&nbsp;button&nbsp;on&nbsp;the&nbsp;full&nbsp;minimap&nbsp;scene.</li><li>Visible&nbsp;cursor&nbsp;on&nbsp;the&nbsp;full&nbsp;minimap.</li><li>Integration&nbsp;with&nbsp;Eli Map Reveal</li></ul><h3 class="text-center"><a href="https://docs.google.com/document/d/1P_uZNPl5VDNOYBRmBqTv1LCVmjHuTl49LvobEgoHkxM/edit?usp=sharing" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Update Log</a></h3>
<h3 class="text-center"><a href="https://www.hakuenstudio.com/terms-of-use-5-0-0" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Terms of use 5.0.0 and higher</a></h3>
<h3 class="text-center"><a href="https://www.hakuenstudio.com/terms-of-use" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Terms of use(Old)</a></h3>

<iframe width="720" height="450" src="https://www.youtube.com/embed/WP-ikV6HPOE" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MTYzNC82Mjg4NDI3LnBuZw==/original/ahj8yq.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MTYzNC82Mjg4NDI5LnBuZw==/original/Kkkss%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MTYzNC82Mjg4NDMxLnBuZw==/original/h8VeqM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MTYzNC82Mjg4NDMzLnBuZw==/original/NXoxf%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MTYzNC82Mjg4NDMwLnBuZw==/original/lAUh9r.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MTYzNC82Mjg4NDMyLnBuZw==/original/l48HxU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MTYzNC82Mjg4NDI4LnBuZw==/original/UHbjvc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MTYzNC83MTcyMDUxLmpwZw==/original/qOjB5k.jpg]]
<h3 class="text-center">Want to support me?</h3>
<p class="text-center"><a href="https://www.patreon.com/bePatron?u=37804827" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzQyNzA3MDgucG5n/original/%2BnPTSu.png" style="max-width: 100%" loading="lazy"></a>
</p>
<h3><br>Introduction</h3>
<p>This plugin enhances some event commands, letting you call them and set their arguments in a dynamic way, either by variables or formulas.
</p>
<p>For example, the default event command for giving items, weapons, and armors let you dynamically set the number of items received with a variable.&nbsp;
</p>
<p>But it does not let you customize dynamically the item you are giving.
</p>
<p>Instead, if you want to give an item dynamically you have to create several conditional branches or use a script call.
</p>
<p>But with this plugin, you can set an item/weapon/armor dynamically using a variable or formula. And also give different items with one command.
</p>
<p>You can also change formation on the map, change the name of an actor using variables or formulas, and much more!
</p>
<h3>Features</h3>
<p>Current Enhanced Commands:
</p>
<ul><li>Change Item
</li><li>Change Weapon
</li><li>Change Armor
</li><li>Change Party Member
</li><li>Change State
</li><li>Change Skill
</li><li>Change Equipment
</li><li>Change Name
</li><li>Change Class</li><li>&nbsp;Change Nickname</li><li>Change Profile
</li><li>Change Actor Images
</li></ul>
<p>● New Commands:
</p>
<ul><li>Change Party Formation on Map
</li></ul>
<h3>How to use</h3>
<p>♦ PLUGIN COMMANDS ♦
</p>
<p><strong>● Search Type</strong>
</p>
<p>Some plugin commands have the argument "Search Type" and "Actor Id".
</p>
<p>On the "Search Type," you can set the method that the plugin will use to get the "Actor Id" you want to apply the command.<br>You can choose to find the "Actor Id" by its ID or by their party INDEX.</p>
<p><strong>● Map Characters</strong>
</p>
<p>Some plugin commands have the argument "Character ID" or "Characters".
</p>
<p>This argument is a reference for the map sprites: Events, Vehicles, Players, and Followers.&nbsp;Below is how you can identify them:</p>
<ul><li>1, 2, 3... → Event Ids
</li><li>0 → This event
</li><li>-1 → Player
</li><li>-2, → First Follower. -3, Second Follower. Etc...
</li><li>boat, ship, airship → Vehicles
</li></ul>
<p><strong>● Multiple operators</strong>
</p>
<p>In almost all arguments, you can set the values using either formula, \v[id] or numbers.
</p>
<p>You can also set multiple entries separating them by comma(,) or double trace(--) when you want to get a range of numbers.&nbsp;Example selecting multiple actors/characters:</p>
<ul><li>1, 2, \v[3], 4--8, 9
</li></ul>
<p>The command will be applied for actors/characters with ID 1, 2, the value of the variables 3, 4, 5, 6, 7, 8, 9.
</p>
<p>As you can see the "--" is like a range operator. It will get all numbers between(and including) the 4 and 8.
</p>
<p><em>NOTE: If you choose "Index" on a Search Type, you can write "All" to apply to all party members.</em>
</p>
<h3 class="text-center"><a href="https://docs.google.com/document/d/1Gkk-HmiRhNg2djlEoI3JRgPUohEQuRsj81p9MmwMJd0/edit?usp=sharing" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Update Log</a></h3>
<h3 class="text-center"><a href="https://www.hakuenstudio.com/terms-of-use-5-0-0" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Terms of use 5.0.0 and higher</a></h3>
<h3 class="text-center"><a href="https://www.hakuenstudio.com/terms-of-use" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Terms of use(Old)</a></h3>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MDQ0OS83NTE5MTMzLmpwZw==/original/4Q5vmc.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MDQ0OS83NTE5MTM1LmpwZw==/original/hR5cPd.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MDQ0OS83NTE5MTMyLmpwZw==/original/UZRnC9.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MDQ0OS83NTE5MTM2LmpwZw==/original/7yatHN.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MDQ0OS83NTE5MTM0LmpwZw==/original/dz8%2BqB.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MDQ0OS83NTE5MTM3LmpwZw==/original/7QxF5a.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MDQ0OS83NTE5MTM5LmpwZw==/original/tQ9I92.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MDQ0OS83NTE5MTM4LmpwZw==/original/eoswdT.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MDQ0OS83NTE5MTQwLmpwZw==/original/75QS2M.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MDQ0OS83NTE5MTQxLmpwZw==/original/S5Xgnq.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MDQ0OS83NTE5MTQyLmpwZw==/original/elM%2Boe.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MDQ0OS83NTE5MTQ0LmpwZw==/original/kYOgFe.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MDQ0OS83NTE5MTQzLmpwZw==/original/%2FZ9wjO.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MDQ0OS83NTE5MTQ1LmpwZw==/original/xQ0Byw.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MDQ0OS83NTE5MTQ2LmpwZw==/original/l2RIzi.jpg]]
<h3 class="text-center">Want to support me?</h3>
<p class="text-center"><a href="https://www.patreon.com/bePatron?u=37804827" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzQyNzA3MDgucG5n/original/%2BnPTSu.png" style="max-width: 100%" loading="lazy"></a>
</p>
<h3 class="text-center"></h3>
<h3>Introduction</h3>
<p>This plugin enhances some event commands, letting you call them and set their arguments in a dynamic way, either by variables or formulas.
</p>
<p>For example, let you apply the same movement route for more than one character, without the need of creating the same move route command for each character.
</p>
<p>Set Wait values using variables and much more!
</p>
<h3>Features</h3>
<p>Current Enhanced Commands:
</p>
<ul><li>Move route for followers and vehicles
</li><li>One Move route for multiple characters
</li><li>Change Character Location
</li><li>Common Event
</li><li>Jump to Label
</li><li>Erase Event
</li><li>Wait
</li><li>Show Animation
</li><li>Show Balloon Icon
</li><li>Fade in/out
</li><li>Change Tileset
</li><li>Name Input Processing
</li></ul>
<p>New Commands:
</p>
<ul><li>Open Skill, Equip, or Status scene for a specific actor.
</li><li>Open Item Scene. (Optionally, on a specific category)
</li><li>Open Load Scene
</li></ul>
<h3>How to use</h3>
<p>♦ PLUGIN COMMANDS ♦
</p>
<p><strong>● Search Type</strong>
</p>
<p>Some plugin commands have the argument "Search Type" and "Actor Id".
</p>
<p>On the "Search Type," you can set the method that the plugin will use to get the "Actor Id" you want to apply the command.
</p>
<p>You can choose to find the "Actor Id" by its ID or by their party INDEX.
</p>
<p><strong>● Map Characters</strong>
</p>
<p>Some plugin commands have the argument "Character ID" or "Characters".
</p>
<p>This argument is a reference for the map sprites: Events, Vehicles, Players, and Followers.&nbsp;Below is how you can identify them:</p>
<ul><li>1, 2, 3... → Event Ids
</li><li>0 → This event
</li><li>-1 → Player
</li><li>-2, → First Follower. -3, Second Follower. Etc...
</li><li>boat, ship, airship → Vehicles
</li></ul>
<p><strong>● Multiple operators</strong>
</p>
<p>In almost all arguments, you can set the values using either formula, \v[id] or numbers.
</p>
<p>You can also set multiple entries separating them by comma(,) or double trace(--) when you want to get a range of numbers.&nbsp;Example Selecting multiple actors/characters:</p>
<ul><li>1, 2, \v[3], 4--8, 9
</li></ul>
<p>The command will be applied for actors/characters with ID 1, 2, the value of the variables 3, 4, 5, 6, 7, 8, 9.
</p>
<p>As you can see the "--" is like a range operator. It will get all numbers between(and including) the 4 and 8.
</p>
<p><em>NOTE: If you choose "Index" on a Search Type, you can write "All" to apply to all party members.</em></p><h3 class="text-center"><a href="https://docs.google.com/document/d/1GXPu1ABs7IYCBZKZPTgNnzUNeJDpR4MRQJgGUh2fWqE/edit?usp=sharing" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Update Log</a></h3>
<h3 class="text-center"><a href="https://www.hakuenstudio.com/terms-of-use-5-0-0" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Terms of use 5.0.0 and higher</a></h3>
<h3 class="text-center"><a href="https://www.hakuenstudio.com/terms-of-use" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Terms of use(Old)</a></h3>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MjQ4Ny83NTE5NDEzLmpwZw==/original/ajtID1.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MjQ4Ny83NTE5NDE0LmpwZw==/original/ZZXbqV.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MjQ4Ny83NTE5NDE1LmpwZw==/original/gbutIO.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MjQ4Ny83NTE5NDE2LmpwZw==/original/oELJ6N.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MjQ4Ny83NTE5NDE3LmpwZw==/original/swxhm5.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MjQ4Ny83NTE5NDE4LmpwZw==/original/7XM6Hd.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MjQ4Ny83NTE5NDIwLmpwZw==/original/0fH5B0.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MjQ4Ny83NTE5NDIyLmpwZw==/original/cF0Gp9.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MjQ4Ny83NTE5NDIzLmpwZw==/original/H3AUX%2F.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MjQ4Ny83NTE5NDI0LmpwZw==/original/pITnhg.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MjQ4Ny83NTE5NDIxLmpwZw==/original/%2BCcx1Y.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MjQ4Ny83NTE5NDI1LmpwZw==/original/mzaOKY.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MjQ4Ny83NTE5NDE5LmpwZw==/original/m4aQAJ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5MjQ4Ny83NTE5NDI4LmpwZw==/original/DLQwEq.jpg]]
<p>There is a treasure hidden in the catacombs below the ancient city of Capath, and Kettec is intent on uncovering it. His friends however, would say this obsession is merely a way for Kettec to escape his problems with people. <br></p>
<p>And Kettec’s life is about to get more complicated, thanks to one Mell Wess. Arriving from another continent, Mell has assumed a powerful lordship and struggles to discern where his loyalties lie.&nbsp;
  </p>
<p>Mell and Kettec are attracted inexorably to one another, but to survive, the pair will have to navigate the twisted underground passages and the equally warped government of Capath. Even if they are able to escape these trials, a greater disaster looms...
  </p>

[img width=500 [https://img.itch.zone/aW1nLzMxODY1MTguanBn/original/ZsZjYW.jpg]]
<p><em></em><em>Some days go so well that they seem almost magical. Other days can be a struggle just to get through. On those days, maybe a bit of enchantment in the form of tea or another hot drink can help.</em></p>
<p>Enchanted Blends can be a journaling game or thought exercise, whatever best makes your day magical. All you need are these instructions, your favorite hot drink, and maybe 2 six-sided dice and something to write with and on, depending on how you want to use this. Create the enchanted blend you need and use it throughout your day, or create a new blend every time you need something different.</p>
<p>Just remember&nbsp;that the real magic is inside of you. This is a visualization technique simply meant to make it easier for you to tap into your own inner abilities.</p>
<p><br><em>Inspired by <a href="https://bethmakesgames.itch.io/everyday-enchanter" target="_blank">Everyday Enchanter</a> by&nbsp;✨Beth Jackson. It's an incredible and inspiring game that I&nbsp;cannot recommend enough &lt;3</em></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQxNDg5MC84MzE3OTAyLnBuZw==/original/ZVgqvF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxNDg5MC84MjUzNjM3LnBuZw==/original/cb2zh%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxNDg5MC84MjUzNjM4LnBuZw==/original/ngxU%2Fy.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxNDg5MC84MjUzNjM5LnBuZw==/original/ANmgBf.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxNDg5MC84MjUzNjQwLnBuZw==/original/yskHk2.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxNDg5MC84MjUzNjQyLnBuZw==/original/doQQCw.png]]
<p>The Endless Lands are infinite and if you want something, you may travel until you find it.&nbsp;</p>
<p>Endless Lands is a 50 pages&nbsp;fantasy game with a simple six-sided dice system, where each resolution has highly influential consequences in fiction.</p>
<p>The main characters are unique and take high risks as they put their Paths and Relationships to the test. The system is made up of rules modules that you can customize to improve your experience. It has different ways of building the world and styles of play.</p>
<p>This game is a personal project, developed, designed and illustrated by one person. Every contribution helps to keep making games like this.</p><p>Follow&nbsp;<a href="https://twitter.com/BareynaI" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Mundos Infinitos</a>&nbsp;for more games. If you liked this game, share this link on your social media.<span></span><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODUyODg0LzQ3ODMxMzEuanBn/original/jMlMV5.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODUyODg0LzQ3ODMxMzQuanBn/original/h8ft9w.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODUyODg0LzQ3ODMxMzIuanBn/original/AuMlhi.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODUyODg0LzQ3ODMxMzMuanBn/original/tP%2F9VG.jpg]]
<p><em>Welcome to Enoch, the city on the comet: port, haven, metropolis, and necropolis of the ancient and forgotten.</em></p>
<p><em><strong>Enoch's Wake</strong></em>&nbsp;is a stand-alone 2d6 tabletop RPG about life in the comet city. Stroll from wealthy Promenade, where the merchants build homes to compete with the aristocrats of High Rock to the boisterous inns of Harbortown. Sign on with a ship's crew, and journey the Hundred Spheres. Consult the haughty scholars of The High Academy or masked tutors of the Secret Collegium for the secrets of the Wild Void. Get shady messages calling you to meet with corrupt senators in the shadowy Underrock near the Necropolis Gates, but don't venture into them: the Immortals and their servitors guard that alien ruin (and the treasures foolish people claim are within).
</p>
<p><em><strong>Enoch's Wake</strong></em>&nbsp;includes the Traveller-inspired rules you use to build your character, play, and&nbsp;use arcane powers. You'll also find fantastical (and mundane) equipment, rules for using skills, and pointers on the fine art of Voidjamming. Enoch's Wake is a standalone game with everything you'll need to play.<br></p>
<p>US Customers can now pick up a <a href="https://r-rook.myshopify.com/cart/41241126207682:1?channel=buy_button" target="_blank" rel="nofollow noopener" referrerpolicy="origin">print preorder</a> to be delivered in December 2021.</p>
<p><em><strong><a href="https://www.kickstarter.com/projects/r-rook/chronicles-of-the-spacejammer-enochs-wake/" rel="nofollow noopener" referrerpolicy="origin">Kickstarted in February 2021</a>, this is the 3rd beta of the Enoch's Wake&nbsp;player rules. All purchasers will be automatically upgraded when the final version is released by the end of the year. The final version will have layout by&nbsp;<a href="https://diwatamnl.itch.io/" target="_blank">Diwata Ng Manila</a> and editing by&nbsp;<a href="https://s-jared.itch.io/" target="_blank">Jared Sinclair</a>.&nbsp; Make a copy of the&nbsp;<a href="https://r-rook.live/Keeper-Of-Enoch" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Google Sheets-powered character keeper for online play</a>.</strong></em></p>
<p>The PDF is going through the final proof pass and will then an accessibility update (PDF/UA).<br><em></em></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA5NjI1Ni83MzUyNDE2LnBuZw==/original/gyhKlY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5NjI1Ni83MzUyNDE0LnBuZw==/original/tzH9Jt.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5NjI1Ni83MzUyNDExLnBuZw==/original/bU9iGh.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5NjI1Ni83MzUyNDEyLnBuZw==/original/epagqi.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5NjI1Ni83MzUyNDEzLnBuZw==/original/ZNS6Go.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5NjI1Ni83MzUyNDEwLnBuZw==/original/Fz76T1.png]]
<p class="text-right"><img src="https://img.itch.zone/aW1nLzIxNjAwNzEuanBn/original/PxMOKh.jpg" loading="lazy">
</p>
<blockquote>Every life counts.
<br>Every story is worth recounting.
<br>Exist. Tell. Spread your story.
</blockquote>
<p><em>forced departure, loneliness, hardships, uncertainties, hopes... This is:</em><br></p>
<h4>ERRANCE</h4>
<p>it means "roaming" in french<br>→ To play, you'll need one six-sided dice (D6) and a pen. Print, fold, cut, play. Tell the story and hopes of the game's only character, alone or collectively in a small group. <em>You can then leave the booklet somewhere, so that it can be found by someone else... or share your message of hope or support in the comments (or on social networks by writing <a href="https://twitter.com/hashtag/CorazonBundle" target="_blank" rel="nofollow noopener" referrerpolicy="origin">#CorazonBundle</a>).</em><br></p>
<hr>
<p class="text-right">&nbsp;<em><img src="https://img.itch.zone/aW1nLzIxNjAwNzAuanBn/original/ePhFJj.jpg" loading="lazy">&nbsp; <br></em></p>
<blockquote>Chaque vie compte.
<br>Chaque histoire mérite d’être contée.
<br>Existez. Témoignez. Diffusez.
</blockquote>
<p><em>départ forcé, solitude, épreuves, doutes, espoirs... Faites l'expérience de :</em><br></p>
<h4>ERRANCE</h4>
<p>→ Pour jouer, vous aurez besoin d'un dé à six faces (D6) et de quoi écrire. Imprimez, pliez, coupez, jouez. Narrez le vécu et les espoirs de l'unique personnage du jeu, seul·e ou collectivement en petit groupe.<em> Vous pouvez ensuite laisser le livret quelque part, pour qu'il soit trouvé par quelqu'un d'autre... ou partager vos mots d'espoir ou de soutien dans les commentaires (ou sur les réseaux avec le tag <a href="https://twitter.com/hashtag/CorazonBundle" target="_blank" rel="nofollow noopener" referrerpolicy="origin">#CorazonBundle</a>).<br></em></p>
<table><tbody><tr><td><strong>july 2019. </strong>angela quidam for the <a href="https://itch.io/jam/corazon-bundle-jam" target="_blank">Corazon Bundle</a> in support of immigrants detainees in the USA, in need for legal services and lawyers. If you can, consider make a donation to <a href="https://t.co/rrsMaGf8Oj" target="_blank" rel="nofollow noopener" referrerpolicy="origin">RAICES</a> or the <a href="https://t.co/GfIvP0GjHZ" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Project Corazon Travel Fund</a> or <a href="https://www.lacimade.org/nous-connaitre/missions/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">La Cimade</a> or a local association you know. <br></td><td><strong>juillet 2019. </strong>angela quidam pour le <a href="https://itch.io/jam/corazon-bundle-jam" target="_blank">Corazon Bundle</a> en faveur des migrants détenus aux USA et qui ont besoin d'assistance juridique et d'avocats. Si vous en avez les moyens financiers, faites un don à <a href="https://t.co/rrsMaGf8Oj" target="_blank" rel="nofollow noopener" referrerpolicy="origin">RAICES</a> ou The <a href="https://t.co/GfIvP0GjHZ" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Project Corazon Travel Fund</a> ou <a href="https://www.lacimade.org/nous-connaitre/missions/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">La Cimade</a> ou une autre association que vous connaissez.<br></td></tr><tr><td><strong>fonts:</strong> Francisco (<a href="https://www.homelessfonts.org/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">HomelessFonts</a>, take a look at it!) &amp; Alegreya (Juan Pablo del Peral)</td><td><strong>caractères typo</strong>: Francisco (<a href="https://www.homelessfonts.org/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">HomelessFonts</a>, jetez-y un oeil!) &amp; Alegreya (Juan Pablo del Peral)</td></tr></tbody></table>
<table><tbody></tbody></table>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDU5MTIyLzIzMzU0NTMuanBn/original/F0ltlb.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU5MTIyLzIzMzU1NzUuanBn/original/Sd7USl.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU5MTIyLzIzMzU0MDYucG5n/original/N1oPc4.png]]
<p>Tired of the daily churn at the office, only to come home to an empty apartment? The Rainbow Dome shelter will help you find the perfect partner to spice up your life! Take a plunge into our exotic selection of pets, and you'll surely find the piece of you you've always been missing!</p>
<p><br>Inspired by&nbsp;<em>Hatoful Boyfriend</em>&nbsp;and the team’s love of animals,&nbsp;<em>Eternia: Pet Whisperer</em>&nbsp;is a short visual novel that sees you venture to a local deluxe animal shelter to find a companion to cure your loneliness. What ensues is a week you’ll never forget.<br><br><strong>Features</strong></p>
<ul><li>Befriend and adopt up to 6 animals: Cockatoo, Frill-Necked Lizard, Sphynx Cat, Koala Bear, Rat Brothers, Border Collie.<br>
</li><li>Ever wondered what a partying cockatoo might talk about? A neurotic border collie? Or a fitness-fanatic koala from Scotland? Now you can find out.
</li></ul>
<p>Made for a game jam by Shinmera and his team, during the development of their larger ARPG title, <a href="https://kandria.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Kandria</a>.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/vSvd_ObujK8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAwNTc5MS81NzI4NTQyLnBuZw==/original/9t95W8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwNTc5MS81NzI4NTQxLnBuZw==/original/vuGC%2BF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwNTc5MS81NzI4NTg0LnBuZw==/original/A2zgmL.png]]
<p><strong>EVADER</strong> is an arcade style action game about skilfully avoiding death using a unique dual-control movement system.&nbsp;</p>
<p>Survive for as long as you can against endless waves of enemies&nbsp;.<br></p>
<ul><li>Fast and frantic "die and retry" gameplay</li><li>Six unique enemy types</li><li>Xinput Gamepad + Keyboard support (Gamepad recommended)</li><li>Online Leaderboards</li></ul>
<p><u><strong>Featured on <a href="http://kotaku.com/a-twin-stick-game-with-no-bullets-1796369065" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Kotaku</a>&nbsp;and <a href="http://www.pcgamer.com/free-games-of-the-week/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">PC Gamer</a>!</strong></u></p>
<p>------------------------------------------------------</p>
<p>Made for <a href="https://itch.io/jam/wizard-jam-5" target="_blank">Wizard Jam 5</a></p>
<p>Inspired by <a href="http://superhexagon.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Super Hexagon</a>,&nbsp;<a href="http://store.steampowered.com/app/8400/Geometry_Wars_Retro_Evolved/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Geometry Wars</a>, <a href="http://www.softbodygame.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Soft Body</a>, <a href="https://www.giantbomb.com/helix/3030-48446/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Helix</a> and&nbsp;&nbsp;<a href="https://roburky.itch.io/three-body-problem" target="_blank">Three Body Problem</a>.</p>
<p>Leaderboard hosting by <a href="http://www.dreamlo.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Dreamlo</a>.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/bZjy6rFM7-Q" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTUwNjMxLzcwMTc5MC5wbmc=/original/A5WId5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUwNjMxLzcwMTc0NS5qcGc=/original/Z7Rvja.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUwNjMxLzcwMTc1Ny5qcGc=/original/%2BPVrWY.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUwNjMxLzcwMTc1OC5qcGc=/original/kSg27w.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUwNjMxLzcwMTc0Ny5qcGc=/original/j3zQHy.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUwNjMxLzcwMTc0OS5wbmc=/original/WdYsWA.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUwNjMxLzcwMTc1MC5qcGc=/original/DahlEY.jpg]]
<p><em>Evangeline</em>™ is a short narrative game where color guides you through the world. Set in the 1980s, you are thrown into a strangely familiar monochrome neighborhood and must piece together the story as you play.</p>
<p>Inspired by the loss of a loved one, <em>Evangeline</em>™ is about life, love, and loss, and will invite you to connect with those you care about.</p>
<h2>What People Are Saying:</h2>
<ul><li>"... a truly exceptional experience." ‒ <em>Game Lens</em></li><li>"Simple and lovely." ‒ <em>Cliff Bleszinski, Boss Key Productions CEO</em></li><li>“... a short but immensely thought-provoking story ... go and play this game now.” ‒ <em>Game Grin</em></li></ul>
<h2></h2>
<h2>Features:</h2>
<ul><li>Play the definitive edition of Raconteur Games' <em>Evangeline</em>™, featuring post-game extras, developer commentary, VR support* and more.</li><li>Relax in a calming, serene environment. There is no way to fail, die, or run out of time ‒ <em>Evangeline</em>™ lets you play at your own pace.</li><li>Explore a detailed 1980s neighborhood to discover a life-changing act of love.</li><li>Experience a stunning world brought to life through the guidance of color.</li></ul>
<p><br></p>
<p>Fans of games like <em>Dear Esther</em>, <em>Journey</em>, and <em>Gone Home</em> will feel right at home. Whether you want an emotional story that will give you a new perspective on love, or an exciting game mechanic where color guides you, <em>Evangeline</em>™ has something for everyone.</p>
<p><em>Evangeline</em>™ was designed to be accessible by both hardcore and casual gamers. It has also been tailored to be enjoyable for most levels of color perception, such that color blind players should be able to enjoy the game no matter their situation.</p>
<p><br></p>
<p><em>* To play</em> <em>Evangeline</em><em>™</em><em> in VR mode, please download the VR build.</em></p>
<p><em><br></em></p>
<p>
	<strong>Minimum requirements:</strong>
</p>
<p>
	OS: <strong>Windows</strong> 7, 8, or 10; <strong>Mac</strong> OSX Version 10.7 or newer; <strong>Linux</strong> glibc 2.11 or newer<span></span></p>
<p>
	CPU: 3 GHz
</p>
<p>
	Memory: 4 GB RAM
</p>
<p>
	Graphics: 2 GB GPU
</p>
<p>
	Storage: 2 GB available space
</p>
<p>
	<strong>Recommended:</strong>
</p>
<p>
	OS: Windows 10, Mac OSX Version 10.7 or newer, Linux glibc 2.11 or newer</p>
<p>
	CPU: 3 GHz
</p>
<p>
	Memory: 8 GB RAM
</p>
<p>
	Graphics: 4 GB GPU
</p>
<p>
	Storage: 2 GB available space
</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/_AXujZjB9Us" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTEyNDM3LzUyMTg2MS5qcGc=/original/BcOIU9.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEyNDM3LzUyMTg1Ny5qcGc=/original/%2FM%2F9DN.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEyNDM3LzUyMTg1OC5qcGc=/original/Fvtivd.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEyNDM3LzUyMTg1OS5qcGc=/original/q0%2Fpid.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEyNDM3LzUyMTg2MC5qcGc=/original/DlDwi1.jpg]]
<p><strong>Evergreen Wilds: Physical brochures available at&nbsp;Exalted Funeral</strong><br></p>
<p>Life can be hectic, chaotic, and busy. Every now and again we just need a little break from the norm. Evergreen Wilds has a prime opportunity for you! Take a season away from your home life and spend it as a ranger here in our national park! We'll put you through a few weeks of training before dropping you off for an 8 week rotation. As you respond to calls from Ranger HQ to investigate and document incidents, you'll be keeping hikers and campers safe, and maintaining the security and beauty of the Wilds.&nbsp;
</p>
<p><strong>What is Evergreen Wilds?</strong>
Evergreen Wilds is a solo roleplaying game that allows a player to live and explore a season as a park ranger in a national park. Evergreen Wilds uses a simple journaling system, with keyword, and weather prompts, and map locations to create unique encounters throughout each week the player is stationed.&nbsp;</p>
<p>&nbsp;
<strong>Evergreen Wilds Features:</strong>
</p>
<ul><li>A concise stylized brochure with all rules, and information needed to play within.
</li><li>A full park map, with locations, keywords, and weather prompts.
</li></ul>
<p><strong>Social Media Links</strong>
You can find us here on <a href="http://twitter.com/dtrpgs" rel="nofollow noopener" referrerpolicy="origin">Twitter</a> 
You can find our games at <a href="https://disastertourism.itch.io/">Disaster Tourism</a>.
</p>
<p><strong>Team Members&nbsp;</strong>
</p>
<p><strong>Kirby Franklin</strong> - Design and Development, Map</p>
<p><strong>Kristen Denner - </strong>Artwork, and Layout</p>
<p><strong>Jarrett Crader - </strong>Editing
</p>
<p>Sign up for our newsletter here:&nbsp;<a href="https://mailchi.mp/e698c78f6b85/subscribe" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">https://mailchi.mp/e698c78f6b85/subscribe</a><br></p>
<p>Join our discord and ask for help with any confusion, or questions!&nbsp;<br></p>
<p><a href="https://discord.gg/5guPbwTX2A" rel="nofollow noopener" referrerpolicy="origin">https://discord.gg/5guPbwTX2A</a>
</p>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM2NzQyNS83OTk4Mjg0LnBuZw==/original/N6bTIi.png]]
<p>¡Hoja de cálculo! Spreadsheet!<strong><strong><br></strong></strong></p><p>Community copies available! If there are none left, just contact me.</p>
<p class="text-center"><strong><strong>---<br></strong></strong></p>
<p><strong><strong>An emotional journey. A character's inner monologue.
</strong></strong><br></p>
<p>This is my first game ever. So apologies for the mistakes. <br>I made it up for the&nbsp;<a href="https://itch.io/jam/solo-journaling-rpg-jam" target="_blank">Solo journaling RPG jam</a> and a couple more jams.<br></p>
<p>It's a narrative (journaling) game, as much as it is a tool to create a character’s emotional backstory, his/her/its personality. Or… it can be as well a sort of meditation on your own past and future life through the present moment.
</p>
<p><em>What is this and what is it useful for?
</em></p>
<p>This solo game is also a resource for creating/telling stories and it can be used to inspire you, meditate about your past or that of a character or another person (real or ficticious) whose backstory you want to imagine, make up or figure out.
</p>
<p>It can be used as a one-shot or on successive sessions, to link and build a lifetime of memories, thoughts and emotions, not only referred to the past, but also to the present and the future as well.&nbsp;
</p>
<p>The protagonist of this emotional journey is a character in a story to whom you want to discover the emotional background and personality.&nbsp;
</p>
<p>You want to surface her character or forge it for her, in the case it wasn't obvious; briefly, to behold everything that has made (will make) her who she is, what determines his behaviour and the way he acts and thinks, shaped by his past and present, as well as conditioned by his perception of the future.
</p>
<p>You can also be yourself the character, be the protagonist of your own story, in a kind of meditative review of what has brought you up to this moment, including what you expect (or not) from the future. <br></p>
<p><strong>TDLR<br>Short and to-the-point explanation of the mechanism&nbsp;
</strong><br></p>
<p>Roll on the three tables Evocation (Emotional Journey), Context, and Moment in time and create a memory, an evocation of the past, or a premonition, an omen of something future. From there, roll on the Evocation (Emotional journey) table and follow the instructions, to roll on one or several of the different tables
</p>
<p>Let the story itself or the awakening character to guide you and lead you by the hand.&nbsp;&nbsp; <br>Link the new memory or premonition to the previous one, so that the emotional journey has coherence.&nbsp;
</p>
<p>Or don't do any of the above and follow your own rules: it's you who plays, after all. 
<br></p>
<p><strong>Note!</strong></p>
<p><em>It still needs some more playtesting to improve it and polish it.  I will be upgrading it frequently with my own experience playing it and  with the feedback of the players.
</em>I must correct the margins and legibility; feel free to offer your comments. <br></p>
<p>In addition, I will upload very soon the Spanish original version and a detailed example of use of both the playing result and the podcast narrated and recorded by me  of the final text created from the play example. In Spanish, though. 
</p>
<p>Visit my page <a href="https://solohistorias.itch.io/">Solo Historias</a> for more information about how I use this and other creators' games to seed and write stories. Follow me on the social media to get ib touch with me.</p>
<p>Adapt it and create your own version or improve mine with your contributions <br></p>
<p>I will continue developing this game and system, since I use it to create my own stories.
&nbsp;<br>Feel free to contribute any comment, improvement or criticism.
<br>Or create your own version, if you prefer.&nbsp; <br></p>
<p>It is released under the CC 4.0 license, which gives you full freedom to create your own version and distribute it for free or for a price, but you should refer to this system and link to this page, so that it can help inspire other potential authors to continue contributing their ideas and their own versions to the community. <br></p>
<p>
Background image: painting by 
@miguel_angel_soto, my brother<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM1Mzg4Ny83ODgwOTUxLmpwZw==/original/CYx%2Bjw.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM1Mzg4Ny83ODgwOTUzLmpwZw==/original/5Gx%2Brq.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM1Mzg4Ny83ODgwOTU0LmpwZw==/original/SUGa0O.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM1Mzg4Ny83OTMyOTg2LnBuZw==/original/MLC3WW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM1Mzg4Ny83OTMyOTg3LnBuZw==/original/zZjUuU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM1Mzg4Ny83OTMyOTg4LnBuZw==/original/B2V8a3.png]]
<h1>Explore an archipelago, encounter fellow explorers, and seduce and haggle with them to help you complete your map!</h1>
<p>There is no time constraint, no danger, there's no gameover. Instead, this game proposes a calming experience of exploration and encounters.&nbsp;You can just stop playing when you feel satisfied. A play session will usually last 15 to 30 minutes.</p>
<p><span></span></p>
<p><br></p>
<p><strong>You can play the Complete edition for free over on Pico-8 or <a href="https://www.lexaloffle.com/bbs/?tid=39656" target="_blank" rel="nofollow noopener" referrerpolicy="origin">on the Pico-8 BBS</a>.</strong> <em>(web-based, plays on all platforms, including mobile)</em></p>
<p><br></p>
<p><strong>The Deluxe edition</strong>&nbsp;comes with <strong><em>extras</em></strong>:</p>
<ul><li><strong>Standalone executables</strong> of the game for Windows, Mac and Linux.</li><li><strong>A Desktop Pet</strong> based on the game to accompany you in your everyday computer tasks. <em>(Windows only)</em></li><li>A handful of <strong>digital wallpapers</strong> to use for your phones and computers.</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/RIYj0fsJX-4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODQwOTA2LzQ3MjY4MjQuZ2lm/original/yztKXA.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvODQwOTA2LzQ3MjY4MDAucG5n/original/21f7Pm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODQwOTA2LzQ3MjY4MDMucG5n/original/VzRiYy.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODQwOTA2LzQ3MjY4MTAucG5n/original/Z7WtQ2.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODQwOTA2LzQ3NjYwMzEuZ2lm/original/qvD0Va.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvODQwOTA2LzQ3NzQwNTgucG5n/original/UdOc36.png]]
<h1>ATMOSPHERIC SPACE SIMULATION<br>
</h1>
<ul><li>Played entirely within fictional operating system sMaat 9</li><li>Simulation of 250+ solar bodies (with light fictionalizations; see accompanying info.txt for data sources)</li><li>Exploratory narrative told through email, news headlines, and REGISTRY database entries</li></ul>
<div><em>Immersion note: For the most immersive experience, full-screen display is recommended.<br></em></div>
<h2>CONTEXT</h2>
<p>The year is 2221 and you are the lone technician aboard the Eye of Ra, an anti-asteroid space station orbiting Earth.<br></p>
<p>It has been two decades since the Apep event caused widespread disturbances throughout the Solar System. Ancient orbital paths and gravitational partnerships were forever altered, and our centuries-old knowledge of them was rendered unreliable. The calculated, near-zero risk of an asteroid impact on an inhabited world suddenly became unknown.</p>
<p>The Solar Union scrambled to recalculate the odds, to find lost objects before they could strike one of its five member worlds. Nuclear warheads were stockpiled and aimed at the skies of the Incorporated Planet of Mercury, the Republic of Mars, the Federation of Jupiter, and the Colonial Republic of Titan. Meanwhile, on Earth, they built something entirely new: the Ra laser. An orbital, Solar-powered cannon capable of reaching across the Solar System and removing kilometres-wide objects from existence.<br></p>
<p>The power within the Eye of Ra defends us all from the modern asteroid threat. The  Solar Union entrusts Earth with the protection of its member worlds, who in turn entrusts the Eye of Ra to one technician: you.</p>
<h2>REPORT BUGS</h2>
<p>Please report bugs to <a href="https://twitter.com/bear_cabin" rel="nofollow noopener" referrerpolicy="origin">@bear_cabin</a><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/D341VLU0Wng" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzIxMzEyLzE2MDE3ODkucG5n/original/h4n0JX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzIxMzEyLzE2MDE3OTAucG5n/original/aeE8u%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzIxMzEyLzE2MDE4NDgucG5n/original/Gbs3G8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzIxMzEyLzE2MDE3OTMucG5n/original/9NO6Uf.png]]
<p>Play as a glasses cleaner as they go on with their daily life, &amp; spark within them feelings of rebellion.</p>
<p>A response game to <em>Cyberpunk 2077</em>.&nbsp; The demo is also available in the Back Garden of <a href="https://www.springthing.net/2021/play.html" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Spring Thing 2021</a>.</p>
<p>Cover &amp; Background Art of this page&nbsp;by&nbsp;Jasmine "<a href="https://twitter.com/JKaty133" target="_blank" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">Katy133</a>" Osler.<br></p>

[img width=500 [https://img.itch.zone/aW1nLzUzNjUxOTIucG5n/original/3crGD1.png]]
<p><em>You may not look at their faces. To look upon sacredness is to know your own imperfection.&nbsp;</em><br></p>
<p>A game of asking questions from those whose eyes you cannot see.</p>
<p>For at least one supplicant, six saints, and a house in which to make your pilgrimage.</p>
<p>Now with two expansions: <strong>Discordant </strong>and <strong>Reliquary. Discordant</strong> allows you to play online, and<strong> Reliquary</strong> adds more rooms.<br></p>

[img width=500 [https://img.itch.zone/aW1nLzI0MTA4NjAucG5n/original/Yc4qN4.png]]
<p><strong>Fairy Corgi Steeplechase</strong></p>
<hr>
<p><em>Fairies used to ride corgis into battle, but now they ride for fun and prestige. You’re an up-and-coming trainer of racing teams, and this year you’ve been invited to the Cravat Crown races! Will your team win the glory?</em></p>
<hr>
<p>Needed to play: 1d10 per player, pencil and paper, a love of cute things</p>

[img width=500 [https://img.itch.zone/aW1nLzQxNDQ2ODcucG5n/original/Pfpv5Q.png]]
<p><strong><em>Faith &amp; Sails</em> is a gmless microRPG about religious refugees escaping persecution to a life of piracy.</strong> Each die becomes a crew member, each decision carries a risk, and when somebody's lost, they go off into the drink! (Specifically, a cup of water.)</p>
<p><strong>Each soul lost becomes part of a future prophecy,</strong>&nbsp;its die tumbling into the sea,&nbsp;warning and providing aid on your&nbsp;journey. Have your seer peer into the cup to predict the future, reading the dice held within.&nbsp;And when the water overflows, you decide how your journey ends.</p>
<h3>Part of the <a href="https://itch.io/jam/one-page-rpg-jam-2021">2021 One-Page RPG Jam</a>!</h3>
<p><strong>Behemoths, sea storms, and colonial persecution</strong> remain at your back throughout, providing a threat to life and limb beyond even your anti-imperialist endeavors. Will you strike a blow against your oppressors, raid them of their goods, and sing a prayer to your gods? Or will you sink, your people forgotten to all but the spirits?</p>
<h3>Only the sea can tell your story.</h3>
<p><em>Includes one double-sided copy of the game and an inverted printer-friendly version. Requires a bowl of&nbsp;polyhedral dice (d4, d6, d8, d10, d12), pen, paper, a tumbler or mid-sized glass, a spoon, and water.</em></p>

[img width=500 [https://img.itch.zone/aW1nLzY3NjUzMzUucG5n/original/eMymmb.png]]
<p><em>FAKE CHESS now has a sequel, <a href="https://spc.itch.io/fakechess2" target="_blank">FAKE CHESS: BOOK OF CHAMPIONS</a>.<br></em><em>Both games are available in print at&nbsp;<a href="https://shop.seanpatrickcain.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">shop.seanpatrickcain.com</a>.</em></p>
<p><br></p>
<p class="text-center">* * *</p>
<p><br></p>
<p>
Chess
is a game&nbsp;of vast complexity and a 1500-year history.&nbsp;</p>
<p>Fake
Chess is not.</p>
<p>Fake
Chess players get
to <em>act </em>like
serious chess players without the burdens of chess strategy, chess
tactics, or chess rules.  </p>
<p>Live
out your grandmaster fantasies … with Fake Chess!</p>
<p class="text-center"><br></p>
<p class="text-center">* * *</p>
<p class="text-center"><strong><br></strong></p>
<h2 class="text-center">"This is brilliant."</h2>
<p class="text-center">Michael "Wheels" Whelan <br>(The House Doesn't Always Win, Dicebreaker)</p>
<p class="text-center"><br></p>
<h2 class="text-center">"[A] bizarre roleplaying game"</h2>
<p class="text-center">Alex Meehan 
(Dicebreaker)
</p>
<p><br>
</p>
<p><br></p>
<p class="text-center">* * *<br></p>
<p class="text-center"><em><br></em></p>
<p><em>Fake Chess requires a real chess set.&nbsp;&nbsp;</em></p>
<p><em>Two players will sit down and face off, armed with nothing more than their chess pieces, a few scraps of paper, and an extremely limited knowledge of chess.&nbsp; Using a very basic set of game rules and mechanics, these players will engage in what looks like an intense chess battle between two masters of the game.&nbsp;&nbsp;</em></p>
<p><em>It is dramatic.&nbsp;&nbsp;It is silly.&nbsp; It might be a real game, but it's definitely fake chess.</em><br></p>
<p class="text-center"><br></p>
<p class="text-center">* * *</p>
<p class="text-center"><strong><br></strong></p>
<h2 class="text-center">"Can you declare the NO-U Gambit in normal chess and wipe out the queen without having to move a piece? In Fake Chess you can. I rest my case."</h2>
<p class="text-center">Enbyss<br>(Streamer, Great Grandmaster of F. Chess)<br></p>
<p class="text-center"><br></p>
<p class="text-center">* * *<span></span><br></p>
<p class="text-center"><br></p>
<p class="text-center">Sean discusses Fake Chess with&nbsp;<em>Two Can Play That Game</em> <br>(Conversation begins at 44:00)<br></p>
<p><br></p>
<iframe src="https://open.spotify.com/embed/episode/2EW1tApfbA54LiDiPNRcxG?utm_source=generator&amp;theme=0&amp;t=2640" width="100%" height="152" frameborder="0" allowfullscreen=""></iframe>
<p></p>
<p class="text-center"><br></p>
<p class="text-center"><br></p>
<p class="text-center">Fake Chess was created for <a href="https://itch.io/jam/not-a-game-jam-game-jam-2020" target="_blank">#NotAGameJam2020</a>.</p>
<p>&nbsp;</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODI2MDM1LzQ2MzQwMDAuanBn/original/1fBUNQ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODI2MDM1LzQ2MzMzMjkuanBn/original/KZ8WeC.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODI2MDM1LzQ2MzM5ODMuanBn/original/F8Qujv.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODI2MDM1LzQ2MzM1MjIuanBn/original/FkbZtF.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODI2MDM1LzQ2Njk4ODQuanBn/original/SEYbbE.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODI2MDM1LzQ2MzM1MjMuanBn/original/%2Bo5MUb.jpg]]
<p></p>
<p>Fake Illusions is a collection of optical illusions—but some of them are not playing fair! Where some lines only look diagonal, one line <em>actually</em>&nbsp;is, and circles look like they differ in size, but secretly, one of them is <strong>bigger</strong>&nbsp;or smaller, camouflaged by the illusion. It's your job to point them out! But beware—the fakers will do everything to stay unnoticed... It's the ultimate test of your focus!</p>
<p>Featuring more than fifteen illusions about color, perspective, and movement, with lots of variants and distractions. Try the relaxing Zen mode, or the hectic Shuffle mode! Oh, and you can record GIFs, too!</p>
<p><strong>Epilepsy warning</strong><br>This game features optical illusions, repeating patterns, and high contrast images. If you start feeling sick or dizzy while playing, stop immediately.<span></span></p>
<p><strong>Accessibility info:</strong></p>
<ul><li>Color blind friendly: the game uses mostly greyscale colors, with adjustable brightness. Illusions that require you to spot differences in color can be skipped.</li><li>Textless: Very little reading is required to play Fake Illusions.</li><li>Autosave: Quit the game at any time and continue exactly where you left off next time you play.</li><li>Difficulty: You can freely adjust how much the faker stands out for every illusion.</li><li>Controls: Completely playable with just the mouse, keyboard, or gamepad. Keyboard and gamepad are remappable.</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/I3FqpFqT2yM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDA5OTUwLzc0NzQ2NzcuanBn/original/OZQzHD.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDA5OTUwLzc0NzQ2NzYuanBn/original/KkSnIL.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDA5OTUwLzc0NzQ2ODAuanBn/original/0s4khG.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDA5OTUwLzc0NzQ2ODIuanBn/original/BM%2BLGN.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDA5OTUwLzc0NzQ2ODEuanBn/original/Tx%2BdOj.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDA5OTUwLzc0NzQ2NzkuanBn/original/2Oh8YX.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDA5OTUwLzc0NzQ2NzguanBn/original/Eud0o7.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDA5OTUwLzc0NzQ2ODQuanBn/original/TkXUBs.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDA5OTUwLzc0NzQ2ODMuanBn/original/edWw5S.jpg]]
<p>In September of 2015,&nbsp;<em>Undertale&nbsp;</em>came out and swept players up in its celebration of compassion, friendship, and spaghetti-making skeletons. Eschewing violence, "The RPG game where you don't have to destroy anyone." lets players befriend killer robots, fishy knights, and warrior dogs through careful conversation in combat.</p>
<p><em>Fallen Down: Heartache &amp; Compassion in Undertale</em>, an unofficial look at&nbsp;<em>Undertale</em>,&nbsp;explores why we want to make friends with the cast of monsters that would normally get in the way of any other RPG hero. It looks at the ways the game gives monsters personalities and feelings, how it teaches the player to feel for their foes, and what that connection means should the player choose violence in their explorations of the Underground.</p>
<p>Featuring tens of words from developer Toby Fox,&nbsp;<em>Fallen Down&nbsp;</em>is a celebration of the positivity and creativity their work has created in the world, as well as a personal look into our behaviors in digital worlds and the cruelty that stems from playing in them without consequences.</p>
<p><em>"Couture's book perfectly encapsulates what makes this game so special. It's well worth a read for anyone that enjoys this indie classic."</em>&nbsp;<em>– <a href="http://www.rpgsite.net/feature/5869-fallen-down-by-joel-couture-how-emotional-bonds-are-formed-with-pixels-in-undertale" rel="nofollow noopener" referrerpolicy="origin">Elizabeth Henges, RPGSite</a></em></p>
<p><em>"Fallen Down" leaves you with a lot to think about, and it's written in a direct, very affecting way – enough that it made me question my own motivations as a gamer."&nbsp;– <a href="http://www.thelogbook.com/book/fallen-down-undertale/" rel="nofollow noopener" referrerpolicy="origin">Earl Green, TheLogBook.com</a></em></p>
<p><span></span><em>"I like considering this book as a love letter to this wonderful game. Each page is full of kindness and respect for this chef d'oeuvre and its creator. If you loved Undertale as much as we do: read this book. I bet it will echo to your experience too."</em>&nbsp;<em>– <a href="https://www.chroniquesvideoludiques.com/regrets-and-guilt-in-undertale-lettre-ouverte-a-joel-couture/" rel="nofollow noopener" referrerpolicy="origin">Esteban Grine, chroniquesvideoludiques.com</a></em></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTc1OTY3LzgyMTkyMy5wbmc=/original/1zGx0x.png]]
<blockquote><strong>Content Warning: Vampirism and related tropes, violence, forced servitude, supernatural evils, undead.</strong></blockquote>
<h1>THE WORLD OF SHADOWS</h1>
<p><em>This place has very little to do with the world as we know it. Vampires Werewolves, Specters, and Demons are all real. The world is dark, twisted, brutal, and gothic. There are schemes and secrets everywhere. The true powers are those that thrive in the shadows. Surviving is an art and not at all guaranteed, even for Vampires.</em></p>
<p><em>The only reason humanity lived this far is numbers. The Vampires try to hide their existence from the world as to not draw undue attention. Attention gets you killed. Hence a council was established a long time ago to uphold the carnival, the thin layer of deception, and secrets that keep the vampires safe. Only some of the many vampire lineages submit to the authority of this council: The Beautiful, The Grotesque, The Highborn, The Mad, The Sorcerers, The Untamed, and the Warriors. The rest claim independence. But even they can appreciate the usefulness of the carnival from time to time.</em></p>
<p><em>It is best to keep your head down and not be noticed, but when did that ever work for long? Journey into an abyss of the afterlife, un-death, and blood.</em></p>
<p>This game is a homage to a certain other game of Vampires and I hope you enjoy the darkness within. It is a complete game and contains everything you need to play beside some friends, pen, paper, and dice.</p>
<p>Compared to core minimald6, Fangs adds a "Coterie" for the player characters, the group itself has traits that could be used for or against them. There are of course also rules about the monster inside, powers, and the use of blood. Everything a fledgling vampire needs to grow.</p>
<ul><li>Play a Vampire from one of the 12 different lineages including&nbsp;<strong>The Assassins</strong>,&nbsp;<strong>The Grotesque</strong>,&nbsp;<strong>The Mad</strong>,&nbsp;<strong>The Untamed</strong>, and others.</li><li>Each lineage has unique traits and access to powerful, blood fueled gifts.</li><li>A small adventure generator to jumpstart your imagination and character sheets are included so you can start to play in minutes!</li></ul>
<p>
</p>
<p>Page Background based on work by&nbsp;<a href="https://www.deviantart.com/webtreatsetc/art/Whitewashed-Grunge-Textures-172551151" target="_blank" class="" rel="nofollow noopener" referrerpolicy="origin">WebTreatsETC</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODE1NDEyLzQ1NzE4NTIuanBn/original/jFMOPZ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODE1NDEyLzQ1NzE4NTQuanBn/original/YMfiNV.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODE1NDEyLzQ1NzE4NTUuanBn/original/EpmvId.jpg]]
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzE5MTg2NTUucG5n/original/IsDuzA.png" loading="lazy">&nbsp;&nbsp;<em>&nbsp;is a pregnancy simulator, in which you are taking care of a pregnant woman and create your dream fetus. <br></em><em></em></p>
<p><em><iframe src="https://www.youtube.com/embed/rcNlvgLxi0M" allowfullscreen="" width="560" height="315" frameborder="0"></iframe></em><em></em><em></em><em></em><em></em><em></em><em><br></em><em><br></em></p>
<p><em><strong>What makes Fantastic Fetus unique?</strong></em><em><em></em></em></p><em><ul><li> The political topic of reproduction laws in Poland</li><li>&nbsp;You can create unique fetuses</li><li>Three Languages, English, German and Polish</li><li>Tamagotchi pixel art style with four colors</li><li>Multiple endings depending on your choices</li><li>Ending with a thought-provoking twist<em><em></em></em></li><em><em><em></em></em><br><em><br></em></em></ul>
<h1 class="text-center"><em><strong>New </strong>edition!</em><em></em><em></em><em></em><em></em><em></em></h1>
<p><em></em><em></em></p>
<em>
<figure><img src="https://img.itch.zone/aW1nLzI3NTE2NjkucG5n/original/pP7%2BXM.png" loading="lazy"><em></em><em><img src="https://img.itch.zone/aW1nLzI3NTE5NDYuanBn/original/zs4dOl.jpg" loading="lazy"></em></figure>
<p><br><em><strong>What is new in the  Fantastic Fetus: Prebirth edition?</strong></em></p>
<ul><li><em>&nbsp;Desktop version of Fantastic Fetus (for 32 and 64 windows versions)
</em></li><li><em>&nbsp;Fetopedia (publication about the game)
</em></li><li><em>Three types of wallpapers for PC and smartphone (pixelart and linocut style)
</em></li><li><em>Emoticons based on Fantastic Fetus game</em><em></em><br><em></em><em><em><em></em></em></em><br><em><em><em></em></em></em><em><em><em></em></em></em></li><em><em></em></em><br></ul>
<figure><img src="https://img.itch.zone/aW1nLzE5MTg2NzkucG5n/original/5sTOdE.png" loading="lazy"><em><em><br><br></em></em></figure>
<p><em><em><em>Fantastic Fetus is a pregnancy simulator in a Tamagotchi style, where
you are taking care of a pregnant woman and create your own dream fetus with SUPERPOWERS. You as a player will be able to create an enormous number of unique customised fetuses and unlock 6 different endings according to your decisions.</em></em></em><br></p><p><em><em><em></em></em></em></p>
<em><em><em>
<p>Fantastic Fetus is inspired by the Black Protest movement in Poland which was provoked by the new proposition of reproductions laws created in 2016 - the anti-abortion bill. Polish reproduction laws are next to Malta the strictest anti-abortion laws existing in the European Union. This game will let you experience a female perspective.</p>
<p>You will find more information about the Polish situation at: <a href="http://strajkkobiet.eu/wp-content/uploads/2016/11/WOMENSSTRIKE-eng-V_2-1.pdf" rel="nofollow noopener" referrerpolicy="origin">strajkkobiet.eu lodzkiedziewuchy.org.pl/<br></a></p><p>Support women in Poland by donations:&nbsp;<a href="https://zrzutka.pl/akcje-i-dzialania-strajku-kobiet-mrsynp" target="_blank" rel="nofollow noopener" referrerpolicy="origin">zrzutka.pl/akcje-i-dzialania-strajku-kobiet-mrsynp</a></p>
<p><br><em><em><em></em></em></em></p><p>
<img src="https://img.itch.zone/aW1nLzE5MTg3NzIucG5n/original/AS94Oq.png" loading="lazy"><br><em></em></p>
<em>
<p>Aleksandra Jarosz <a href="https://twitter.com/AKJarosz" rel="nofollow noopener" referrerpolicy="origin">@AKJarosz</a> - Game Designer
</p>
<p>Michael Hartinger <a href="https://twitter.com/asebist" rel="nofollow noopener" referrerpolicy="origin">@Asebist</a> - Music &amp; Producer
</p>
<p>Sebastian Merkl <a href="https://twitter.com/AncientPixel_AP" rel="nofollow noopener" referrerpolicy="origin">@Ancientpixel</a> - Programmer
</p>
<p>Thomas Feichtmeir <a href="https://twitter.com/cyangmou" rel="nofollow noopener" referrerpolicy="origin">@Cyangmou</a> - Visual Artist, Additional Game Designer
</p>
<p><br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzE5MTg2MDkuZ2lm/original/mykK8G.gif" loading="lazy"></p>
</em></em><p><em><em></em></em><br></p><p><em><em></em></em><br></p>
<p><em><em></em></em><br></p>
</em><p><em></em><br></p><p><em></em><br></p>
<p><em></em></p></em></em></em>

<iframe width="720" height="450" src="https://www.youtube.com/embed/rcNlvgLxi0M" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTI5MTA2LzI3NTE3MjIucG5n/original/KODpn4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI5MTA2LzI3NTE3MjQucG5n/original/FQHy%2F%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI5MTA2LzI3NTE3MjAuanBn/original/qw6Aps.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI5MTA2LzI3NTE3MjEuanBn/original/xgYZNc.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI5MTA2LzI3NTE3MjMuanBn/original/qHswxc.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI5MTA2LzI3NTE3MjUuanBn/original/hnAkME.jpg]]
<p>A set of 120 hand-drawn classic&nbsp;<em>Fantasy RPG&nbsp;</em><strong>copper</strong>&nbsp;cursors.<br></p>
<ul><li>Size: 32x32 px, 64x64 px.</li><li>Format: PNG (with transparency).</li></ul>
<p>version 1.5</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTQxMjcwLzUzMzM2ODIucG5n/original/skNHk3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTQxMjcwLzUzMzM2ODMucG5n/original/4kEn2s.png]]
<p>A set of 120 hand-drawn classic&nbsp;<em>Fantasy RPG&nbsp;</em><strong>gold</strong>&nbsp;cursors.</p>
<ul><li>Size: 32x32 px, 64x64 px.</li><li>Format: PNG (with transparency).</li></ul>
<p>version 1.5</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTQxMjgwLzUzMzM3NDAucG5n/original/lIfarj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTQxMjgwLzUzMzM3NDIucG5n/original/KT2HTo.png]]
<p>Memorable, melodic, and character-rich Town Themes for 9 classic Fantasy settings! Creative orchestral instrumentations! Seamless Loop versions provided for each. 9 compositions, 18 files.</p>
<p>18 songs (9 non-loops, 9 loops)</p>
<p><a href="https://soundcloud.com/chrislsound/sets/fantasy-towns-music-pack" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong>Music Previews: https://soundcloud.com/chrislsound/sets/fantasy-towns-music-pack</strong></a><strong></strong></p>
<p><strong>MUSIC</strong> <em>(.wav - stereo, 44.1kHz, 16bit)</em></p>
<ul><li>Desert Town (Loop) [1:46]</li><li>Desert Town [1:29]</li><li>Haunted Town (Loop) [1:58]</li><li>Haunted Town [1:48]</li><li>Mechanical Town (Loop) [1:38]</li><li>Mechanical Town [1:24]</li><li>Mining Town (Loop) [1:50]</li><li>Mining Town [1:43]</li><li>Mystical Town (Loop) [2:00]</li><li>Mystical Town [1:53]</li><li>Port Town (Loop) [1:40]</li><li>Port Town [1:35]</li><li>Royal Town (Loop) [2:13]</li><li>Royal Town [2:04]</li><li>Shady Town (Loop) [1:55]</li><li>Shady Town [1:41]</li><li>Whimsical Town (Loop) [1:48]</li><li>Whimsical Town [1:35]</li></ul>
<p><strong>Contact: </strong>ChrisLSound@gmail.com</p>
<p>If you have any requests or are interested in hiring me for custom music/SFX, please send me an email!</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjg3NzI0LzE0MDQwMzMuanBn/original/3FZokd.jpg]]
<p>Based on the <em>belonging outside belonging</em> framework by Avery Alder and Benjamin Rosenbaum (<a href="https://buriedwithoutceremony.com/belongingoutsidebelonging" rel="nofollow noopener" referrerpolicy="origin">https://buriedwithoutceremony.com/belongingoutsidebelonging</a>) <br></p>
<p>Graphic design and layout by Vee Hendro (<a href="https://veerpgdesigns.com/" rel="nofollow noopener" referrerpolicy="origin">https://veerpgdesigns.com/</a>)<br></p>
<p>Far From Home is a game about immigrants and outsiders. It’s about exploring what it means to live and thrive in a culture that is not fully your own. It’s about how you piece together an identity drawing from multiple cultures, yet never wholly belonging to either.
  </p>
<p>You will create Characters and define who they are in the beginning, how they see themselves in relation to their Home and to the Hegemony they now live in.
  </p>
<p>As you create your Characters, you will also create a Circle that ties your Characters together. The Circle provides a context for your Characters to work together and support each other, and it also provides something different that each of your Characters want or need.
  </p>
<p>You will then play to see how your characters struggle and change as their Home and the Hegemony struggle and change with them. <br><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDQ1MzgyLzI3MjQ1NzkucG5n/original/hYnvp3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQ1MzgyLzI3MjQ1NzgucG5n/original/3gVHl%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQ1MzgyLzI3MjQ1ODYucG5n/original/7FB1%2Fu.png]]
<p>______________________________________________________________________________________</p>
<p><em><strong>Placed in a world without change, you must create fate by watering an ancient plant. Determine a future and live with it.</strong></em></p>
<p>______________________________________________________________________________________<em></em></p>
<p><strong>Get the Soundtrack&nbsp;<a href="https://simonepeltier.bandcamp.com/album/fatum-betula-ost" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Here</a></strong><em></em></p>
<p>______________________________________________________________________________________</p>
<p><strong>CONTROLS:</strong></p>
<p>Walk - WASD</p>
<p>Run - Shift</p>
<p>Inventory - Tab</p>
<p>Interact - E</p>
<p>Use - Left Mouse</p>
<p>Save Menu - F5</p>
<p>______________________________________________________________________________________</p>
<p><strong>CREDITS:</strong></p>
<p>Created By:&nbsp;<a href="https://bryce-bucher.itch.io/" target="_blank">Bryce Bucher</a></p>
<p>Music: <a href="https://simonepeltier.bandcamp.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Simone Peltier</a></p>
<p>Oil Painting: <a href="https://twitter.com/SombrePainter" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Athan Shields</a></p>
<p>Shaders:&nbsp;<a href="https://modus-interactive.itch.io/" target="_blank">Modus Interactive</a>, <a href="https://queenjazz.itch.io/" target="_blank">Queenjazz</a></p>
<p>______________________________________________________________________________________</p>
<p><strong>Follow me on Twitter:</strong>&nbsp;<a href="https://twitter.com/98DEMAKE/" rel="nofollow noopener" referrerpolicy="origin"></a><a href="https://twitter.com/BouletMom" rel="nofollow noopener" referrerpolicy="origin"></a><a href="https://twitter.com/BryceBucher" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/BryceBucher</a></p>
<p>______________________________________________________________________________________</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/PhC5sQE8s5w" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjEwMzg1LzMyNDUwNjAucG5n/original/GxG7f8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEwMzg1LzMyNDUwNjEucG5n/original/2i5kLU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEwMzg1LzMyNDUwNjQucG5n/original/pkLste.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEwMzg1LzMyNDUwNjUucG5n/original/GF%2FLFU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEwMzg1LzMyNDUwNjcucG5n/original/eveI9P.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEwMzg1LzMyNDUwNjIucG5n/original/0otHaw.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEwMzg1LzMyNDUwNjYucG5n/original/D4nvKO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEwMzg1LzMyNDUwNjMucG5n/original/Sws58i.png]]
<p>A short rules system for arena battles between miniatures in a post-apocalyptic Scandinavia. Build your team of fighters from several available characters and equip them with any weapons you like and can afford, then duke it out in the pit!</p>
<p>Rounds are divided into sequences where everyone acts before moving to the next, to enhance the immersive feeling of simultaneous action and to reward strategy.<br></p>
<p>17 pages, including optional Advanced rules for different terrain types, climbing, falling, jumping, being downed, as well as 4 scenarios.</p>
<p>Designed for 28 mm miniatures. Use any you like.<br></p>
<p>There are&nbsp; downloads available for anyone interested in making their own characters for the game, as well as a few extra scenarios to expand the battle possibilities.<br></p>
<p>Art by Thomas Noppers.<br></p>

[img width=500 [https://img.itch.zone/aW1nLzcwMjc2ODAucG5n/original/UpHsxS.png]]
<p>
	<em>Feyna's Quest</em> is a plot-driven platform game with role-playing elements.  Join Feyna, a young dark elven sorceress, on an epic quest across three worlds.
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI4OTM5LzU5Mjg5NC5wbmc=/original/H6uQxf.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI4OTM5LzU5Mjg5NS5wbmc=/original/PbBgWh.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI4OTM5LzU5Mjg5Ni5wbmc=/original/4uFG0r.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI4OTM5LzU5Mjg5Ny5wbmc=/original/X8dlqS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI4OTM5LzU5Mjg5OC5wbmc=/original/%2BmgOHK.png]]
<p><em></em>Monsters spawn in the dungeon. What do you do?</p>
<p>▶ FIGHT
</p>
<p>▶ ITEM
</p>
<p>▶ RUN</p>
<p><em>Fight</em>&nbsp;<em>Item</em>&nbsp;<em>Run&nbsp;</em>is a Powered by the Apocalypse tabletop roleplaying&nbsp;game that smashes action-packed combat and magic together with dynamic character and relationship exploration. The party begins in a chamber and there are monsters; once they’ve defeated the monsters, they proceed to the next chamber where there are more monsters. Chambers also have items, treasures, puzzles, and mysteries. When the party has collected the adequate gear to advance to the next level of the dungeon, they come to the chamber with&nbsp;the passage, staircase, portal, or alien warp pad to continue forward. The goals for&nbsp;<em>Fight</em>&nbsp;<em>Item</em>&nbsp;<em>Run</em>&nbsp;are the following:</p>
<p>▶ Fight monsters, collect items, survive the dungeon.
</p>
<p>▶ Tell a collaborative story of mystery and adventure.
</p>
<p>▶ Plant and build upon evocative details at every chance.
</p>
<p>▶ Explore the lives and relationships of characters traveling together.
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA0MjI5Ny81OTk4MDY5LnBuZw==/original/9oAIu2.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0MjI5Ny81OTk4MDcwLnBuZw==/original/1FpKq9.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0MjI5Ny81OTk4MDcxLnBuZw==/original/5jVlVK.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0MjI5Ny81OTk4MDczLnBuZw==/original/XR7Lto.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0MjI5Ny81OTk4MDc2LnBuZw==/original/tNnWQ9.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0MjI5Ny81OTk4MDc4LnBuZw==/original/5XyNUi.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0MjI5Ny81OTk4MDgxLnBuZw==/original/5GZd5o.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0MjI5Ny81OTk4MDg0LnBuZw==/original/%2BG0Wvr.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0MjI5Ny81OTk4MDg3LnBuZw==/original/8xF6VF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0MjI5Ny81OTk4MDk0LnBuZw==/original/3eCxJL.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0MjI5Ny81OTk4MDk4LnBuZw==/original/RdUbsZ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0MjI5Ny81OTk4MTAxLnBuZw==/original/Aj9w%2Bt.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0MjI5Ny81OTk4MDk5LnBuZw==/original/%2FOIu%2Bk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0MjI5Ny81OTk4MTAwLnBuZw==/original/uvcoK0.png]]
<p>Figment is an action-adventure game that invites you to explore a unique surreal universe filled with music, humor and multi layered narrative. Join Dusty and his ever-optimistic friend, Piper, on an adventure through the different sides of the mind seeking to restore the courage that's been lost.</p>
<p>A musical action-adventure set in the recesses of the human mind... Welcome to the world of Figment. A strange and surreal world; a place filled with our deepest thoughts, urges and memories, populated by the many voices we hear in our heads.<br><br>This mind has been quiet and calm for many years. But something has changed. New thoughts have started to emerge - taking the shape of nightmarish creatures who spread fear wherever they go. The only hope is for the grumpy Dusty, the mind's former voice of courage, to get back to his old self and help the mind to face its fears.<br><br>Join Dusty and his ever-optimistic friend, Piper, on an adventure through the different sides of the mind, solving puzzles to set things straight, beating back the nightmares and seeking to restore the courage that's been lost.<br></p>
<p>Experience how traditionally hand-painted brushstrokes come to life in a world filled with surreal art, colorful illustrations and charming characters. Experience the unique artstyles of the joyful Freedom Isles, the radiant Clockwork Town and the ominous Pathways.<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/4yIIbH0SEmw" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTc5NzgwLzgzOTgxMi5qcGc=/original/S9yLkL.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc5NzgwLzg0Mzc5OS5qcGc=/original/vklC2w.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc5NzgwLzg0MzgwMC5qcGc=/original/lOkTmY.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc5NzgwLzg0MzgwMS5qcGc=/original/evnJNc.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc5NzgwLzg0MzgwMi5qcGc=/original/oSrQUO.jpg]]
<p>I always loved that Nintendo's game designers were all people without a games background: Pikmin was created by a gardener, Splatoon by an artist. Disco Elysium was written by a political activist and novelist. If your reaction is to say that "Shigeru Miyamoto wasn't a gardener!", this magazine might not be for you. That's okay.</p>
<p>Filmmakers Without Cameras is a misnomer.</p>
<p>It's not a zine just&nbsp;<em>about</em>&nbsp;or&nbsp;<em>for</em>&nbsp;filmmakers; it's a love letter to films and video games, written by people whose passions lie beyond film and video games.</p>
<p>It's down to earth, thoroughly unpretentious, and easily accessible. Filled to the brim with love; a zine you'll enjoy looking at and flicking through; a zine made by the community.</p>
<p>Articles we've got lined up for our inaugural issue include, amongst others:</p>
<ul><li>&nbsp;<strong>Storytelling in games as compared to films:</strong>&nbsp;How cinematography, interaction, and narrative design affect user experience — should games strive to be “cinematic”?</li><li>&nbsp;<strong>Life At Sea:</strong>&nbsp;Mysteriously missing merchant ships and the science behind the Kraken.</li><li>&nbsp;<strong>The Colour of Love in the Twilight Saga:</strong>&nbsp;Melissa's quick, witty overview of colour and the difference a change of director can have on a series.</li><li>&nbsp;<strong>The Cult of Bubbling Waters:</strong>&nbsp;A random encounter table for Mörk Borg or other roleplaying game of your choice.&nbsp;</li><li>&nbsp;<strong>High School Musical 2 is a Communist Manifesto:&nbsp;</strong>Does what it says on the tin.</li></ul>
<p>We've just raised £1,100 on&nbsp;<a href="https://www.kickstarter.com/projects/eryksawicki/filmmakers-without-cameras-a-film-and-games-magazine?ref=project_tweet" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Kickstarter</a>!</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODk0OTcyLzUxNTY4MjQuanBn/original/tAuokr.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODk0OTcyLzUxNTY4MjIuanBn/original/qsOsfh.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODk0OTcyLzUxNTY4MjMuanBn/original/Xxp%2BYs.jpg]]
<p><strong><a href="https://fwcmagazine.square.site/" rel="nofollow noopener" referrerpolicy="origin">Preorder a physical copy here!</a></strong></p>
<p>I always loved that Nintendo's game designers were all people without a games background: Pikmin was created by a gardener, Splatoon by an artist. Disco Elysium was written by a political activist and novelist. If your reaction is to say that "Shigeru Miyamoto wasn't a gardener!", this magazine might not be for you. That's okay.</p>
<p>Filmmakers Without Cameras is a misnomer.
</p>
<p>It's not a magazine just&nbsp;<em>about</em>&nbsp;or&nbsp;<em>for</em>&nbsp;filmmakers;&nbsp;<strong>it's a love letter to films, video games, and board games written by people whose passions lie beyond those things.</strong>
</p>
<p>It's down to earth, thoroughly unpretentious, and easily accessible. I want this to be a platform for people who don't usually write about games or films to write about those things, and I want this to be a gateway for people to start looking at the art they love in meaningful ways.&nbsp;
</p>
<p>Issue 2 sees a whole host of new writers:&nbsp;
</p>
<ul><li>Maria, who you might know better as&nbsp;<a href="https://www.youtube.com/channel/UCxddeIv7GdHNcVPZI9JvGXQ" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong>eurothug4000</strong></a>, is contributing one of her gorgeous essays exploring what it means to explore.
</li><li>Returning writer&nbsp;<a href="https://twitter.com/joshualukecable" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong>Joshua Luke Cable</strong></a>&nbsp;has watched the 29&nbsp;<em>Godzilla&nbsp;</em>films he could get his hands on (out of 36) with the express purpose of comparing Godzilla to Jesus. You have to read it to believe it.
</li><li>Marxist analyses of films are going to be a&nbsp;<em>thing</em>&nbsp;&nbsp;in FWC now -&nbsp;<a href="https://twitter.com/zachdiazmusic" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong>Zach Diaz</strong></a>&nbsp;writes about Office Space and shit jobs. Everyone's had one.&nbsp;
</li><li>&nbsp;<a href="https://www.sydneybollinger.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong>Sydney Bollinger</strong></a>&nbsp;played&nbsp;<em>Hades&nbsp;</em>and quickly realised it was one of the hardest games she'd ever played. With time, she grew to appreciate an unexpected lesson: being bad at something isn't the end of the world.&nbsp;
</li><li>&nbsp;<a href="https://twitter.com/harrystainer2" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Harry Stainer</a>&nbsp;writes about the role The Last of Us Part 2 played in helping him come to terms with his own trauma.&nbsp;
</li><li>Sophie Wallace explores her experiences growing up playing videogames, and fighting with her brothers over the controller.&nbsp;
</li><li>&nbsp;<a href="https://twitter.com/tobygavelle" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Tobias Gavelle</a>, asking the question of: what happened to all the split-screen?
</li><li>&nbsp;<a href="https://twitter.com/SamTMcNally" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Samuel T McNally</a>&nbsp;writes about finding joy in the tedium of&nbsp;<em>Snowrunner</em>'s Alaskan off-road trucker simulator.&nbsp;
</li><li>&nbsp;<a href="https://twitter.com/eraserheadbabey" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Melissa Fielding</a>&nbsp;explores&nbsp;<em>Hanna&nbsp;</em>and the origins of fairytales.&nbsp;
</li><li>&nbsp;<a href="https://bcwallin.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">B.C. Wallin</a>&nbsp;looks at&nbsp;<em>Butch Cassidy and the Sundance Kid</em>'s soundtrack, and how soundtracks give us the permission to feel.&nbsp;
</li><li>&nbsp;<a href="https://twitter.com/JoeyPalmerFilm" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Joey Palmer</a>&nbsp;hiked through&nbsp;<em>Breath of the Wild's</em>&nbsp;Hyrule 37 times on their road to recovery.
</li><li>&nbsp;<a href="https://twitter.com/cookywook" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Richard Cook</a>&nbsp;explores how board games are becoming a new medium for storytelling. Board games have&nbsp;<em>spoilers&nbsp;</em>now!&nbsp;
</li><li>&nbsp;<a href="https://twitter.com/PunchboardUK" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Adam Richards</a>&nbsp;writes about finding a new hobby thanks to the pandemic: playing board games solo.&nbsp;
</li><li>&nbsp;<a href="https://twitter.com/FishWebster69" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Zach Webster</a>&nbsp;looks at the renaissance of practical effects in action films.
</li><li>Oleksandr Derevianchenko walks us through Soyuzmultfilm, the Soviet-backed Disney opponent.&nbsp;
</li><li>and&nbsp;<a href="https://twitter.com/BashAtDemonhead" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Bash Hornby</a>&nbsp;writes of Nier: Automata and how, for a game intent on upskirting it's female characters all the time, it has a&nbsp;<em>lot&nbsp;</em>to say about false idols, religion, and selfhood.&nbsp;
</li></ul>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MjQ0NC83MzMxMjc2LnBuZw==/original/fsuXc5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MjQ0NC83MzMxMjczLnBuZw==/original/tbGSNb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MjQ0NC83MzMxMjc0LnBuZw==/original/zwJoXM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MjQ0NC83MzMxMjc1LnBuZw==/original/3Z4cE6.png]]
''Enter exact rating'': <$edit-text tiddler="$:/temp/CollectTags/searchWord" placeholder="5.0" default="5.0" tag="input" type="text" size=2/>

<$list filter="[has:field[url]field:rating{$:/temp/CollectTags/searchWord}]">
"""
<$link to={{!!title}}><$view field="title"/></$link>
"""
</$list>
<p><strong><u>Gameplay</u></strong></p>
<p>Final Spike is a side-view 1-on-1 beach volleyball game. The objective is simple--score more points than your opponent to win! Players can knock the ball up with their bodies, launch it with a set, or knock it down to the ground with a blazing spike!</p>
<p>The full version of the game includes the following features:</p>
<ul><li>4 playable characters</li><li>4 stages</li><li>Rebindable key options</li><li>Customizable gameplay timers, score limits, etc.</li></ul>
<p><strong><u>Minimum Requirements</u></strong><br></p>
<p>Though there is keyboard support, the game plays best when using a controller. Currently, PlayStation 3, PlayStation 4, Xbox 360, and Xbox One controllers are all supported. Nintendo Switch Joycons are also supported.<br></p>
<p><strong>Windows:&nbsp;</strong>Vista OS or newer. 32 or 64-bit should be OK. DX11 required.<br></p>
<p><strong>Mac:&nbsp;</strong>10.12 (Sierra)&nbsp;is recommended.&nbsp;Older OSes are likely not supported due to changes in Unity rendering.<br></p>
<p><strong><u>Frequently Asked Questions</u></strong></p>
<ul><li><u><em>Steam release?</em></u><ul><li>Unlikely for now.</li></ul></li></ul>
<ul><li><em><u>Console release?</u></em><ul><li>Unlikely for now.</li></ul></li></ul>
<ul><li><em><u>Netplay?</u></em><ul><li>Not likely at the moment. If you're really interested in netplay, and want a trustworthy 3rd party option, there's always <a href="https://parsecgaming.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Parsec.</a></li></ul></li></ul>
<ul><li><em><u>Additional&nbsp;characters?</u></em><ul><li>Possibly.</li></ul></li></ul>
<p><em></em><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/iIZHswjvYx4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjc3MjQwLzE0Mjk1MTcucG5n/original/TbURdl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjc3MjQwLzE0Mjk1MTYucG5n/original/F%2BGVnm.png]]
<h1>Find Me</h1>
<p><em>Find Me</em>&nbsp;is a beautiful and surreal 2D puzzle platformer about&nbsp;a lost shadow seeking to be reunited with her human girl, while searching for memories and avoiding the dangerous city lights.</p>
<p>One fateful night a young girl gets in an accident, separating&nbsp;her shadow from her body. Lost and scared, her shadow gathers the courage to search for her lost human across the familiar, but different city.</p>
<p><em>Find Me</em> takes you on a curious journey through the city streets and into&nbsp;a dark, dreamlike world. Dodge broken lights, creep along walls and ceilings, hack circuit boards, and pick up mysterious photographs of what appears to be you as a human.</p>
<p>Are you really just a lost shadow? Or is there more&nbsp;to the story...play the game to find out!<br></p>
<hr>
<h3><strong>About the Development Team</strong></h3>
<p><em>Find Me</em> was created by Team Invenio, a group of middle to high school girls at the 2017 Girls Make Games Summer Camp in San Francisco, CA. The game won the Grand Prize at GMG’s Demo Day competition in 2017, and went on to <a href="http://kickstarter.com/projects/2020158234/girls-make-games-presents-find-me" rel="nofollow noopener" referrerpolicy="origin">raise over $29K on Kickstarter.</a></p>
<p><strong>Team Invenio members:</strong> Katie,&nbsp; Maeve,&nbsp; Audrey,&nbsp; Avalon</p>
<hr>
<h3><strong>About Girls Make Games</strong></h3>
<p><strong>Girls Make Games</strong> is a series of international summer camps and workshops designed to inspire the next generation of designers, creators, and engineers.</p>
<p>GMG’s flagship video game summer camp teaches girls ages 8-18 how to design and code their own games. The camps culminate in Demo Day, a national competition where the top teams from around the country pitch their games to industry professionals. The Grand Prize winning team receives extended mentorship and the opportunity to have their game professionally produced and published.</p>
<p>To learn more, visit <a href="https://girlsmakegames.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">https://girlsmakegames.com</a>.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/3NG4OZoFCjs" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTgxNDY0LzQ2MTg2MzIucG5n/original/EvXKu0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxNDY0LzQ2MTg2MzMucG5n/original/P5qq09.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxNDY0LzQ5MzY3NzQucG5n/original/XKLkW3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxNDY0LzQ5MzY3ODAucG5n/original/jnedOw.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxNDY0LzQ5MzY3NzkucG5n/original/jVXiAh.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxNDY0LzQ5MzY3NzYucG5n/original/U1GjI3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxNDY0LzQ5MzY3ODEucG5n/original/wAkx5V.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxNDY0LzQ5MzY3NzgucG5n/original/BnqXwb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxNDY0LzQ5MzY3NzcucG5n/original/CpjbaK.png]]
<p><em>Consider buying my most recent steam game- RD Mars</em><em>.<br></em><em></em><em><a href="https://store.steampowered.com/app/1714020/RD_Mars/" rel="nofollow noopener" referrerpolicy="origin">https://store.steampowered.com/app/1714020/RD_Mars/</a></em></p>
<p></p>
<p>Firemakaf is an Action-Adventure game that focuses on exploration and player freedom. It takes inspiration from the first Zelda game, and it intends to revamp and modernize that formula to provide a new experience. It has been in development for one year now, and includes four dungeons, alongside a large grasslands area to explore,&nbsp; towns, NPC's, and a large variety of enemy types. <br></p>
<p><br></p>
<p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/JwPbAU5zJbM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzE3ODA5LzM5Nzk1NTAucG5n/original/RAbCvU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzE3ODA5LzM5Nzk1NTEucG5n/original/v5U%2BZo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzE3ODA5LzM5Nzk1NTMucG5n/original/09kfay.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzE3ODA5LzM5Nzk1NTQucG5n/original/X3GK14.png]]
<p><em>In the second half of the twentieth century, the great powers compete for military supremacy on the world stage. A team of misfits—dreamers, fighters, and government lab rats who have fallen out of the bottom of society—are reborn as soldiers of fortune navigating a web of intrigue and conspiracy. Perhaps your prime minister has been psychically attacked in his sleep. Perhaps your top scientists have disastrously opened a gate to another dimension. Perhaps your enemies are on the cusp of perfecting robotic superweapons, astral projection, or biological warfare. For the right price, those misfits can help.&nbsp;</em><em>When you’re all out of options, it’s time to call FIST.</em></p>
<ul><li><strong>PARANORMAL MERCENARIES -&nbsp;</strong>Use the modular traits system to construct unique and fully-equipped characters in a matter of seconds. Play as a telekinetic alien, a mutant sniper, or a cyborg ninja.</li></ul>
<ul><li><strong>BRUTAL ACTION -&nbsp;</strong>Experience fast, fluid stunts and combat with the tried-and-true 2D6 resolution roll. Play with a hyper-rules-light system that offers intriguing choices and mechanics but&nbsp;never interferes with the action.</li></ul>
<ul><li><strong>TACTICAL OPERATIONS -&nbsp;</strong>Plan and execute Cold War espionage missions using the referee guide, or adapt your favorite sci-fi or military OSR content to work with FIST with minimal effort.</li></ul>
<p>FIST is a tabletop roleplaying game for one referee and two to six players. It draws heavily from Chris P. Wolf's&nbsp;<em>Offworlders&nbsp;</em>and John Harper's&nbsp;<em>World of&nbsp;Dungeons</em>, as well as being inspired by&nbsp;<em>Metal Gear Solid, The A-Team,&nbsp;</em>and&nbsp;<em>Doom Patrol.&nbsp;</em></p><p><a href="https://www.drivethrurpg.com/product/306921/FIST" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><em>FIST is also available on DriveThruRPG.</em></a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTg5NzA5LzMxMTQ1MjgucG5n/original/FlMLDJ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTg5NzA5LzMxMTQ1MzAucG5n/original/TPXI%2FD.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTg5NzA5LzMxMTQ1MjkucG5n/original/d5fJYt.png]]
<h3><img src="https://img.itch.zone/aW1nLzIzMDQyNzQucG5n/original/HD8NQe.png" loading="lazy"></h3>
<p>Reform the church to divorce and marry as you please, from foreign princesses to your favourite bookshelf. Or both. Jail your steward. Execute everyone. Ordain your horse as a priest. Knight your bed. Who’s going to stop you? God? Nope. You're Pope now.<br><br>This is no game of thrones. This is real life, as Henry VIII would have lived it. If only he had the imagination.</p>
<p><img src="https://img.itch.zone/aW1nLzIzMDM1MTQuZ2lm/original/CUXGHL.gif" loading="lazy"><br></p>
<p>England, 1520. As the king or queen of this nation, you've been challenged to out-spend your rival, King Frank, at the Field of the Cloth of Gold. With the help of your staff and sycophants, you might be able to do it. Except you've misplaced your gold all over the castle... time to find all those chests and collect all those taxes!&nbsp;<br><br>Maybe you'll bankrupt the country, but at least you'll have a good time doing it.<br></p>
<p><img src="https://img.itch.zone/aW1nLzIzMDQyNzUucG5n/original/kPUfpr.png" loading="lazy"><br></p>
<ul><li>26 royal commands, including (M)arry, e(X)ecute, (C)ollect taxes, (B)less, (K)night, (P)lay Lute and (R)eform Church.</li><li>Play as King or Queen and rewrite the laws to suit your whim.</li><li>Non-linear adventure sandbox simulation. Rule your kingdom or wreak havoc in it, as you prefer.</li><li>Meet Machiavelli, Suleiman the Magnificent, and more, in incredible historical realism.</li><li>Original music tracks by Visager Music, as well as an adaptation of Henry VIII's masterwork, Pastime in Good Company.</li><li>A bear. Beware.</li></ul>
<p><img src="https://img.itch.zone/aW1nLzIzMDM1MjEuZ2lm/original/7FgD25.gif" loading="lazy"></p>
<p>Humiliate King Frank with your wealth and excess, or die trying.<br></p>
<p>You can also <a href="https://visager.bandcamp.com/album/fit-for-a-king-original-soundtrack" rel="nofollow noopener" referrerpolicy="origin">buy the original soundtrack by Visager Music here</a>!</p>
<p><strong>Developed by: </strong><a href="https://twitter.com/pulsemeat" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Brent Ellison</a>&nbsp;&amp;<strong>&nbsp;</strong><a href="https://twitter.com/tanyaxshort" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Tanya X. Short</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/NAYMT8vESS0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDUyODE1LzIzMDM1MjIuanBn/original/Lbk5TM.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDUyODE1LzIzMDM1MjQuanBn/original/lnAN0w.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDUyODE1LzIzMDM1MjMuanBn/original/arai%2Bb.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDUyODE1LzIzMDQwNDcuanBn/original/PUlMdV.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDUyODE1LzIzMDQwNDguanBn/original/MfSneg.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDUyODE1LzIzMDQwNDYuanBn/original/Diy5r7.jpg]]
<h3>Flufftopia is a cute
little clicker game with a story. Help Flufftown to grow and eventually
become Flufftopia! But wait… could there be even more?<span></span></h3>
<p>Your host Happy would love to accompany you and give advice!</p>
<p>A playthrough of the story
of Flufftopia takes around 30 minutes to complete.<br></p><p><br></p>
<p><strong>Key Features</strong><br></p>
<p>- An interesting story</p>
<p>- Two endings</p>
<p>- Cute graphics</p>
<p>- Relaxing soundtrack</p>
<p>- English, Spanish&nbsp;and German localization<br></p><p><br></p>
<p><strong>SmokeSomeFrogs</strong></p>
<p>This
is our second project after <a href="https://smokesomefrogs.itch.io/intra-system-trust-issues" target="_blank">Intra-System: Trust Issues</a>.</p>
<p>My next game will be <a href="https://smokesomefrogs.com/sonucido" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Sonucido: The Mage</a>!</p>
<p>Want
to report a bug or just say hello? Contact us at
protagonist@smokesomefrogs.com :) </p><p><br></p>
<p><strong>Links</strong><br></p>
<p>•
<a href="http://smokesomefrogs.com/" rel="nofollow noopener" referrerpolicy="origin">Website</a><br></p>
<p>• <a href="https://twitter.com/smokesomefrogs/" rel="nofollow noopener" referrerpolicy="origin">Twitter</a><strong></strong></p>
<p>• <a href="https://smokesomefrogs.com/press-flufftopia" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Press Kit</a><br></p><p><br></p>
<p>Version 1.5 has some nice changes:</p>
<p>- upgrade your piggy bank!</p>
<p>- small fixes and balancing</p>
<p>- polishing various details</p>
<p>System requirements: Recommended is a G3900 (2.8 ghz) and 2 gb of ram but you can play it on weaker systems without any problems. <br></p>
<p>For parents: This game contains a lot of weird jokes which aren't kid friendly.&nbsp; We suggest: Play it once before you give it to your kids.&nbsp;</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/ULtaQljxh7E" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjMxNzY3LzM4MjEzNDAucG5n/original/yedWKc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjMxNzY3LzI2MjMwMTIucG5n/original/xGJHzi.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjMxNzY3LzI2MjMwMTMucG5n/original/HEEd9e.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjMxNzY3LzI2MjMwMTQucG5n/original/ILhRRM.png]]
<h1>About Follower
 </h1>
<p><em><a href="http://follower.messenger-comic.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Follower</a></em> is a free to read long-running apocalyptic sci-fi webcomic created by Bug and Delade. It is a prequel webcomic to <em><a href="http://www.messenger-comic.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Messenger</a></em>, but both stories are designed to be read individually. Described as “sci-fi action drama with hints of furry” by The Duck Webcomics, <em>Follower</em> is the story of an alternate present day leading to a dystopian reality told in fully colored, stylized comic artwork. If you enjoy the genetic experimentation conundrums of <em>Jurassic Park</em>, or twisting military storylines of <em>Metal Gear Solid</em>, you may enjoy <em>Follower</em>. <em>Follower</em> is intended for readers of teen and young adult fiction and up.
 </p>
<p>
 </p>
<h2>Before you can lead, you must learn to follow.
 </h2>
<p>Deep in the desert, underneath sand and sun, a secret military project seeks to disrupt a brewing Second Civil War in the United States by creating the most efficient, combat capable group of soldiers the world has ever seen. A departure from autonomous drones, these hybrid warriors are grown and bred in a laboratory, carefully designed from the genes up— but results so far have been very unexpected: what happens when these genetically engineered chimeras can’t understand a single word?
 </p>
<p>
 </p>
<h2>Bonus Comic: The Setup
 </h2>
<p>Told in 6 extra pages, <em>The Setup</em> is a bonus side story exclusive to the download version of <em>Follower</em>. Look in on Doctor Tolio in his lab, and witness a brief but important conversation between two major players in the story. Things are about to heat up at Cottontail Base.
</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/iacoU0Xj2WM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzY3NDYvMzU3NjY0LmpwZw==/original/nXlMHB.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzY3NDYvMzU3NjYzLmpwZw==/original/jNAd0U.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzY3NDYvMzU3NjY1LmpwZw==/original/Mnj6D1.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzY3NDYvNzQxNDY2Mi5qcGc=/original/%2BNeKmZ.jpg]]
<p>(This is an apk file to sideload onto your Oculus Quest)</p>
<h5>The patrons are hungry, so feed them!</h5>
<p>Huck food at their faces to <del>shut them up</del>&nbsp;graciously serve them... in VR!&nbsp; Grab their tips, prep for the next wave, and do it all over again!&nbsp; Can you survive to Wave 99?</p>
<h5>Food Flingin' Fun!</h5>
<ul><li>An Oculus Quest VR arcade game.</li><li>Randomized patron preferences means lots of replayability.</li><li>Arcade mechanics - Wait till they're on the Sweet Spot to increase your coinage (and points!).</li><li>Puts the 'fun' back in 'Virtual Reality is fun'!</li></ul>
<h5>Credits:</h5>
<ul><li>Programming, Design - Eric Guadara</li><li>Producer - Brian Olson</li><li>Music -&nbsp;Ricardo Cuello<ul><li><a href="https://rest--vgmusic.bandcamp.com/" rel="nofollow noopener" referrerpolicy="origin">https://rest--vgmusic.bandcamp.com/</a></li><li><a href="https://richarrest.itch.io/classic-jrpg-music-pack-medium-pack"></a><a href="https://richarrest.itch.io/classic-jrpg-music-pack-medium-pack">https://richarrest.itch.io/classic-jrpg-music-pack-medium-pack</a></li></ul></li><li>Cover Art Font -&nbsp;Chris Garrett - cgf_locust_resistance<ul><li><a href="https://www.dafont.com/cgf-locust-resistance.font" rel="nofollow noopener" referrerpolicy="origin">https://www.dafont.com/cgf-locust-resistance.font</a></li></ul></li></ul>
<p><br></p>
<h5></h5>

<iframe width="720" height="450" src="https://www.youtube.com/embed/CxtBu_jvjds" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjcyOTUwLzM2NzkzMDQuZ2lm/original/V1fAgm.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjcyOTUwLzM2NzkzMDEuZ2lm/original/6n1tWy.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjcyOTUwLzM2NzkzMDMuZ2lm/original/49D4fP.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjcyOTUwLzM2NzkzMDIuZ2lm/original/CWujgb.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjcyOTUwLzM2NzkzMDUuZ2lm/original/aUHPRf.gif]]
<p>A low-poly walking simulator that puts&nbsp;you into a desolate, fully-greyscale forest that is devoid of life. While moving through this world, you must destroy blinking, disruptive roots that are burdening your path and the space around you.&nbsp;Sometimes these roots spawn new life, and sometimes a human, Charlie, appears. As you play through, the world will gradually saturate and life will begin to populate around you.&nbsp;</p>
<p>Charlie has a story to tell and it is your choice about if you want to follow and listen, or walk away and continue restoring the forest.&nbsp;<br><br>To play, use <strong>WASD to move</strong> through the space and <strong>click the left mouse button</strong> to swing your arm. You can move slightly faster by <strong>holding Shift</strong>.<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA1OTg5OS82MDY2ODA1LmpwZw==/original/L7EZZS.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1OTg5OS82MDY2ODA2LmpwZw==/original/6CE9NU.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1OTg5OS82MDY2ODYyLnBuZw==/original/zHXp6g.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1OTg5OS82MTUzNDM2LnBuZw==/original/KkPg2t.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1OTg5OS82MTUzNDM4LnBuZw==/original/vah4Tj.png]]
<p>In <strong>Forget-Me-Not: Myosotis</strong>, you create characters, people and stories by the memory left behind after their deaths. Those memories will also die themselves, one day.</p>
<p>With time, a deck of cards, and a writing implement, create entire lives, built from bricks of memories and history. Even with time, those bricks may fall, but the dust they leave behind will remain. At the end of the game, you write a eulogy of the deceased, ending with an epithet, describing them and their life.</p>
<p>This game is considered a journaling game, and as such is best enjoyed with a cup of warm tea, a long afternoon, a typewriter or laptop, and a morbid sense of curiosity and wonder.<br><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIwNDI4Ni83MDc3MzA2LnBuZw==/original/c%2F%2FN3O.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwNDI4Ni83MDc3MzIwLnBuZw==/original/oQYhOh.png]]
<p><em>forma.8</em>&nbsp;is a unique take on the proven Metroidvania action-adventure formula, with a striking visual style and a huge world to explore.</p>
<p>As the small exploration probe&nbsp;forma.8&nbsp;you're stranded alone on the surface of an alien planet. Separated from your companions by accident you have a life or death mission to accomplish: find and recover a lost, powerful energy source before it's too late. Ancient civilisations, great perils and dystopian visions await you. And not everything is what it seems...</p>
<ul><li>Explore a huge, open world full of secrets</li><li>Solve ancient mysteries</li><li>Gain new power-ups to progress in your adventure</li><li>Fight deadly enemies and face powerful bosses</li><li>Delve into a deep and cryptic lore</li><li>Beautifully hand-drawn vector graphics, presented in silky smooth 60fps</li></ul>
<p>Are you ready to uncover the truth?</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/FXsD9iv56s0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjY1ODE0LzM1OTc2MjQuanBn/original/JoyJtP.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY1ODE0LzM1OTc2MjcuanBn/original/0fuGqQ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY1ODE0LzM1OTc2MjkuanBn/original/AMxsN3.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY1ODE0LzM1OTc2MjYuanBn/original/8NQgMG.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY1ODE0LzM1OTc2MjguanBn/original/zfMeJX.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY1ODE0LzM1OTc2MjUuanBn/original/s%2FnLYa.jpg]]
<p>Fortune-499 is a game about money and magic. You play a fortune teller working in the magical resources department of a large corporation. You engage in day-to-day office activities such as forwarding emails, attending meetings, fighting back hordes of monsters, and dealing with printer jams. With some tricky magic up your sleeve and your job on the line, it's up to you to build a future out of the hand you've been dealt.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/oeWwtaRJovQ" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTUyODY1LzExNzQzMzcucG5n/original/DtKNKP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUyODY1LzExNzQzMzgucG5n/original/DBcsN4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUyODY1LzExNzQzMzkucG5n/original/G8qv11.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUyODY1LzExNzQzNDAucG5n/original/sa3mne.png]]
<p><img src="https://img.itch.zone/aW1nLzEwMTM1MzIuZ2lm/original/R%2BSHTn.gif" loading="lazy"></p>
<p class="text-justify"><strong><em>An action-adventure game about digging for fossils and building your own dinosaurs</em></strong></p>
<p>You are an adventuring Fossil Hunter who has traveled to a remote, mysterious dig site to discover the most incredible fossils the world has ever seen. Discover and assemble your own fossil creations and avoid cave-ins, monsters, and traps while you explore exciting underground environments. Find secrets, treasure and more as you uncover clues to the&nbsp;whereabouts of the fossil hunters who came before you, and endeavor to reach the very bottom of the cave.</p>
<h2>Features</h2>
<ul><li>Modular fossil building system allows you to build any way you like</li><li>Your journey is your own: fill your field journal with notes, secrets, and sketches you discover along the way</li><li>Play with up to 3 other friends in the frantic local co-op mode</li><li>30 hand-crafted levels with new fossils, secrets, and power-ups to discover</li><li>Play as one of 4 unique Fossil Hunters with multiple colour variations</li></ul>
<p><img src="https://img.itch.zone/aW1nLzEwMTMzNzgucG5n/original/NA7g6b.png" loading="lazy"></p>
<p><br></p>
<p>Recommended System Specs:</p>
<ul><li>OS:&nbsp;Windows 10 64-bit
</li><li>Processor:&nbsp;2.6 GHz Core i5
</li><li>Memory: 4 GB RAM
</li><li>Graphics:&nbsp;AMD Radeon RX 260 / NVIDIA GeForce 750</li></ul>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/cx_vNM_lCrg" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjE0NzA5LzEwMTMwNTcucG5n/original/mbis56.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE0NzA5LzEwMTM1NTkuZ2lm/original/NToURt.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE0NzA5LzEwMTM1NDcuZ2lm/original/pjTapp.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE0NzA5LzEwMTM1NTguZ2lm/original/k0fFGT.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE0NzA5LzEwMTMwNTgucG5n/original/TrIB14.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE0NzA5LzEwMTMwNjAucG5n/original/5r1evD.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE0NzA5LzEwMTMwNjEucG5n/original/3x6xfO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE0NzA5LzEwMTMwNTkucG5n/original/rYPTXP.png]]
<p>The world has ended once before, and there are those who aim to end it again. The demon summoned to embark this second apocalypse is only a child, and a woman who has lost it all resolves to save her. A half-hour long narrative game with survival gameplay elements and two endings.</p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzYxMjU1NzMucG5n/original/nxgLDp.png" loading="lazy"></p>
<p><img src="https://img.itch.zone/aW1nLzYxMjU1NzcuZ2lm/original/ta6EJr.gif" loading="lazy"><br></p>
<p>The year is 19XX.&nbsp;The world has been lost to a demon apocalypse, the remnants of this devastation staining the landscape and leaving mere dozens of people alive. The wastes are harsh, and camaraderie is hard to come by. You play as&nbsp;<strong>Del</strong>, a bruiser who patrols the wastes in her truck. She's hardened by this dead world, but something softer lies beneath her violent exterior.</p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzYxMjU1NjMucG5n/original/daOefk.png" loading="lazy"><br></p>
<figure><img src="https://img.itch.zone/aW1nLzYxMTIwNjQuZ2lm/original/uFmwtu.gif" loading="lazy"></figure>
<p>Despite the destruction of it all, there are those in the end of the world&nbsp;who feel that perhaps the first time didn't quite take. On an average patrol, Del spots a pillar of fire in the distance and the source of it can only be one thing: demons have been summoned once more. But even demons can be innocent.&nbsp;<strong>Barrett</strong> is no more than a child, and those left in the&nbsp;world are either out to get her, or to control her.<br></p>
<p><br></p>
<figure><img src="https://img.itch.zone/aW1nLzYxMjU1NjkucG5n/original/IQhOKT.png" style="font-size: inherit" loading="lazy"><br></figure>
<p><img src="https://img.itch.zone/aW1nLzYxMjM3OTQuZ2lm/original/IctBPi.gif" loading="lazy"></p>
<p>Fostering Apocalypse is 4.99 USD, but there is more to enjoy if you donate.</p>
<ul><li>At the $9.99 tier, receive&nbsp;<strong>the original soundtrack by Ian Laurence</strong>, including each track of the game as well as original album art.</li><li>At the $14.99 tier, receive all of the above, as well as&nbsp;an <strong>Art Book PDF</strong> that includes concept art, sketches, process documentation, and in-game assets, as well as&nbsp;<strong>five 4K&nbsp;desktop wallpapers &amp; hi-res phone backgrounds</strong>&nbsp;of in-game environments and&nbsp;the game cover by Nathaniel Santore.</li></ul>
<figure><img src="https://img.itch.zone/aW1nLzYxMjQyNzYuZ2lm/original/nTadnt.gif" loading="lazy"><br></figure>
<p>Fostering Apocalypse is the&nbsp;debut game of Incisor Studios, a game dev studio founded by Steff Bradley &amp; Mauricio Castillo Rodríguez. Made in the span of four months.<br></p>
<p>Narrative Direction &amp; Art Assets<br>Steff Bradley<br><a href="https://www.steffbradley.com/" target="_blank" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">https://www.steffbradley.com/</a></p>
<p>Programming<br><span></span>Mauricio Castillo Rodríguez<br><a href="http://www.maurimo.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">http://www.maurimo.com/</a><br></p>
<p>Sound Design<br>Cristian Ayala<br><a href="https://www.cristianayala.net" target="_blank" rel="nofollow noopener" referrerpolicy="origin">https://www.cristianayala.net/</a><br></p>
<p>Soundtrack<br>Ian Laurence<br><a href="https://www.musicianlaurence.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">https://www.musicianlaurence.com</a><br></p>
<p>Game Cover<br>Nathaniel Santore<br><a href="https://www.nathanielsantore.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">https://www.nathanielsantore.com</a><br></p>
<p>Special Thanks<br>Mark Sable &amp; Jim Rugg<br>SVA MFA&nbsp;Visual Narrative<br></p>
<p>Daniel Rodríguez<br>Anna Marcelo</p>
<p>Made with <a href="https://unity.com" target="_blank" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">Unity</a>, <a href="https://yarnspinner.dev" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">YarnSpinner</a>, &amp; <a href="https://www.fmod.com" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">FMOD</a>.</p>
<p>Contact and press: incisorstudios@gmail.com</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/JeBe6L4a4lQ" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAwNDgxMS82MTEyMDkxLmdpZg==/original/9mXmi1.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwNDgxMS82MTg3OTcwLmdpZg==/original/BILKZU.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwNDgxMS82MTg3OTcyLnBuZw==/original/Hx%2FHYW.png]]
<p>EMIGRATE TO WESTERN EUROPE.<br>MAKE CORNFLAKE NACHOS.<br>CONFRONT THE GHOSTS OF A DEAD INTERNET.<br>PRETEND YOU DON'T SPEAK ENGLISH.<br>BUILD A BLENDER OUT OF PLASTIC SPOONS.<br>GET ARRESTED FOR APOLOGIZING TO A COP INFORMALLY.<br>KISS YOUR CRUSH.<br>START AN ARMED INSURRECTION.<br>WATCH ANIME.<br>DIE FIGHTING FOR YOUR RIGHTS IN A BLAZE OF GLORY.<br>START OVER IN NORTH AFRICA.<br>WATCH LESS ANIME THIS TIME.</p>
<p>Four Horsemen is a visual novel / SLG about homelands and the immigrant experience. Play as a group of four contemporary immigrant teenagers squatting in a World War II era machine gun bunker, trying to find a place for themselves in a pre-apocalyptic, present-dystopian country that has no place for them. Will you go native, turning against your own people to bury the past your parents fled to escape? Will you cling to your parents' identity at any cost, at the price of being a permanent stranger in your home country? Or will you strike out on your own, turning against both your homelands to shape a destiny for yourself? Love is all you need...and also improvised firearms.</p>
<p>Drawing from the developers' own lived experiences, interviews with current and former immigrant teens from around the world, and a year of painstaking anthropological research, featuring <strong>4 different main storylines,</strong> <strong>9 different endings, 12 different playable homelands </strong>(all of which play differently), and a multitude of agonizing, important decisions, Four Horsemen is the most heartwarmingly familiar, brutally honest video game about the immigrant experience ever created. One playthrough can be finished in a matter of hours, but you'll want to revisit it again and again to see all of the many stories the game has to tell...and to pursue that elusive dream of a land you can call your own.</p>
<p><strong>Exciting Bullet Points!!</strong></p>
<ul><li><strong>YOUR DECISIONS MATTER.</strong> Hard choices you make at the beginning come back to haunt you at the end. Characters turn out to be heroic or villainous depending on how you treat them--and they don't always reward you for treating them well.</li><li><strong>NO TWO COUNTRIES PLAY ALIKE.</strong> Each homeland has its own unique vocabulary, set of cultural values, prejudices, and history. Choices that are a good idea in one country turn out to be a reaaaaally bad idea in another. Like a real immigrant, you'll have to read your new culture and learn to adapt.</li><li><strong>NOT JUST BLACK AND WHITE.</strong> No faction reputation system! No alignment meter! Four Horsemen offers realistic, genuinely difficult moral choices, and to some questions there are no right answers--only different consequences.</li><li><strong>DELIGHTFUL CRAFTING SYSTEM.</strong> Make that cold, austere war bunker feel like home--dive into dumpsters scrounging for parts, or buy them with your earnings from your terrible day job, and make reasonable DIY facsimiles of things you can't afford! Characters interact with things you build. Make a disco ball and they'll throw a dance party, patch up that hole in the roof and they'll enjoy a quiet moment together on a rainy day. But beware--the system is not exactly fair to immigrants...</li><li><strong>TRIUMPH OVER HATE.</strong> A bigot pulls a knife on you--what do you do? Do you try to de-escalate the situation with words...or respond by drawing your own blade? Our combat system replicates the anxiety and tension of real violence, not a power fantasy.</li><li><strong>THE MOST ADVANCED PROFANITY SYSTEM IN A VIDEO GAME, EVER.</strong> Audited by real current and former teenaged native speakers! Learn how to cast aspersions on a person's ancestry in 10 different real-world languages!</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/qrhtj41oAxk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM5OTQ5LzY0MDkyNS5wbmc=/original/vLlglc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5OTQ5LzY0MDkyNy5wbmc=/original/v2BIgO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5OTQ5LzY0MDkyOS5wbmc=/original/hNpjno.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5OTQ5LzY0MDk0NC5wbmc=/original/tpW9zi.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5OTQ5LzY0MDkyOC5wbmc=/original/LdUioa.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5OTQ5LzY0MDkzMS5wbmc=/original/FBncMs.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5OTQ5LzY0MDk0MC5wbmc=/original/Ck4t17.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5OTQ5LzY0MDkzNC5wbmc=/original/aReNpG.png]]
<p></p>
<p><br></p>
<p>Using a game mechanic called the Story Point System, which utilises d12 dice and tokens or chits, Fox Magic introduces a new type of role playing game, where the players control more of the game, and the game master is not the god he used to be. Play as a den of kitsune, and let your imagination guide how your story unfolds!  Included in this bundle is a separate pregenerated adventure book, complete with premade characters for an eay introduction to the game. This represents a savings of $5.</p>
<p><br></p>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNzc3NS84MzIwNTU0LmpwZw==/original/sYNTId.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNzc3NS84MzIwNTUzLmpwZw==/original/ynSgc6.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNzc3NS84MzIwNTUyLmpwZw==/original/WDsjml.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNzc3NS84MzIwNTU1LmpwZw==/original/X3ERNL.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNzc3NS84MzIwNTU2LmpwZw==/original/4HuO7F.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNzc3NS84MzIwODMzLmpwZw==/original/zDIQLV.jpg]]
<p>A TTRPG for people who understand that Frankenstein was the real monster!</p>
<p><strong></strong><em><strong>Frankenmonster Creaturestein</strong></em> is a 26-page-long&nbsp;table top role playing game suitable for groups of&nbsp;for 4-6+ people (including the GM).<br></p>
<p>Somewhere in 19th century Europe, a feckless Rogue Scientist has wrought havoc with their self-indulgent experiments! Amongst their mistakes are you, the Monsters, chaotic assemblages of beastial, mechanical, and&nbsp;alchemical&nbsp;body parts. As the Rogue Scientist is driven from their lair by the Mob, it's up to you to follow a series of Connections to prevent whatever terrible plans are in motion!</p>
<p><strong></strong><em><strong>Frankenmonster Creaturestein</strong></em>'s mechanic revolves around your Body Parts, each of which corresponds to a particular Skill. The more Body Parts you have corresponding to a Skill, the better you are at it!&nbsp;</p>
<p>You'll create your Monsters&nbsp;using the surrealist&nbsp;artistic exercise of the Exquisite Corpse, and from there you can trade Body Parts with your comrade Monsters to optimise and strategise, lean more towards being a monstrosity or a human, and face off against terrible Adversaries!</p>
<p>To play the game you only need:</p>
<ul><li>At least twelve six-sided dice.</li><li>Pencils and paper to record notes (we recommend using the Monster Sheet)</li></ul>
<p><em></em><strong><em>Frankenmonster Creaturestein </em></strong>was playtested by Daniel Clarke, Grace Helen, and Harry Robertson.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIwNzQ0MS83MDQ1Mjk3LnBuZw==/original/L4JpyA.png]]
<h4>About the game</h4>
<p>In Frick, Inc. you'll drive various trucks using on-screen control panels. Each truck has a different control method and it's all made to be <em>"</em><em>Frick, Inc."</em> frustrating until you master it.</p>
<p><img src="https://i.ibb.co/0f00bvX/showcase.gif" loading="lazy"></p>
<ul><li><strong>Easy to learn, hard to master&nbsp;</strong>–<strong>&nbsp;</strong>You'll be switching between trucks (and control methods) in 40 levels to perform various&nbsp;tasks.</li><li><strong>Extra challenge in each level</strong>&nbsp;– Each of the levels contains an extra challenge, only for those daring enough to go the extra mile.</li><li><strong>Includes game assets</strong>&nbsp;– Ready to get into game development? Use the included 3D models to create your own game inspired by Frick, Inc.</li></ul>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzQyNzMzNDMucG5n/original/CHi2%2FV.png" loading="lazy"></p>
<h4>Bonus</h4>
<p></p>
<p>Also includes game assets <em>(CC0, 3D models)</em> to create your very own game inspired by Frick, Inc. The models are compatible with all popular game engines including Unity, Godot and Unreal Engine.</p>
<p><br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzQyNzg0NDMucG5n/original/mPgOpN.png" loading="lazy"></p>
<h5>Requirements</h5>
<p>The game can only be played using a mouse. A keyboard or gamepad aren't supported or required. Windows and Linux&nbsp;compatible, not compatible with other operating systems.</p>
<p><br></p>
<p class="text-center"><a href="https://twitter.com/KenneyNLGames" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzQ4MjIwNzIucG5n/original/g%2FhxGp.png" loading="lazy"></a><br></p>
<p class="text-center"><a href="https://twitter.com/KenneyNL" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter</a> | <a href="https://www.facebook.com/KenneyNL" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Facebook</a></p>
<h6 class="text-center">Copyright © Kenney 2020 | All rights reserved</h6>
<h6 class="text-center"><a href="https://kenney.nl/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzM3MDYxNjEucG5n/original/3CIJaX.png" loading="lazy"></a></h6>

<iframe width="720" height="450" src="https://www.youtube.com/embed/EPNE9hMSrVw" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjc2MjAyLzM4ODEzNTgucG5n/original/SDcou9.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjc2MjAyLzM4ODEzNTYucG5n/original/mAJdwp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjc2MjAyLzQ0MTIwMzEucG5n/original/nxEU9s.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjc2MjAyLzM4ODEzNTkucG5n/original/rrE829.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjc2MjAyLzQ0MTIwNDMucG5n/original/MPS3FH.png]]
<p class="text-center">Stupid++ proudly presents...</p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzUzMDMxODMucG5n/original/ITTq%2BE.png" loading="lazy"></p>
<p>A faithful remake of PictoChat for Windows and Android.</p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzUzMDMxODQucG5n/original/VGEQwY.png" loading="lazy"><br></p>
<ul><li>Faithfully handcrafted visuals derived from the original. 👀</li><li>Four chatrooms. 💬</li><li>Drawing suggestions. 📝🤔</li><li>Chat with up to&nbsp;65535 people at the same time (theoretical limit).</li></ul>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzUzMDM0NTAucG5n/original/WaeT%2FG.png" loading="lazy"></p>
<ul><li>Up to 4 colors. 🎨👩‍🎨</li></ul>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzUzMDM1MzguZ2lm/original/5iVkm8.gif" loading="lazy"><br></p>
<ul><li>Up to 36 colors (based on&nbsp;<a href="https://lospec.com/palette-list/pear36" rel="nofollow noopener" referrerpolicy="origin">PEAR36</a>). 🎨👩‍🎨</li><li>A crown for a king. 👑</li></ul>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzUzMDM4MDQucG5n/original/on%2BqJZ.png" loading="lazy"></p>
<p>You have to be on the same network/WIFI&nbsp;to chat.</p>
<p>Stupidplusplus and FroggyChat are&nbsp;not affiliated, associated, authorized, endorsed by, or in any way officially connected with Nintendo Co., Ltd., or any of its subsidiaries or its affiliates.</p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzUzMDg5NTEucG5n/original/qAixdu.png" loading="lazy"><br></p>
<p><strong>Version 1.0</strong></p>
<ul><li>Initial release</li></ul>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzUzMDM3MzkucG5n/original/c0ETRj.png" loading="lazy"><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTMwNzYzLzUzMDI5NzMucG5n/original/l3CCWb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTMwNzYzLzUzMDU3MjAucG5n/original/PMXOL2.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTMwNzYzLzUzMDM3MjMucG5n/original/jwvNyb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTMwNzYzLzUzMDM4NDQucG5n/original/1LFO1U.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTMwNzYzLzUzMDM4NDgucG5n/original/LFhz6Z.png]]
<p class="text-justify">This is an unofficial&nbsp;supplement for <a href="https://www.drivethrurpg.com/product/360858/The-Between" target="_blank" style="text-align: justify; font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">The Between</a>. &nbsp;It includes 14 Unscenes, 7 for use during the day and 7 for use during the night, as well as suggestions on how to use Unscenes during the day.<br></p>
<p class="text-justify"><strong>7 Day Unscenes</strong></p>
<ul class="text-justify"><li class="text-justify"> <em>The Last Day in the Life of Francis Poole</em></li><li class="text-justify"><em> Tock, Tock, Tock</em></li><li class="text-justify"><em> The Scent of Me</em></li><li class="text-justify"><em> The Sermon</em></li><li class="text-justify"><em> A Visit at Court</em></li><li class="text-justify"><em> Eater of Sins</em></li><li class="text-justify"><em> Gentle Giants</em></li></ul>
<p class="text-justify"> <strong>7 Night Unscenes</strong></p>
<ul class="text-justify"><li class="text-justify"> <em>To Turn a Blind Eye</em></li><li class="text-justify"><em> The Cook Ball</em></li><li class="text-justify"><em> The View From My Window</em></li><li class="text-justify"><em> End of Day at the Crystal Palace</em></li><li class="text-justify"><em> Dump it in the River</em></li><li class="text-justify"><em> The Deliberately Forgotten Coterie of Darling Street</em></li><li class="text-justify"><em> A Competitive Business</em></li></ul>
<p class="text-justify"><strong>Content Warnings</strong></p>
<ul class="text-justify"><li class="text-justify"><strong>The Last Day in the Life of Francis Poole:</strong> severe loneliness, dying alone</li><li class="text-justify"><strong>Tock, Tock, Tock:</strong> prompts relating to the description of severe poverty</li><li class="text-justify"><strong>The View From My Window:</strong> physical violence against adults, childhood trauma</li><li class="text-justify"><strong>To Turn a Blind Eye:</strong> ignoring of human suffering, alcoholism</li><li class="text-justify"><strong>Dump it in the River:</strong> allusion to physical violence against adults</li><li class="text-justify"><strong>A Competitive Business:</strong> grave-robbery</li></ul>
<p class="text-justify"><strong>You Get</strong></p>
<ul class="text-justify"><li class="text-justify">a 20 page black and white PDF, including cover, back, etc.</li><li class="text-justify">printer friendly versions</li><li class="text-justify">spread and single page versions</li><li class="text-justify">a text only version as .txt</li></ul>
<hr>
<p class="text-justify">This supplement was created by <a href="https://twitter.com/maxkaemmerer" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Max Kämmerer</a>, you can find their work on <a href="https://maxkaemmerer.itch.io/" target="_blank">itch.io</a>.</p>
<p class="text-justify">The Between was written by&nbsp;<a href="https://twitter.com/jasoncordova6" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Jason Cordova</a>&nbsp;and published by&nbsp;<a href="https://twitter.com/CodexRPG" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Gauntlet Publishing</a>.</p>
<p class="text-justify">This publication is not affiliated with Gauntlet Publishing or Jason Cordova, though it is created with their permission.</p>
<hr>
<p class="text-justify">Fonts used are Salome, Calendas Plus and Brighton. (Cormorant on the itch.io page)</p>
<p class="text-justify">London Silhouette illustration by <a href="https://creazilla.com/nodes/790-victorian-london-skyline-silhouette" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Bob Comix</a> under <a href="https://creativecommons.org/licenses/by/4.0/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Creative Commons Attribution 4.0</a>.</p>
<p>Sun and moon icons from <a href="https://game-icons.net/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">https://game-icons.net/</a>&nbsp;under <a href="https://creativecommons.org/licenses/by/3.0/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Creative Commons Attribution 3.0 Unported (CC BY 3.0)</a></p>
<p class="text-justify">Made with Scrivener and Affinity Publisher.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE0MzY2MC82NjM2Mjk2LmpwZw==/original/hZHGWJ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0MzY2MC82NjM2Mjk3LmpwZw==/original/f4SOTg.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0MzY2MC82NjM2Mjk4LmpwZw==/original/FLaDPq.jpg]]
<p><strong>Duke DeCorticus is dying!</strong></p>
<p>The peaceful lynchpin&nbsp;duchy of Plandra&nbsp;is under threat. Its quasi-arboreal ruler is starved of his esoteric earths, sedition is rife, assassins glint in the shadows and green ink is everywhere! The quest to restore stability takes you to the Rainbow Badlands, across the precipitous face of The Wall and into the very vaults of the hump-backed sky!<br><br>Fronds of Benevolence is a chapbook adventure for TROIKA! best suited for groups of 4 to 6 characters.</p>
<p>Physical book available from www.melsonia.com<br><br>Book Details<br></p>
<ul><li><strong>Written &amp; illustrated</strong>&nbsp;by&nbsp;Andrew Walter</li><li><strong>Hardcover:</strong>&nbsp;43 pages</li><li><strong>Publisher:</strong>&nbsp;Melsonian&nbsp;Arts Council (13&nbsp;Nov. 2019)</li><li><strong>ISBN:&nbsp;</strong>978-0-9957567-5-5</li><li><strong>Dimensions:&nbsp;</strong>15.4 x 0.9 x 21.6 cm</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTE3OTQ3LzI2ODk3NjEuanBn/original/JFWg08.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTE3OTQ3LzI2ODk3NTgucG5n/original/GqdNBB.png]]
<p>It's time for your feline society's annual ritual of heavenly ascension, but something's gone wrong, and there are rumors that there's a traitor in your midst. How will you avert disaster? Which of you will prove yourself the most Adored cat and&nbsp;earn the right to ascend? And which of you is secretly the most Odious cat, plotting to snatch that right from under everyone's whiskers?</p>
<p><strong>Fur One Night Only!</strong> is a party RPG in the spirit of games like Honey Heist or Lasers and Feelings. That&nbsp;means you can play it right after reading the rules and have a satisfying play session in just an hour or less. You'll need one GM and 3 or more players to make sure the end of the game works correctly.</p>
<p>The PLAYBILL EDITION of <strong>Fur </strong><strong>One Night Only!</strong> is the game's official release. It's designed to be readable on devices as well as easily printed into a homemade zine! Just set your printer up for booklet printing in your PDF reader of choice, fold, and staple down the spine.<br></p>
<p>Want to see the game in action?&nbsp;Check out this Actual Play, originally streamed on Twitch.tv/Huetopia on 8/26/20!</p>
<p><iframe width="560" height="315" src="https://www.youtube.com/embed/881bHZIS0J0" frameborder="0" allowfullscreen=""></iframe><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/881bHZIS0J0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTg4NzA1LzM1OTQwMzEucG5n/original/EnhNRX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTg4NzA1LzM1OTQwMzIucG5n/original/HfJD8W.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTg4NzA1LzM1OTQwMjIucG5n/original/RIV%2BWC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTg4NzA1LzM1OTQwMjEucG5n/original/yQ7wuG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTg4NzA1LzM1OTQwMjUucG5n/original/Jvkuev.png]]
<blockquote>Content Warning: Post-Apocalypse and related tropes, violence, mental illness, body mutilation</blockquote>
<h1>WHAT THE F_CK IS THIS PLACE?</h1>
<p><em>At the end of the before time the earth was scorched in deadly fire. Salt flats, craggy canyons, sand molten to glass, and vast stretches of desert is all that’s around you. Like toys dropped from a giant child remnants from the past dot the landscape. A rusted tanker in the middle of nowhere, its hull is broken apart like a whale corpse burst open. Seats and debris from a giant plane are littered about for miles as if they were spat out. Craters where the bombs fell. Here and there old crumbling remains of structures, now repurposed as fortifications for the powerful. And very rarely, like blackened fingers clawing at the sky, the old towers billowing dark clouds that still produce the thing everyone wants, no, needs to survive. Gasoline. Most people have been driven insane by the parched and unforgiving landscape or the monstrous raiders by now. The gangs are the ones that have the wheels and the power. The strongest and most merciless lead. This is no time for weakness as the weak get eaten. Sometimes literally. There are only crazies left in one way or another. And this is a world you want to step into? Good luck!</em></p>
<p>Furious Roads is the minimald6 way into the Post-Apocalypse. Spend less time with rules and more time doing insane things. Enjoy fast and frenzied action based on&nbsp;<a href="https://www.drivethrurpg.com/product/234317/minimald6" target="_blank" class="" rel="nofollow noopener" referrerpolicy="origin">minimald6</a>&nbsp;while you strive to survive in a desolate wasteland. The rules feature an easy mechanism to track the use and degradation of items to add to the survival aspect in this post-apocalyptic world.</p>
<p>Play as one of many different types of crazies in this hellish place, including:</p>
<ul><li><strong>Black Thumb</strong>&nbsp;If a thing is broken they are going to fix it. Somehow.</li><li><strong>Brute</strong>&nbsp;Avatars of vicious savagery, unparalleled might, and dim wits.</li><li><strong>Haggler</strong>&nbsp;Everyone needs something, and they get it for you.&nbsp;</li><li><strong>Organic Mechanic</strong>, They either fix a person or break them more.</li><li><strong>Polecat</strong>&nbsp;Dancers, acrobats, and melee fighters without sense.</li><li><strong>Rev Head</strong>&nbsp;Wild drivers of the wastes, king behind a steering wheel.</li><li><strong>Tyrant</strong>&nbsp;Someone is always the boss. They are the bosses' boss.</li><li><strong>Waster</strong>&nbsp;Lone wanderers drifting around, ready for everything.</li><li>and more!</li></ul>
<p></p>
<blockquote class="text-center"><strong>&gt; Also contains the&nbsp;Gettin' Weird&nbsp;Expansion! &lt;</strong></blockquote>
<h2>WHAT THE F_CK HAPPENED TO&nbsp;THIS PLACE? AND WHO ARE THESE PEOPLE?</h2>
<p><em>You thought the ones from Furious Roads where crazy? Check out these fellas!</em></p>
<p><strong>Furious Roads: Getting’ Weird</strong>&nbsp;is a small expansion, adding the strange and weird into the mix. Or rather, more strange and weird than in Furious Roads!</p>
<p>Play as one of many new types of crazie, including:</p>
<ul><li><strong>Bone Shaman</strong>&nbsp;Mystic powers and a bone fetish.</li><li><strong>Cyborg Dog</strong>&nbsp;Man’s best friend. Better, faster, stronger.</li><li><strong>Deep Sleeper</strong>&nbsp;Was tucked away save and sound when the bombs fell.</li><li><strong>Lost-in-time</strong>&nbsp;Oh no, they overdosed the potion!</li><li><strong>Mush-Roomed</strong>&nbsp;A walking, talking fungal colony.</li><li><strong>Wasteland Dragon&nbsp;</strong>Man-sized post-apocalyptic dragon. What?</li><li>and more!</li></ul>
<p>Includes an expanded Trait list for&nbsp;<em>vehicles</em>&nbsp;and introduces<em>&nbsp;animal mounts</em>.</p>
<p>The download contains all you need to begin play within minutes. There is a random generator for post-apocalyptic scenarios and locations to let you quickstart your imagination.&nbsp;</p>
<p>Enjoy the ride!</p>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODE1NDYyLzQ1NzIxMTMuanBn/original/cwMzBP.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODE1NDYyLzQ1NzIxMTUuanBn/original/MP2KUV.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODE1NDYyLzQ1NzIxMTYuanBn/original/3ZBCFq.jpg]]
<blockquote>Content Warning: Post-Apocalypse and related tropes, violence, slavery</blockquote>
<h1>WHAT IS THIS PLACE?</h1>
<p><em></em></p>
<p><em>At the end of the before-time, deadly fire scorched the earth. Salt flats, craggy canyons, sand molten to glass, and vast stretches of desert are all that's around you. Like toys dropped from a giant child, remnants from before dot the landscape. A rusted tanker in the middle of nowhere, its hull broke apart like a whale corpse burst open. Crumbling remains of structures, now repurposed as fortifications. And, like blackened fingers clawing at the sky, towers billowing dark clouds that still produce the thing everyone wants, no, needs to survive: Gasoline.</em>
</p>
<p>This one-page TTRPG uses the flexible <a href="https://zadmar.itch.io/">Tricube Tales</a>&nbsp;rules to tell stories about survivors on a ravaged earth after the apocalypse. Uses a simple d6 mechanic: If a player attempts something risky, they roll 1-3 six-sided dice and must equal or beat a difficulty of 4-6 on at least one die. There is some nuance and Karma to influence your dice, but that's the gist of it.&nbsp;&nbsp;
</p>
<p>Strap in, drive, scavenge, steal, or barter for Stuff to survive. The wastes and the people that still live there are dangerous, and your only hope is to get out of this place to reach the verdant valley.
</p>
<p><br><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE4NTE3Mi82OTA5NTcxLmpwZw==/original/0EWQ0%2F.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE4NTE3Mi82OTA5NTU5LmpwZw==/original/e93%2Fzu.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE4NTE3Mi82OTA5NTYxLmpwZw==/original/QY3tvR.jpg]]
<h2>8-bit Fusion</h2>
<p>8 lovingly-crafted, <strong>nostalgia-tinged</strong>, genre-bending <strong>music loops</strong> for use in your commercial or non-commercial projects. Created using the same set of <strong>8-bit synths</strong> and contemporary sounds for a cohesive experience. Just give it a listen!<br></p>
<iframe scrolling="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/playlists/1190277142&amp;color=%23ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false&amp;show_teaser=true&amp;visual=true" width="100%" height="300" frameborder="no"></iframe>
<p><br>This pack contains 8 high-quality .wav files.<br></p>
<p></p>
<h2>Licensing Info:</h2>
<ul><li>Credit required: Ben Arntz, @beepartz</li><li>Redistributing the music files is a big no-no!</li></ul>
<p>Please let me know if you use any of these tracks in your stuff so I can promote it too!<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/_zrE7vP3J-4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1nLzQ5Mjc5NzkucG5n/original/oCjx%2BX.png]]
<p>Future Unfolding is an action adventure that is all about exploration. Your goal is to unfold the mysteries and solve the puzzles hidden in the beautiful landscapes around you. There are no tutorials, and no one is telling you what to do.</p>
<p>During your journey you encounter different types of wild animals. Some of them are friendly and helpful. Other animals are dangerous — deadly, even. You need to avoid them, or find ways to turn them into friendly creatures.</p>
<p>You can leave the beaten path at any time and hunt down secrets in the forgotten woods. Or go explore in hidden caves. It's okay to get lost — a detailed auto-map helps you to orient yourself. Over time you map out more and more of the vast environments. There is always a way out. But where to go after?</p>
<p><a href="https://www.esrb.org" rel="nofollow noopener" referrerpolicy="origin"><img src="http://az750008.vo.msecnd.net/images/esrb-08b9ec58.png" style="height: 76px" loading="lazy"></a></p>
<p><a href="http://www.pegi.info" rel="nofollow noopener" referrerpolicy="origin"><img src="http://az750008.vo.msecnd.net/images/pegi-7-8e52ce34.png" style="height: 76px" loading="lazy"></a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/ihyrf2jfpIk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA4NTQ1LzUwNDAwNS5qcGc=/original/2F6nOF.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA4NTQ1LzUwNDAwMi5qcGc=/original/q6%2Fp3B.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA4NTQ1LzUwNDAwMy5qcGc=/original/ECchLA.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA4NTQ1LzUwNDAwNC5qcGc=/original/JO4MsJ.jpg]]
<p><span></span></p>
<div></div>
<iframe src="https://gfycat.com/ifr/NegligibleFluffyCottontail" frameborder="0" scrolling="no" allowfullscreen="" width="640" height="405"></iframe>
<p><strong><br>Nail the perfect line in the future's most challenging stunt sport!<br><br></strong>Grab your bike and hit the rails in FutureGrind, a stylish stunt-platformer all about tricks, skill, and speed. Use your futuristic bike to chain together huge combos on tracks made of floating rails, but watch out: touch the wrong color and you'll explode instantly!<br><strong><br></strong><br></p><iframe src="https://gfycat.com/ifr/LikelyBeautifulJunebug" frameborder="0" scrolling="no" allowfullscreen="" width="640" height="402"></iframe>
<p>Keep your sponsors happy and you'll find yourself earning new bikes and racing mind-bending tracks built for the pros. But not everything is as it seems. Someone is watching your every move. Who is it, and what do they really want with you?</p>
<p>Think you have what it takes? Test your limits while grinding to the bass pounding beats of an original soundtrack.</p>
<p><strong>Color Blind Mode</strong><br>For color blind players, FutureGrind's colors are customizable so that you can play in a way that works for you.</p>
<iframe src="https://gfycat.com/ifr/InsistentVacantKakarikis" frameborder="0" scrolling="no" allowfullscreen="" width="640" height="405"></iframe>
<p><strong>Features:</strong></p>
<ul><li>Dozens of hand-crafted tracks to test even the most skilled players</li><li>Different bikes, each with their own unique style of play</li><li>Chain tricks together in a deep combo system that rewards creativity</li><li>Instant restarts (you'll need them!)</li><li>Earn the top awards in score attack mode</li></ul>
<iframe src="https://gfycat.com/ifr/UnsungThankfulCygnet" frameborder="0" scrolling="no" allowfullscreen="" width="640" height="402"></iframe>

<iframe width="720" height="450" src="https://www.youtube.com/embed/eIUSc9N9q6g" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzU2MjYwLzE3Nzg4MzguanBn/original/qkFWID.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzU2MjYwLzE3Nzg4MzkuanBn/original/fX2WBf.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzU2MjYwLzE3Nzg4NDMuanBn/original/grsvsk.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzU2MjYwLzE3Nzg4NDAuanBn/original/Eqt9ri.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzU2MjYwLzE3Nzg4NDEuanBn/original/1y8F1F.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzU2MjYwLzE3Nzg4NDIuanBn/original/wfrUTv.jpg]]
<p>
	<em>"A game that defies explanation. Best played with a fresh and open mind." ~ <a href="https://twitter.com/wf__games" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Weird Fucking Games</a></em><br>After underwhelming sales in the traditional 
	Realdollar marketplace of their magnum opus, <em><a href="http://benweatherall.itch.io/futurevoximaginariumdotexe">FUTUREVOXIMAGINARIUMDOTEXE</a></em>, <a href="https://twitter.com/SunraHeadgear" rel="nofollow noopener" referrerpolicy="origin">Ben Weatherall</a> and <a href="https://twitter.com/jason_bakker" rel="nofollow noopener" referrerpolicy="origin">Jason Bakker</a> began a series of investigations into cryptocurrency through the <em>FUTUREVOX</em> simulation. They discovered that the <strong>Dogecoin by far outstripped all other currencies in future simulation realities</strong>, and decided to share this knowledge with the world. Thus, <em>FUTUREVOXIMAGINARIUMDOTEXEDOGELOVEREDITI­ON</em> was born. <strong>Experience the power of Dogecoin</strong> in <em>f</em>uture-simulated visual  soundscapes<em> </em>that exist beyond the imagination. What are you waiting for? <strong>Dogewnload the</strong><strong>latest!</strong> So much<a href="http://youtubedoubler.com/gszm" rel="nofollow noopener" referrerpolicy="origin"> </a><img src="https://i.imgur.com/FdDURGM.gif" loading="lazy"><strong>Avant garde doge inspired music</strong> by <a href="https://twitter.com/MartinKvale" rel="nofollow noopener" referrerpolicy="origin">Martin Kvale</a>! <a href="https://ostmark.bandcamp.com/album/futurevoximaginariumdogelovereditiondotexe" rel="nofollow noopener" referrerpolicy="origin">OST</a></p>
<p><span class="">dogenations (Jason's wallet):<span></span><span class=""> DUEYSsHdmEJVNStVXXSU15UTC3du4S18aN</span><span></span></span><span></span> <a href="https://twitter.com/hashtag/dogedamn?src=hash" rel="nofollow noopener" referrerpolicy="origin">#dogedamn</a>
</p>
<p>		<img src="https://i.imgur.com/8Lhrbas.gif" loading="lazy"><img src="https://i.imgur.com/8Lhrbas.gif" loading="lazy"><span></span><img src="https://i.imgur.com/8Lhrbas.gif" loading="lazy"><span></span><span></span><img src="https://i.imgur.com/8Lhrbas.gif" loading="lazy"><img src="https://i.imgur.com/8Lhrbas.gif" loading="lazy"><img src="https://i.imgur.com/8Lhrbas.gif" loading="lazy"><br><strong><br>FEEL WELCOME TO LEAVE A COMMENT</strong><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzEwNjAvODM2MDUwMy5qcGc=/original/KkkGlI.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzEwNjAvMTU5ODg2LnBuZw==/original/CeaeWl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzEwNjAvODM2MDU4MS5wbmc=/original/l2NTQc.png]]
<p>**This is a VR project designed to be played on the Oculus/ Meta Quest and has to be sideloaded onto the headset in order to be played ! **&nbsp;<br><br>*** Over 12,000 Downloads on the Oculus app Lab !<br></p>
<p>Get ready for a Galactic Bar Fight! <br><br>Galactic Bar Fight is a fast-paced arena combat game starting in Pegasus, an intergalactic watering hole in the distant future and then take a tour across the galaxy to various environments all over. <br><br>Players will be able to complete a variety of our 150+ challenges in both our pegasus hub where they can destroy training droids, practice shooting holograms, observe Hologram stage performers, and more. As well as the in-combat challenges players will be randomly served. <br><br>Within the bar arenas players will creatively dispatch enemies using blasters of all types. Featuring 11 unique weapons to Slash , smash , deflect, dissolve, and split your enemies and using Powerups to tip the edge in combat in their own favor. All feedback is welcome - come help shape the future of Galactic Bar Fight as we continue to expand the feature set with suggestions from the community!<br><br>The first release of Galactic Bar Fight comes with our first of 4 planned combat arenas ( Club Axilla) a neon -splashed club where some of the rowdiest denizens within the galaxy hang out.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/DS4BazKTJCs" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQxMDM1Ni84Mjg3OTM4LmpwZw==/original/Tdz7z2.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxMDM1Ni84Mjg3OTM2LmpwZw==/original/g3MXKQ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxMDM1Ni84Mjg3OTQzLmpwZw==/original/hsO8z9.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxMDM1Ni84Mjg3OTgxLmpwZw==/original/yxBX9z.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxMDM1Ni84Mjg3OTQwLmpwZw==/original/a3z1CQ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxMDM1Ni84Mjg3OTQyLmpwZw==/original/ENUctL.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxMDM1Ni84Mjg3OTU0LnBuZw==/original/haLUdR.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxMDM1Ni84Mjg3OTU4LmpwZw==/original/cY%2F%2BI%2F.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxMDM1Ni84Mjg3OTYxLmpwZw==/original/ZQokpJ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxMDM1Ni84Mjg3OTY0LmpwZw==/original/XrYT%2Fr.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxMDM1Ni84Mjg3OTY4LmpwZw==/original/7zNxb4.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxMDM1Ni84Mjg3OTcxLmpwZw==/original/6XhhXY.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxMDM1Ni84Mjg3OTczLmpwZw==/original/Gml8Kc.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxMDM1Ni84Mjk3MzY0LmpwZw==/original/j6UCmo.jpg]]
<h1 class="">
<img src="http://i.imgur.com/fD48GUD.gif" loading="lazy">bout
</h1><p>
            On your way back home through the solar system, you will encounter countless lifeless obstacles which you must dodge. Using your small arsenal of galactic gardening tools, you can plant life onto these obstacles to calm them and grant you an easier path back home. Dodge everything, and Plant Trees!
</p><h1 class="">
<img src="http://i.imgur.com/RK56NJQ.gif" loading="lazy">eapons
</h1><p>
        As your mission is to sprout as many trees throughout the galaxy as possible, your ship is equipped with the latest in galactic gardening technologies. You switch between:
</p><ul>
	<li>
	<h3>(very) Berry Blaster</h3>
	
               With this weapon you get the most seed output per second. As you upgrade the Berry Blaster, the more seeds you produce. At full upgrade you gain two gatling guns spraying seedlings at double the speed!
	
	</li>
	<li>
	<h3>Copter' Cannon</h3>
	
                The Copter' Cannon fires much slower than the Berry Blaster, but can plant on multiple targets and knocks affected targets away from the player. At full upgrade you gain to alternating cannons that fire the largest seed specimens in the galaxy at double speed!
         
	</li>
	<li>
	<h3>Protect &amp; Pollinate</h3>

                With this weapon activated, your ship is surrounded with a protective aura that will pollinate any targets that get inside the field. It also slows the movement of all targets that enter the field, protecting the ship and giving you time to maneuver through the field of obstacles. Each upgrade to this weapon increases the pollination rate, and aura radius.

	</li>
</ul><h1 class="">
<img src="http://i.imgur.com/eRfoK7q.gif" loading="lazy">eam
</h1><ul>
	<li>
	<h3>Art Cat - <a href="http://twitter.com/loilemx" rel="nofollow noopener" referrerpolicy="origin">Loi LeMix</a></h3>
	</li>
	<li>
	<h3>Music and Sound - <a href="http://twitter.com/TheLucidBard" rel="nofollow noopener" referrerpolicy="origin">Nathan Hutchens</a></h3>	
	</li>
	<li>
	<h3>Code Cat - <a href="http://twitter.com/barryrowe" rel="nofollow noopener" referrerpolicy="origin">Barry Rowe</a></h3>	
	</li>
</ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/KxnsYGsljwc" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzE0NzEvMzY4MDI1LmdpZg==/original/IEkA%2Fb.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzE0NzEvMzY4MTIxLmdpZg==/original/HYKXMv.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzE0NzEvMzY4MTA0LmdpZg==/original/Y%2BZQHP.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzE0NzEvMzY4MTMwLmdpZg==/original/7uFrZh.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzE0NzEvMzY4MTI4LmdpZg==/original/kL01bg.gif]]
<p class="text-center"><img src="https://img.itch.zone/aW1nLzgyOTIwMTUucG5n/original/%2BK8kZV.png" loading="lazy"><br></p>
<p>Gambit: Suits is a rules lite battle resolver. The rules, set across 2 playing cards (with printable two-sided designs, so you can print it out and fold it so it looks like a single playing card), support both 1 on 1 and group play.<br></p>
<p>Each Suit has a purpose: want to defend? Play a Spade. If your number is higher than someone playing, say, a Heart to melee attack - you win! No damage! If you lose? Take that amount of HP damage.</p>
<p>It really is that simple!</p>
<p>If you want something fast and enjoyable, but still tactical, give Suits a go.</p>
<p>If there's anything in there that's confusing or underexplained, please let me know, and I'll fit in something better!</p>
<p>There isn't currently a game to go with Suits, as it's a pure battle resolver, but we have two other Gambit editions, each of which have their own games. If you click through to my page, you'll be able to take a look.</p>
<p>We hope you pick up and enjoy Suits! We created it for a GameJam, and had a lot of fun, as we always do.</p>

[img width=500 [https://img.itch.zone/aW1nLzgyOTE4MTIucG5n/original/da6F5z.png]]
<p>Do you know when to hold em? Know when to fold em? Then don't walk away nor run from <em><strong>Gambler's Heart</strong></em>!</p>
<p><em></em><strong><em>Gambler's Heart</em></strong> is a mini, 7-page-long&nbsp;table top role playing game, perfect for groups of 4-5 players (including the Game Master)&nbsp;looking for something quick, easy, and fun.</p>
<p>Players will take on the role of Gamblers, card sharps who once played a game of cards against a magical being... and won. Now imbued with mystic power, you'll fight to prevent the clandestine organisation known as&nbsp;&nbsp;The CONTROL from destroying chance itself.</p>
<p><strong></strong><em><strong>Gambler's Heart</strong></em>'s basic mechanic is a miniaturised poker game, using dice rather than cards. A player casting a spell will square off against the GM, both betting their Fortune on whether their hand is stronger than the other's. If your dice fall short, you can call upon the magic Patrons of the Gamblers for aid - but be careful. If the Game Master figures out which Patron gave you your magic, you're in trouble. Better practice that poker face!</p>
<p>To play Gambler's Heart you only need:</p>
<ul><li>Five poker dice and one ordinary six-sided die, or six ordinary six-sided dice.</li><li>A pencil and paper to take notes.</li></ul>
<p><strong></strong><em><strong>Gambler's Heart</strong></em> was playtested by Alexis Friday, Daniel Clarke, Harry Robertson, Sam Stafford, and Shannon Kelly.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIwNzQxMy83MDQ1MDM0LnBuZw==/original/168QYk.png]]
<figure><img src="http://resegames.com/ganbare/images/TheGame.png" align="left" width="400px" style="color: inherit" loading="lazy"></figure>
<p><strong><br></strong></p>
<p><br></p>
<p><em>Ganbare! Super Strikers</em> is an innovative mix between <strong>Tactical RPG</strong> and <strong>Soccer</strong>. Win matches to level up and earn new equipment that will allow you to learn Special Abilities, boost your players’ stats or protect yourself against Altered Statuses, such as Sleep, Silence or Poison.<br></p>
<p>The game features a Story Mode where you assume the role of a small town soccer team in Japan on their way to victory. Perform well enough and you will be selected to join the Japan National Team where you will need to play alongside old rivals in order to conquer the world. There are loads of different characters each with their own strengths and Special Abilities.</p>
<p><br></p>
<p><img src="http://resegames.com/ganbare/images/Features.png" align="left" width="400px" loading="lazy"></p>
<p><strong><br></strong></p>
<p><br></p>
<ul><li>Level up your players, equip items, learn special abilities and much more.</li><li>35+ special abilities that can inflict up to 10 altered status effects.</li><li>Spectacular animations with anime style aesthetics.</li><li>Both 7-a-side and 11-a-side game modes.</li><li>Local Multiplayer for 2-8 players with Quick Match, League and Tournament modes.</li></ul>
<p><br></p>
<p><img src="http://resegames.com/ganbare/images/TheAuthor.png" align="left" width="400px" loading="lazy"></p>
<p><br></p>
<p><br></p>
<p><strong>rese </strong>is an independent solo developer based in Melbourne, Australia. He is determined to create innovative games with a Japanese 32-bit flavour.</p>
<p><em>Ganbare! Super Strikers</em> is his debut game and it is born from his love for Tactical RPGs and Japanese Sports Comics&nbsp;(Spokon) like Captain Tsubasa.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/eEg4uD5WSS4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTk4NjgxLzkyOTQ0MC5wbmc=/original/koY8H%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTk4NjgxLzkyOTQ0Mi5wbmc=/original/STN0Pq.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTk4NjgxLzkzNDkyOC5wbmc=/original/f2%2FZ%2FH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTk4NjgxLzkzNDkyOS5wbmc=/original/PdEIN0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTk4NjgxLzkyOTQ0OC5naWY=/original/iKO4Co.gif]]
<p>[NOTE!]&nbsp; If you are thinking of purchasing these assets, please wait a few weeks, as I am planning on adding them to a bundle to help victims from Ukraine,, and would much rather you purchase them via the bundle. I will update&nbsp; once I know more &lt;3<br><br><br>A Game Boy style 8*8px farm tileset, with a GB Studio compliant colour palette.&nbsp;<br></p>
<ul><li>Over 666 unique tiles&nbsp;</li><li>2 tilesets; the original, and V1.5</li><li>5 colours (1st colour transparent)</li><li>7&nbsp; complete buildings</li><li>Over 30 ground tiles</li><li>Indoor and Outdoor tiles</li><li>decoration objects</li><li>One base human character &amp; one unicorn</li><li>basic vegetable items, with growing states and harvestables</li><li>7 example maps (see screenshots)</li><li>2 example menus</li></ul>
<p>*please note, due to the extremely optimised nature of the tiles, I will not be sharing the full tile set as a sample. </p>
<p>License:&nbsp;</p>
<ul><li>Can be used and edited for commercial and academic game development purposes.</li><li>Can be used for table top game purposes.</li><li>It is recommended that If the assets are used&nbsp;for commercial use, an additional donation is made at&nbsp;<a href="https://ko-fi.com/gamedevmum" rel="nofollow noopener" referrerpolicy="origin">https://ko-fi.com/gamedevmum</a></li><li>Not to be sold-on as assets or in a bundle in edited or original form.</li><li>It is&nbsp;<strong>strictly forbidden</strong>&nbsp;to use&nbsp;<strong>any&nbsp;</strong>of the contents of this tile set in&nbsp;<strong>any</strong>&nbsp;relation to&nbsp; block-chain related technology, including but not limited to; NFTs, Crypto, or bitcoin.&nbsp;<br>
</li></ul>
<p><br></p>
<p>***PLEASE NOTE, due to the additional content, the price has been increased, however, this tileset is now a complete art&nbsp;starter set for creating your first game, prototype, or game jam entry***&nbsp;</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTkzNDgxLzU2NTIxMjUuZ2lm/original/GgrKqu.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvOTkzNDgxLzU2NTIxMzYuZ2lm/original/bZOkQR.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvOTkzNDgxLzU2NTIxMjYucG5n/original/DwpBPl.png]]
<p><em>Ghosts of war</em> is a Powered by the Apocalypse tabletop roleplaying game using Texas hold’ em mechanics (and only one move) in which veterans recall their participation in the war.</p>
<p>Yet, sometimes we have to live with the ghosts of people that have been part of our life, and our memory can be  fuzzy.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDg2MDU1LzI1MTA1ODMucG5n/original/F3%2BA7W.png]]
<p>Beyond the forest lies a jagged rocky coast, where a small seaside village has observed the rites of Greentide for generations. Each spring as the first green shoots emerge, the village elders weave an effigy from sapling branches and seaweed, crafting the likeness of a young woman. The sculpture filled with gifts before it is cast into the waves as an offering to the Queen of Tides, along with prayers for a bountiful catch for their nets and protection from storms. This ancient tradition harks back to an age when the ancestors would crown a young woman as the Tide Queen and offer her to the sea in sacrifice. Chieftains and princes would travel far to attend the ceremony, pledging gold, jewels and the finest crafts of their settlements. To this day, local fisherman never leave shore without paying her their respects - for the tide, they say, must have its due.</p>
<p>Strange as the customs of an isolated village may be, it has not escaped the notice of keen treasure hunters that centuries of offerings and shipwrecks have left a great hoard of untouched riches beneath the waves. You know of the island offshore, where the offerings are tipped overboard. You have heard rumors of a deep cove there, just visible at low tide. Superstitious villagers avoid it, but you know better than to believe their tales.</p>
<p>Will you emerge with treasures long kept hidden by the sea? Or will you become another offering and join the court of the Queen Below the Waves?</p>
<p><strong>Gift of the Sea</strong>, a&nbsp;tidal folk-horror incursion for Trophy Dark, was a runner up in the <a href="https://www.gauntlet-rpg.com/trophy-podcast/trophy-dark-incursion-contest-2019" rel="nofollow noopener" referrerpolicy="origin">Trophy Dark Incursion Contest</a> last year. Now you can seek the treasures of the sea yourself, and discover what truth there is&nbsp;to the fisherman's tales.</p>
<p><strong>Rules for <a href="https://trophyrpg.com/" rel="nofollow noopener" referrerpolicy="origin">Trophy Dark</a> are included.&nbsp;</strong><br></p>
<p>Art and layout for this incursion by <a href="https://byemberandash.itch.io/">Ember and Ash</a>.</p>
<p><strong>Watch a 2-Part&nbsp;actual play of Gift of the Sea&nbsp;by Jason Cordova:</strong><br><iframe width="560" height="315" src="https://www.youtube.com/embed/0bNLtn7apn4" frameborder="0" allowfullscreen=""></iframe><iframe width="560" height="315" src="https://www.youtube.com/embed/USmF69vfbNM" frameborder="0" allowfullscreen=""></iframe><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/0bNLtn7apn4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzk2Mjk3LzQ0NTgxNDUucG5n/original/YzsAQh.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk2Mjk3LzQ0NTgxMzIucG5n/original/%2BZj%2BJ8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk2Mjk3LzQ0NTgxMzYucG5n/original/cx%2FCkk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk2Mjk3LzQ0NTgxNTQucG5n/original/d3jVKM.png]]
<p class="text-center">After literally living under a rock for years, you emerge hungry and thirsty. You'll have to take on low-paying "gigs" in order to survive. <br></p>
<p><img src="https://img.itch.zone/aW1nLzY0MTI5NDkucG5n/original/8Gyjtv.png" loading="lazy"><img src="https://img.itch.zone/aW1nLzY0MTI5NTAucG5n/original/xaE3lV.png" loading="lazy"></p>
<p class="text-center">Cut grass, make deliveries, break rocks, and more to earn enough cash to keep from starving. <br></p>
<p class="text-center">Complete all gigs and learn the secrets of the wise man who has years of gig work experience. <br></p>
<p><img src="https://img.itch.zone/aW1nLzY0MTMwNjMucG5n/original/MSTE0L.png" loading="lazy"><br></p>
<p class="text-center">Gig Life is a short experience inspired by the early days of computer gaming complete with simplistic sprites, three classic colors (white, green, and amber), and CRT scanlines. <br>It's also the first game in the Small Style Series - a line of non-connected and often experimental budget titles for PC.<br><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTEwODU0Mi82NDEzMDM2LmdpZg==/original/vNXsgT.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEwODU0Mi82NDEzMDIxLmdpZg==/original/BePl81.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEwODU0Mi82NDEzMjcwLmdpZg==/original/%2B3kWES.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEwODU0Mi82NDEzNDk4LnBuZw==/original/ohLCjF.png]]
<figure><img src="https://img.itch.zone/aW1nLzcyMTUwOTAucG5n/original/L6XSL3.png" loading="lazy"></figure>
<p><img src="https://img.itch.zone/aW1nLzcyMTUxNjIucG5n/original/64LFwG.png" loading="lazy"><br></p>
<p><img src="https://img.itch.zone/aW1nLzcyMTUxNzkucG5n/original/I0zN6c.png" loading="lazy"><br></p>
<p><img src="https://img.itch.zone/aW1nLzcyODgwNDMucG5n/original/wl%2BEyU.png" loading="lazy"><br></p>
<p><img src="https://img.itch.zone/aW1nLzcyMTUxMjAucG5n/original/EYnu%2Fr.png" loading="lazy"><br></p>
<p class="text-center"><a href="https://freesound.org/people/BloodPixelHero/sounds/565085/" rel="nofollow noopener" referrerpolicy="origin">Music</a></p>
<p class="text-center"><a href="https://quaternius.itch.io/lowpoly-robot">Character</a></p>
<p class="text-center"><a href="https://freesound.org/people/InspectorJ/sounds/405561/" rel="nofollow noopener" referrerpolicy="origin">Wind</a></p>
<p class="text-center"><a href="https://freesound.org/people/FoolBoyMedia/sounds/323443/" rel="nofollow noopener" referrerpolicy="origin">Music</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIyNjMwOC83MjgxMDYyLnBuZw==/original/qJOg22.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIyNjMwOC83MjgxMjUxLnBuZw==/original/8jkydu.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIyNjMwOC83MjczMDE5LnBuZw==/original/u%2B6iS2.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIyNjMwOC83MjM3ODcxLnBuZw==/original/ZOdMfa.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIyNjMwOC83MjgxMDI1LnBuZw==/original/2uADMh.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIyNjMwOC83MjgxMDM0LnBuZw==/original/OJHS7Q.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIyNjMwOC83MjgxMzYzLnBuZw==/original/4b%2FHVG.png]]
<p>OUR HEROINE, GIMMICK, MUST NAVIGATE THE CHAOS DIMENSION FOR HER GRADUATE THESIS!</p>
<p>HELP GIMMICK COLLECT AS MUCH DATA AS POSSIBLE WITHOUT GETTING KICKED OUT OF THE CHAOS WORLD.</p>
<p>NAVIGATE AN EVER-CHANGING MAZE, AVOIDING ENEMIES, AND COLLECT POWERUPS TO UNLOCK AND UPGRADE GIMMICK'S SKILLS!</p>
<p>ONLY WITH ENOUGH DATA WILL GIMMICK PASS HER THESIS AND GRADUATE! WILL YOU HELP?</p>
<p>FEATURES INCLUDE:<br>- AN INCREDIBLE 64 COLORS<br>- 12 EQUIPMENTS TO CUSTOMIZE YOUR PLAY<br>- UNLOCKABLE COSMETICS<br>- DETAILED STAT TRACKING OF YOUR MAZE RUNS<br>- ORIGINAL MUSIC COMPOSED IN "BEEPBOX"<br>- COMPLETELY RANDOMLY GENERATED MAZE RUNNING<br>- SPECIAL UNLOCKABLE GUEST CHARACTERS</p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzU5ODcyNzIucG5n/original/CjhNZ%2B.png" loading="lazy"><br></p>
<p><img src="https://img.itch.zone/aW1nLzU5ODcyNzMucG5n/original/cVds6i.png" loading="lazy"><br></p>
<p>ALICE, CAT ASTRONAUT HERO, HAS MANY FRIENDS! BUT FEW KNOW SHE EVEN HAS FRIENDS AMONG THE GOOD SPACE MICE!
</p>
<p>ALWAYS WILLING TO LEND A HELPING HAND, ALICE JOINS GIMMICK ON HER JOURNEY THROUGH THE MYSTERIOUS CHAOS DIMENSION!
</p>
<p>UNLOCK ALICE BY OBTAINING ALL OF GIMMICK'S SKILLS, AT 256 COINS!</p>
<p>ALICE AND SPACE MOUSE 2 ARE © MINDWARE CO., LTD<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/WF-7AacMRd0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTQ2NjkwLzUzNzIwNjYucG5n/original/kzrXLm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTQ2NjkwLzUzNzIwNjcucG5n/original/YcJNXM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTQ2NjkwLzU5NjcwMjAucG5n/original/CuozYi.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTQ2NjkwLzU5NjcwMjIucG5n/original/ZMWu%2FP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTQ2NjkwLzU5NjcwMjMucG5n/original/OWVI7%2F.png]]
<p>Gladiabots is a robot combat strategy game in which you carefully construct the AI of your robot squad and send them into the battle arena. Improve, refine and repeat until you outsmart all your opponents and friends online.<br></p>
<figure><img src="https://steamcdn-a.akamaihd.net/steam/apps/871930/extras/ai+combat.gif?t=1557773967" loading="lazy"><br><span></span></figure>
<h2>Features</h2>
<ul><li>Create your own AI and watch your robots execute it in the arena</li><li>Fix it, improve it and repeat it until you outsmart all your opponents</li><li>Simple and powerful AI programming system offering millions of possible combinations (with no programming skills required)</li><li>Create and customize your robot crew</li><li>Single player campaign with hundreds of solo missions&nbsp;</li><li>Online multiplayer career mode featuring, ranked, unranked and private matches</li><li>3 distinctly different game modes: elimination, domination and collection</li><li>Create and compete in tournaments</li><li>Asynchronous multiplayer - battle friends even if they are not online</li><li>Sandbox mode in which you control both teams to test your tactics</li><li>Rank up and earn points to unlock new robot skins</li></ul>
<h2>Purchase Content</h2>
<p>Purchasing this game will give you access to a&nbsp;<strong>direct download</strong> link for the game executable (the "_rc" files are for the "Release Candidate" versions).</p>
<p>If you buy it for 19.99$ or more, you will have access to the <em>Light Optimization Pack</em>, containing:</p>
<ul><li><strong>3D printing models</strong> of the different bots (preview: <a href="https://sketchfab.com/gfx47/collections/gladiabots" rel="nofollow noopener" referrerpolicy="origin">https://sketchfab.com/gfx47/collections/gladiabots</a>)</li><li><strong>10+&nbsp;exclusive wallpapers</strong> (in 4K resolution)</li></ul>
<p>The full&nbsp;<em>Optimization pack</em>&nbsp;(with additional in-game credits)&nbsp;is only&nbsp;<a href="https://store.steampowered.com/app/914280/Gladiabots__Optimization_Pack/" rel="nofollow noopener" referrerpolicy="origin">available on Steam</a>.<br></p>
<p><a href="http://gladiabots.com/" rel="nofollow noopener" referrerpolicy="origin"></a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/bDm5s57hf6w" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzc5NjgvMjM3NzczNi5wbmc=/original/G3h2HR.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc5NjgvMjM3NzczMS5wbmc=/original/adreKm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc5NjgvMjM3NzczNS5wbmc=/original/6lhzmp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc5NjgvMjM3NzczMi5wbmc=/original/LQMe%2BV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc5NjgvMjM3NzczNy5wbmc=/original/G08KKL.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc5NjgvMjM3NzczMy5wbmc=/original/q6oKh5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc5NjgvMjM3NzczOC5wbmc=/original/DBxe1S.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc5NjgvMjM3NzczOS5wbmc=/original/rCCNMw.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc5NjgvMjM3NzczNC5wbmc=/original/c1MPgp.png]]
<p><img src="https://img.itch.zone/aW1nLzI3NTA5MDEucG5n/original/iHDbJM.png" loading="lazy"><br>&nbsp;<br>Ahoy, a-hey, o loddi-doddi day, fair traveller and welcome to Glittermitten Grove! Here you will find a land of enchantment, whimsy, and resource management. Sow the fields with magic seeds, pick berries from the plentiful boughs of our sugar fern trees, and collect sparkles from the resplendent rays of our sun-kissed thicket to help us prepare for the long winter ahead. Come join us in our faerieland, full of strange adventure!</p>
<p>Features:</p>
<ul><li>Sow the fields with special seeds </li><li>Pick berries for your winter needs
</li><li>Collect sparkles to light up the night
</li><li>Light fribblesham fireworks for happy delight</li></ul><p>If you need help navigating this mystical fairyland, try the <a href="https://twinbeard.itch.io/glittermitten-grove-guide">Glittermitten Grove Guide</a>!<br></p>
<p></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTIwNDQ0LzI3MDI0OTcuanBn/original/frItLq.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTIwNDQ0LzI3MDI0OTguanBn/original/zXi2OJ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTIwNDQ0LzI3MDI0OTkuanBn/original/ogODxP.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTIwNDQ0LzI3MDI1MDAuanBn/original/B5yTDA.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTIwNDQ0LzI3MDI1MDEuanBn/original/U%2BBWYZ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTIwNDQ0LzI3MDI1MDIuanBn/original/79%2FEAI.jpg]]
<p></p>
<h2>What is&nbsp;<em>Globetrotter's Guide to Greenery</em>?</h2>
<p>Have you ever found yourself in a situation where your mind just goes blank while looking for a description of the landscape? Did your players go for days through an almost-sterile jungle because you forgot how's that bloody plant called? Fret not,&nbsp;<em>Globetrotter's Guide to Greenery</em>&nbsp;got your back.&nbsp;
</p>
<p>Each issue&nbsp;introduces&nbsp;<strong>a new biome</strong>, its&nbsp;<strong>signature plants</strong>, and a handy&nbsp;<strong>list of descriptors for all of the senses</strong>&nbsp;- now your player characters can not only 'see' but also 'hear', 'smell', 'taste', and 'feel' the world around them. Devised as a&nbsp;<strong>quick reference during the game</strong>, each PDF covers one specific type of terrain.&nbsp;
</p>
<h4>Each of the&nbsp;ten plant cards includes:&nbsp;</h4>
<ul><li>a&nbsp;botanical illustration,&nbsp;
</li><li>a read-aloud description of the 'Perception test' variety,&nbsp;
</li><li>additional lore to share with characters who are knowledgeable about nature - or just wanting to check out the plants from up close,
</li><li>enough inspiration to send your mind racing and spin it all&nbsp;into a memorable&nbsp;experience for the party.
</li></ul>
<h4>But wait, there's more!</h4>
<p>We've added more material to make the Globetrotter's Guides even better for you!
</p>
<ul><li>a description of the biome written with a fully-immersive experience in mind - perfect to just hand to the players as an in-game guide!
</li><li>an analysis of the climate, the soil, and the anatomy of the biome, full of ideas for the game and worldbuilding prompts!
</li><li>an introduction to the animal life - all the most interesting animals you can encounter!
</li><li>a list of environmental threats and challenges!
</li><li>a collection of events, views, and encounters that will make your game better!
</li></ul>
<h4>What's growing on the grasslands?</h4>
<p>Mostly grasses, not gonna lie. But that's not the whole story, so buckle in for a ride and discover the intriguing herbs, shrubs, and trees of the grasslands, as well as the science behind those seemingly endless seas of green. From the savanna to prairies to steppes and velds,&nbsp;<em>Globetrotter's Guide to Grasslands</em>&nbsp;equips you and the player characters with all that they need to make this hike unforgettable.
</p>
<p>Take up the challenge and upgrade your world-building game with&nbsp;<em>Globetrotter's Guide to Greenery</em>. Your setting, your campaigns, and your players will all be happy you did!
</p>
<h4>Accessibility</h4>
<p>This PDF has been optimized for the screen-reader accessibility to the best of our abilities. It includes tags, set reading order, and alternative text for the images. It is also fully bookmarked. If there's anything else we can do to make the experience better, let us know.
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM3MjE4Mi83OTkwODg5LmpwZw==/original/uCo%2FKS.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3MjE4Mi83OTkwODkwLmpwZw==/original/hZ7B64.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3MjE4Mi83OTkwODkyLmpwZw==/original/47k1sT.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3MjE4Mi83OTkwODkzLmpwZw==/original/dtSjTW.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3MjE4Mi83OTkwODkxLmpwZw==/original/TK54KY.jpg]]
<p>a wandering game with two endings</p>
<p>this game contains discomforting images</p>

[img width=500 [https://img.itch.zone/aW1nLzczMjg0MTcuZ2lm/original/ZHWAUl.gif]]
<p>A print-and-play one page RPG about being goblins, trying to steal sausages from a human village.</p>

<p>Relaxing puzzle game where you climb mountains by playing golf. Conquer 100+ handcrafted puzzles using a card-based movement system.<br><br><strong>** 1st place in The Big Indie Pitch @ PGA 2018 **</strong></p>
<p></p>
<p><span></span>FEATURES:</p>
<ul><li>120+ levels and 10 worlds to complete,</li><li>Various block types to experiment with,<span></span>&nbsp;</li><li>Unique card-based movement system,&nbsp;</li><li>Minimalist visuals and a relaxing atmosphere,</li><li>Relaxing music,</li><li>15 languages supported: English, Polish,&nbsp;Japanese, French, Italian,&nbsp;Spanish, Portuguese, Dutch, Norwegian, Czech, Russian, Latin, Simplified Chinese, Traditional&nbsp;Chinese,&nbsp;Korean.</li></ul>
<p>Zero understanding of golf required!</p>
<p>Also out on Nintendo Switch!&nbsp;<a href="https://nintendo.com/games/detail/golf-peaks-switch" rel="nofollow noopener" referrerpolicy="origin">https://nintendo.com/games/detail/golf-peaks-switch</a><br><br>More info:</p>
<ul><li><a href="http://afterburn.games/golf" rel="nofollow noopener" referrerpolicy="origin">http://afterburn.games/golf</a>&nbsp;</li><li><a href="http://facebook.com/afterburngames" rel="nofollow noopener" referrerpolicy="origin">http://facebook.com/afterburngames</a></li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/Sxn4ArCnTQ0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzI4MzE3LzE2MjkwNjYucG5n/original/expyNL.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzI4MzE3LzE4NzQzOTEucG5n/original/jdqPF0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzI4MzE3LzE2MjkwNzAucG5n/original/eRq8UM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzI4MzE3LzE2MjkwNzEucG5n/original/r8oImG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzI4MzE3LzE2MjkwNzIucG5n/original/4HcHMJ.png]]
<p><strong>GoNNER </strong>is a tough as hell procedurally-generated 2D platformer with roguelike elements, following the largely misunderstood and altruistic Ikk on a journey to cheer up his only friend in this world - a giant landbound whale named Sally - by searching for just the right trinket in the deep and dark places nearby.</p>
<p><br></p>
<figure><img src="https://img.itch.zone/aW1nLzgzMjI2MDEuZ2lm/original/xRvzKX.gif" loading="lazy"><br><br><br></figure>
<p>You will die. A lot. This is by design, but it's not made to feel unfair. You'll eventually get the hang of GoNNER, so don't lose your head. But even if you do it's okay cause we have a lot of replacement heads you can use.</p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzgzMjI2MDUucG5n/original/iVf%2Fy3.png" loading="lazy"></p>
<p></p>
<p><strong>DAILY CHALLENGES!</strong> Only playable once a day. Levels are randomly generated but in this mode everybody plays the same world and use an identical loadout. Everything resets at midnight (Swedish time, UTC+1). Can you crush your leaderboard foes?</p>
<p><strong>PROCEDURALLY GENERATED!</strong> Every time you play the game the levels will be different and present unique challenges and opportunities.</p>
<p><strong>UNLOCKS!</strong> You'll be able to choose from a variety of passive and active abilities at the beginning of each run so be sure to experiment with all of them and find the play style that best suits you</p>
<p><strong>SECRETS! </strong>Secret areas exist in the world of GoNNER, and these areas will get you different items that you can then always use from the beginning of each run. We're not going to tell you how you get to these areas or what the criteria is for even finding them because secrets, duh.</p>
<p><strong>LEADERBOARDS!</strong> Kill creatures, get combos, score points, and brag to your friends how much better you are than them.</p>
<p><strong>MUSIC! </strong>It's really freaking good.</p>
<p><strong>Good luck.</strong></p>
<p><br><img src="https://img.itch.zone/aW1nLzgzMjI2MTQucG5n/original/jVMc7C.png" loading="lazy"><br></p>
<p></p>
<p>Game by <a href="https://twitter.com/dittomat" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Art in Heart</a>.<br></p>
<p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/6vFYz4fRdIs" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzU1NTMvODMyMjU3Ni5qcGc=/original/26Z1VQ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU1NTMvODMyMjU3Ny5qcGc=/original/u6Qrbq.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU1NTMvODMyMjU4Mi5qcGc=/original/Z2y%2FBy.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU1NTMvODMyMjU4MS5qcGc=/original/KNxN1a.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU1NTMvODMyMjU4MC5qcGc=/original/gdthpp.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU1NTMvODMyMjU3OS5qcGc=/original/Qt7Iae.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU1NTMvODMyMjU3OC5qcGc=/original/EU6Pzl.jpg]]
<p>Ash is an Argentinian freelancer who lives with Eve, her lovely fiancé. She would say that it’s a pretty normal morning if it wasn’t because she can’t seem to shake off this feeling that something is wrong. 
  </p>
<p>"Why do I feel like I'm forgetting something?" - Ash.&nbsp;</p>
<p><br></p>
<p><br><em>Made by Jess Andz.&nbsp;</em></p>
<p><strong>Plugins</strong></p>
<p><a href="http://sumrndm.site/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">SumRndmDde</a></p>
<p><strong>Sound Design</strong></p>
<p><em>"Shower, A.wav" by InspectorJ (<a href="http://www.jshaw.co.uk/" rel="nofollow noopener" referrerpolicy="origin">www.jshaw.co.uk</a>) of&nbsp;<a href="http://freesound.org/" rel="nofollow noopener" referrerpolicy="origin">Freesound.org</a></em></p>
<p><span style="color: inherit; font-size: inherit"></span></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAwNjEyMi81NzUxNzM5LnBuZw==/original/4C2L9q.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwNjEyMi81NzUxNzQwLnBuZw==/original/VO1Guv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwNjEyMi81NzUxNzQxLnBuZw==/original/AKFSi%2F.png]]
<p>Following in the footsteps of critically acclaimed Lydia, Good Mourning doesn’t shy away from serious themes, but at the same time it’s also a warm-hearted take on the little things that make everyday life worth living.<br></p>
<p>'The structure of Good Mourning is all about breaking the form. Traditional linear narrative is a poor fit for a digital game, for games revolve around choices and interactivity. And as software products games offer a possibility for randomly generated content. This is impossible for other mediums, such as literature and film. We see these factors as possibilities rather than restrictions, and we want to explore how deep this rabbit hole actually is.</p>
<ul><li>Good Mourning combines visual novels into a collection of mini games.</li><li>Emphasis is on a story and players are encouraged to experience it through several playthroughs.</li><li>The story adapts to the choices players make, and portions of it are randomly selected to ensure replay value.</li><li>Replayability is also a key element in the story, as well as the ability to choose and how other people perceive you. Choosing differently has an impact on the story and how it is interpreted.</li><li>The interpretation of the story is where the emergent narrative comes to play: the player sees only segments of the storyline, and the bigger picture has to be formed through imagination.<br><br><strong>Warning: The story depicts scenes of abuse, intoxication &amp; strong language.</strong></li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/UBzpcGgDDcI" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA0NTMwMy81OTczMzIxLmpwZw==/original/UpAx8x.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0NTMwMy81OTczMzIwLmpwZw==/original/MlO655.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0NTMwMy81OTczMzIyLmpwZw==/original/YXiWzs.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0NTMwMy81OTczMzE5LmpwZw==/original/SusAWp.jpg]]
<p>Chop, sear, and eat your way through a collection of organic minigames in GourMelee! Play with two to eight players in this local multiplayer party game where you share your controller with a friend to dominate the kitchen. Every minigame is made with cooperation in mind. Each player holds half of the controller working together with their other half to become the best chef in the kitchen! GourMelee is the perfect snack at a party, bust it out with the chips and dip!<br></p>
<p><strong>GourMelee requires at least two controllers to play and is local multiplayer only</strong></p><p></p><p>Game by: Anthony Tesija<br>Music by: Visager, Nik Tesija</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/zYyuw5ZdBGg" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjA4MTU2LzIxMjUzNzgucG5n/original/YgTYeO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjA4MTU2LzIxMjUzODEucG5n/original/GI85XY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjA4MTU2LzIxMjUzODIucG5n/original/rIRaTQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjA4MTU2LzIxMjUzODMucG5n/original/W5kNID.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjA4MTU2LzIxMjUzOTAucG5n/original/Vx8NLE.png]]
<p><strong>Grackle Teeth</strong>&nbsp;is a solo journaling game informed by the&nbsp;<a href="https://sealedlibrary.itch.io/wretched-alone-srd">Wretched &amp;&nbsp;Alone</a>&nbsp;SRD. All you need to play is a deck of cards, a handful of regular dice, and some stuff to write with and on—the crummier the better.</p><p class="text-center">~~~----=====----~~~</p><p>You play as the last survivor of a human extinction event, an apocalypse on a massive scale. Buildings still stand, the sun still rises, and vegetation has reclaimed the works of humanity. Few animals roam the empty streets, and those that do are feral, ravenous, and relentless.<span class="" style="color: inherit; font-size: inherit">&nbsp;</span><br></p>
<p>This is Austin, Texas, USA. Date unknown—the only time that matters is that between now and the next time you must go out to scavenge for supplies.
</p>
<p>You have survived this long, but not for much longer. Food is scarce and terrible. Springs and rivers are clogged and poisoned. And the birds hunger for your flesh.
</p>
<p>But still, you persist. You endure, because that’s what humans do.
</p>
<p class="text-center">~~~----=====----~~~</p><p><strong>Grackle Teeth</strong> is a 6" x 6" 30-page zine designed for screen viewing. Watch this space for print copies coming soon!<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM4Mjg0OC84MjkzMjUwLnBuZw==/original/%2BrYCnn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM4Mjg0OC84MjUwMTc2LnBuZw==/original/2%2FDdgO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM4Mjg0OC84MjUwMTc3LnBuZw==/original/ghRDFa.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM4Mjg0OC84MjUwMTc4LnBuZw==/original/VEPxg8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM4Mjg0OC84MjUwMTc5LnBuZw==/original/ldhR%2F%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM4Mjg0OC84MjUwMTg3LnBuZw==/original/MYo%2Bdw.png]]
<h3 class="text-center">Swing, climb, grab, and throw in this action platformer where you can <strong>grapple anywhere</strong>!</h3>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzE5MTQ5MTguZ2lm/original/%2FoRJOf.gif" loading="lazy"><br></p>
<p>Grappling's the name of the game! The rules are simple:</p>
<ul><li>Grapple onto any surface and swing!</li><li>Grab enemies and objects and throw!</li></ul>
<p>...but the possibilities are endless! Hijack a hoverbike, shoot some billiards, play some pinball, solve a pipe puzzle,&nbsp;take a ride on a flying flower - every new course brings new challenges!</p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzE5MTQ5MjAuZ2lm/original/Co0KUz.gif" loading="lazy"></p>
<p>Featuring a story told across 30 courses, there's hours of platforming fun in the base game alone - but there's even more to do! <strong>Score Attack</strong> for A and S ranks, challenge the post-game&nbsp;<strong>Boss Rush</strong>, collect&nbsp;<strong>Cassette Tapes</strong> hidden throughout the game, and refine your swinging technique in&nbsp;<strong>Time Attack</strong> - the fun, unique movement makes Grapple Force Rena a <a href="https://www.speedrun.com/gfr" target="_blank" rel="nofollow noopener" referrerpolicy="origin">great speed game</a>!</p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzE5MTQ5MjEuZ2lm/original/NYSSDr.gif" loading="lazy"></p>
<h2 class="text-center">Swing anywhere!&nbsp;Throw everything!</h2>
<p class="text-center"><a href="https://discord.gg/2pcU726" target="_blank" rel="nofollow noopener" referrerpolicy="origin">GalaxyTrail Discord server</a> - <a href="http://www.grappleforce.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Official website</a> - <a href="https://github.com/GalaxyTrail/GFR_bugs/issues" target="_blank" rel="nofollow noopener" referrerpolicy="origin">GitHub bug tracker</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzgxODM1LzE5MTQ4ODQucG5n/original/WGprvT.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzgxODM1LzE5MTQ4ODUucG5n/original/5nrNZY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzgxODM1LzE5MTQ4ODYucG5n/original/G7xnkR.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzgxODM1LzE5MTQ4ODMucG5n/original/am2fYX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzgxODM1LzE5MTQ4ODcucG5n/original/CQP3aX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzgxODM1LzE5MTQ4ODgucG5n/original/Asg9lr.png]]
<p>My entry for the Bolt Jam #6. I didn't write a single line of C# code for this.</p>
<h3>MISSION</h3>
<p>You are the last&nbsp;<strong><em>Gravity Pilot!</em></strong>&nbsp;Help the Earth to collect important research by <em>moving on</em> from planet to planet while keeping watch on&nbsp;your fuel.</p>
<h3>Controls</h3>
<ul><li>W - Accelerate</li><li>D&nbsp; - Turn right</li><li>A - Turn left</li><li>Shift - Speed up time</li><li>Space - Self-explode</li></ul>
<h3>Assets used</h3>
<ul><li>Bolt</li><li>Fx Explosion Pack</li><li>Universal Sound FX</li><li>NASA public domain textures&nbsp;(not an asset though)</li></ul>
<h3>Everything else was done by me during the Jam&nbsp;including:</h3>
<ul><li>Game Design</li><li>Music</li><li>Custom Shaders (Planets, Space</li><li>Bolt graphs (incl. custom physics engine for planet and rocket physics)</li><li>Planet look (NASA textures -&gt; Blender custom shader -&gt; Render -&gt; LWRP Shader Graph)</li><li>Rocket texture</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/6JdA4TzC9s0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDY2MzgxLzIzODU3NzQuanBn/original/%2BTKwRa.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDY2MzgxLzIzODU3NzUuanBn/original/J22u28.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDY2MzgxLzIzODU4MDAuanBn/original/EsVpen.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDY2MzgxLzIzODU4MDIuanBn/original/dnfHsU.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDY2MzgxLzIzODU4MDYuanBn/original/yEJTKj.jpg]]
<p>Glass slippers aren’t for everyone.<br></p>
<p>Ash Zermeno is&nbsp;a millennial horticulturist with a green thumb and a big&nbsp;dilemma: how can he attend his roommates' brother's wedding when he's realized he's a trans guy since ordering his dress? With a bit of help from a fairy plant-parent, of course.&nbsp;<br><br>10k Words&nbsp;<br>Originally published by NineStar Press in 2018</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MTY1NC82Mjg2ODU1LnBuZw==/original/8T7%2Fa3.png]]
<p>GrimBlade is a light and fast-paced roleplaying game of adventures and stories set within an implied Grim fantasy world. Contained in these pages are the bones of a roleplaying game. The reasoning for this is that it is&nbsp;<strong>YOUR</strong>&nbsp;game. It is expected that readers and Game Masters will add, remove, create and hack the game that best fits any gaming group.<br><br>GrimBlade is a small zine with only 12 interior pages.&nbsp;</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTczNDAzLzU1Mjc0NTMucG5n/original/rz2338.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTczNDAzLzU1Mjc0NTIucG5n/original/lYVbrE.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTczNDAzLzU1Mjc0NTQucG5n/original/sMqcfk.png]]
<p>Grime House is a top down survival horror game in the style of the truly oldschool era of gaming.</p>
<p>Help Thomas escape from the horrors of Grime House as you explore, solve puzzles and defend yourself from the grotesque.</p>
<p>This game features a sanity system that affects gameplay at various levels of stress that Thomas is in.<br><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/IE6Uo3Vo5ks" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI1NTA4NS83MzEzNDY0LnBuZw==/original/VA11%2BK.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1NTA4NS83MzEzNDY1LnBuZw==/original/nOOLnZ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1NTA4NS83MzEzNDY2LnBuZw==/original/XUhQDc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1NTA4NS83MzEzNDY3LnBuZw==/original/YgO8JT.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1NTA4NS83MzEzNDY4LnBuZw==/original/rKSSia.png]]
<p><img src="https://img.itch.zone/aW1nLzE5NzczOTQucG5n/original/Hd%2F6m%2F.png" loading="lazy"><br></p>
<p>Maintaining a healthy Work-Life balance is pretty tricky on a good day but it’s damn near impossible when your boss threatens foreclosure on your mortal existence. As the new bartender at DEAD-END, you’ll make new friends, mix weird drinks, all while navigating Life, Death and everything in between.</p>
<p>Learn more about the residents of New Eden City and yourself in this Noir, Urban, Fantasy Visual Novel.<br><br></p>
<p><img src="https://img.itch.zone/aW1nLzE5NzczOTUucG5n/original/xME2LF.png" loading="lazy"></p>
<p><strong>Current Features:</strong><br></p>
<ul><li>Includes Episode 1, 2 &amp; 3</li><li>A wide cast of patrons looking for a shoulder to cry on!</li><li>A Jazzy, Noir, Manga-inspired Aesthetic</li><li>Choices that matter!&nbsp;</li></ul>
<figure><img src="https://img.itch.zone/aW1nLzE5NzczOTYucG5n/original/EcaN78.png" style="color: inherit; font-size: inherit" loading="lazy"><br></figure>
<p><em>“The first and only chapter on offer so far, paints a nice introduction to this world, laying the groundwork for a promising game to come.”</em><br><a href="http://www.hyperlightup.com/grimm-tonic-what-its-like-bar-tending-at-dead-end/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Hyper Light Up</a><br><em><br>“... Grimm &amp; Tonic may just be quirky enough to escape a niche market. I can only hope that the effort doesn't sully with time.”</em><br><a href="https://www.keengamer.com/article/20417_grimm-tonic-preview" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Keen Gamer</a><br></p>
<p class="text-center">-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;- -&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;- -&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;- -&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;- -&nbsp;-&nbsp;-&nbsp;- - - -<br></p>
<h3 class="text-center">TRY THE <a href="https://www.newgrounds.com/portal/view/748428" target="_blank" rel="nofollow noopener" referrerpolicy="origin">DEMO</a>!</h3>
<p></p>
<h3 class="text-center">FOLLOW ON&nbsp;&nbsp;</h3>
<p class="text-center"><strong><a href="http://bit.ly/2UnlnzE" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Steam Page</a>&nbsp; &nbsp; &nbsp;<a href="https://twitter.com/spriteWrench" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter</a>&nbsp;&nbsp;&nbsp; &nbsp;<a href="http://spritewrench.com/Grimm-Tonic/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Official Site</a></strong><strong></strong></p>
<h3 class="text-center">PRESSKIT</h3>
<p class="text-center"><strong></strong><strong><a href="http://bit.ly/2I5CZcD" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Visit The Presskit</a></strong></p>
<p class="text-center">-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;- -&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;- -&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;- -&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;- -&nbsp;-&nbsp;-&nbsp;- - - -</p>
<p class="text-center"><em>Want to share your thoughts? Feel free to tweet the game with the hashtag #GrimmTonic!<br></em></p>
<p class="text-center"><em><strong>Want to contribute to the development of the game? </strong><br>Submit your feedback to <strong>ghenry@spritewrench.com</strong> with the <u>subject line:&nbsp;"GnT Feedback"</u><br></em></p>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/xh6_MG1toMA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzEyMzQ1LzE1MzUwMzUucG5n/original/Ox1owZ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzEyMzQ1LzE1MzUwMzcucG5n/original/2ntRnn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzEyMzQ1LzE1MzUwMzgucG5n/original/HPOboq.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzEyMzQ1LzE1MzUwMzYucG5n/original/uwaah5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzEyMzQ1LzE1MzUwNDAucG5n/original/340jqn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzEyMzQ1LzE1MzUwMzkucG5n/original/mF%2Bnqt.png]]
<p><strong>~Huge Update Out Now</strong>~<br></p>
<p>Playing as Bruce, the world's most talented indoor gardener, you will travel to different eras and worlds in order to water, light, and tend to the most tedious plants with the high-tech magic of a watering can, a reflective mirror, and an electric fan, to name just a few tools at your disposal.<br><br>Using straightforward controls taught in an intuitive way, experience the simple but challenging systems in this top-down 2d plant simulator, in all of it's pixel-art glory [Zero pixels were rotated in the making of this game].<br><br>In the new Ultimate Edition, every aspect of the Grow Big (or Go Home) has been expanded on and improved upon, including visuals, audio, and gameplay. There is now original music themed to each and every location and the brand-new hard mode, which doubles the length of the game, can be attempted for those seeking a challenge.<br><br>Drop your jaw at the paradox between such cheerful tunes and such mind-flipping gameplay as you play through now 30+ imaginative levels; Can you reach the newly-expanded procedural and replayable level set in Hell? Can you unlock the 3 themed outfits that Bruce desires? Can you complete hard mode and master the art of gardening? The answer to each of these questions lies in the “Buy Now” button above.<strong></strong></p>
<p>===</p>
<p>Update v2.0 (Ultimate Edition) released - more details here: <a href="https://www.quarantinc.com/post/grow-big-or-go-home-ultimate-edition-v2-0-out-now" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Quarant Inc Ultimate Edition Update Blogpost</a></p>
<p>Update v1.01 released - more details here:&nbsp;<a href="https://www.quarantinc.com/post/post-launch-update-v1-01" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Quarant Inc v1.01 Update Blogpost</a><span></span></p>
<p>===</p>
<p>Facebook: <a href="https://www.facebook.com/QuarantInc.Coop" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Quarant Inc</a></p>
<p>Twitter: <a href="https://twitter.com/QuarantInc" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@QuarantInc</a></p>
<p>Instagram: <a href="https://www.instagram.com/quarant_inc/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Quarant_Inc</a>&nbsp;</p>
<p>Tiktok: <a href="https://www.tiktok.com/@quarant_inc?" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Quarant_inc</a></p>
<p>Website: <a href="https://www.quarantinc.com" style="font-size: inherit" target="_blank" rel="nofollow noopener" referrerpolicy="origin">QuarantInc.com</a></p>
<p>Reddit: <a href="https://www.reddit.com/r/QuarantInc/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">r/QuarantInc</a></p>
<p>===</p>
<p>Ultimate Edition trailer:</p>
<div class=""><iframe style="width: 500px; height: 281px" src="https://www.youtube.com/embed/osAixuhb2gs" frameborder="0" allowfullscreen=""></iframe></div>
<p></p>
<p>Release trailer:</p>
<div class=""><iframe style="width: 500px; height: 281px" src="//www.youtube.com/embed/C__dThDTFPY" frameborder="0" allowfullscreen=""></iframe></div>
<p></p>
<p>Teaser:</p>
<div class=""><iframe style="width: 500px; height: 281px" src="//www.youtube.com/embed/NPc1U7I10pY" frameborder="0" allowfullscreen=""></iframe></div>
<p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/osAixuhb2gs" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODMyNjI4LzQ4MjQ3NjQucG5n/original/2HrM%2BM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODMyNjI4LzQ4MjQ3NjUucG5n/original/7k3Y0M.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODMyNjI4LzQ4MjQ3NjcucG5n/original/x6Cio7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODMyNjI4LzQ4MjQ3NzAucG5n/original/2YYlhC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODMyNjI4LzQ4MjQ3NzEucG5n/original/ecbcbo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODMyNjI4LzQ4MjQ3NjkucG5n/original/d5GdjQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODMyNjI4LzQ4MjQ3NjYucG5n/original/FhlAXb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODMyNjI4LzQ4MjQ3NjgucG5n/original/2PO7tw.png]]
<p class="text-center"><a href="https://apps.apple.com/us/app/id1517958901" rel="nofollow noopener" referrerpolicy="origin">Get the game for iOS here!</a></p>
<p class="text-center"><a href="https://play.google.com/store/apps/details?id=com.blabberf.gunroundsandroid&amp;hl=en" rel="nofollow noopener" referrerpolicy="origin">Get the game for Android here!</a></p>
<p class="text-center"><br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzMyMjcyNzEuZ2lm/original/onAlE%2B.gif" loading="lazy"><img src="https://img.itch.zone/aW1nLzMyMjcyNzMuZ2lm/original/dai3QH.gif" loading="lazy"><br></p>
<p>Gun Rounds is a game about&nbsp;a small, squishy person battling their way through swarms of enemies. A turn-based shooter with roguelite elements, Gun Rounds will challenge your tactics, sharpshooting skills, and reflexes!</p>
<p class="text-center">Features:</p>
<ul><li>Battle your way through 4 different worlds, each populated with distinct and dangerous enemies!</li><li>Collect dozens of unique weapons ranging from a simple pistol, to a beam of sunlight or a guillotine</li><li>Collect shiny treasures!</li><li>Visit the shop and buy upgrades and items with your hard-earned money</li><li>Fight the shopkeep if you're feeling feisty</li><li>Unlock new palettes!</li><li>A mysterious final boss... can you reach it?</li></ul>
<p><br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzMyMjc2NDYuZ2lm/original/6lbroP.gif" loading="lazy"><img src="https://img.itch.zone/aW1nLzMyMjc2NDguZ2lm/original/jiqRva.gif" loading="lazy"></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDQ4NjE1LzMzNDYwNjIucG5n/original/cOzrhv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQ4NjE1LzMzNDYwNjcucG5n/original/wuo3sF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQ4NjE1LzMzNDYwNjkucG5n/original/u96lgH.png]]
<h1>Puzzle meets Tower Defense!</h1>
<p>Load your guns! Rain death from above! Protect your valuable orphans! Defeat giant, improbable bosses! Gunhouse is part puzzle, part active tower defense, as you make big combos to launch a hail of bullets and special attacks at the alien invaders who would like nothing better than to consume your delicious orphan friends.</p>
<p>With infinite levels (you can play this <strong>for ever</strong>), upgradeable weapons, hardcore mode, a unique visual style from artist <a href="http://buttermonster.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Juan Ramirez</a>, a "weird fiction" story by Brandon Sheffield (Street Fighter 30th), code by Jim Stormdancer (<a href="http://twinbeard.com/frog-fractions" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Frog Fractions</a>), and music by <a href="http://disasterpeace.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Disasterpeace</a> (Hyper Light Drifter), Gunhouse from Necrosoft Games will entertain the heck right out of you, maybe!<br></p>
<ul><li>Tower Defense!</li><li>Weapon upgrades!</li><li>Infinite levels!</li><li>Strange narrative!</li><li>Weird bosses!</li></ul>
<p><iframe style="border: 0; width: 100%; height: 120px" src="https://bandcamp.com/EmbeddedPlayer/album=3625464362/size=large/bgcol=333333/linkcol=ffffff/tracklist=false/artwork=small/transparent=true/">&lt;a href=&quot;&lt;a href=&quot;https://music.disasterpeace.com/album/gunhouse-ost&quot;&gt;Gunhouse&quot; class=&quot;redactor-linkify-object&quot;&gt;https://music.disasterpeace.com/album/gunhouse-ost&quot;&gt;Gunhouse&lt;/a&gt; OST by Disasterpea&lt;span id=&quot;selection-marker-1&quot; class=&quot;redactor-selection-marker&quot;&gt;&lt;/span&gt;ce&lt;/a&gt;</iframe></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/BTs3tEa5MpE" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTg0NDU2Lzg2MzAwMS5wbmc=/original/Lazdsf.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg0NDU2Lzg2Mjk5OS5wbmc=/original/8nwzaO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg0NDU2Lzg2MzAwNC5wbmc=/original/R%2Fwksr.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg0NDU2Lzg2MzAwNS5wbmc=/original/0LgtIx.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg0NDU2Lzg2MzAwMi5wbmc=/original/xAtBbu.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg0NDU2Lzg2Mjk5OC5wbmc=/original/R%2BrHcH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg0NDU2Lzg2MzAwMy5wbmc=/original/%2BD20N5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg0NDU2Lzg2MzAwMC5wbmc=/original/9CbAje.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg0NDU2LzI4OTU5MjIucG5n/original/%2BY9Tr%2F.png]]
<p><em>Guppy is a 2D watercolour fish simulation.</em></p>
<p>Swim like a fish! Move your tail left and right to propel yourself through the water, hide in the shade of lilies and venture carefully into the open in search of food. Try not to get eaten.</p>
<p><br></p>
<p><img src="http://ninjadodo.net/guppy/img/gupanim400.gif" loading="lazy"></p>
<figure><a href="http://nowplaythis.net/2016-friday/" rel="nofollow noopener" referrerpolicy="origin"><img src="http://ninjadodo.net/guppy/img/guppy_nowplaythis_official.png" alt="Now Play This 2016" title="Now Play This 2016" loading="lazy"></a> <a href="http://nowplaythis.net/2016-friday/" rel="nofollow noopener" referrerpolicy="origin"></a> <a href="http://awkwardarcade.co.uk/games" rel="nofollow noopener" referrerpolicy="origin"><img src="http://ninjadodo.net/guppy/img/guppy_awkward_showcase.png" alt="Awkward Arcade" title="Awkward Arcade" loading="lazy"></a>
</figure>
<p><br></p>
<p><strong>CONTROLS</strong>:</p>
<p>Alternate <strong>LEFT</strong> and <strong>RIGHT ARROW</strong> (player 1) or <strong>A</strong> and <strong>D</strong> (player 2)</p>
<p><strong>NOTE: </strong>Also supports <strong>GAMEPAD</strong> and <strong>TOUCH</strong>&nbsp; (mobile)</p>
<p>Co-op only supported on desktop (Win/Mac/Linux), not mobile.</p>
<p><em><strong>TIP: </strong>If you prefer swimming around in peace you can also <strong>remove predators</strong> in the options (ESC &gt; Main Menu &gt; Options), though this disables scoring.</em><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/eDpMZiYe840" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzk2LzM5NDgucG5n/original/n8ZACW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk2LzM5NDYucG5n/original/KMMzMf.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk2LzE4NDQxNi5wbmc=/original/JsYDM7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk2LzE4NDQxNy5wbmc=/original/3qMhXb.png]]
<p>Gutwhale is a finite roguelite about managing the space between you and your ammo, while fighting your way through a digestive system!<em></em><br></p>
<p>Descend down into the guts, try to keep your ammo close, unlock weird hats and get crushed by a van!<br>While Gutwhales levels are randomly generated and can be played forever, the game has a definite ending that you can reach in 1 - 7 hours, depending on your experience with similar games!<br></p>
<ul><li> Smooth Gameplay
</li><li> 3 Areas with unique enemies
</li><li> Gamechanging Hats to unlock
</li><li> Full Controller Support
</li><li> Beating the game is only the beginning of the end</li></ul>
<p>In the beginning of March I had to stop going to work because of the Corona Virus and started the development of Gutwhale.<br>Since then two amazing developers have joined the project and we will release Gutwhale in the beginning of April!<br><br>You can find more info on the game here:<br><a href="http://stuffedwomb.at/gutwhale" rel="nofollow noopener" referrerpolicy="origin">http://stuffedwomb.at/gutwhale</a></p>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/YjufZWGwUo8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjA0MjM1LzMyMDQ5MDMucG5n/original/Lf69bX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjA0MjM1LzMyMDQ5MDEucG5n/original/c7UX7U.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjA0MjM1LzMyMDQ5MDIucG5n/original/CYJM7b.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjA0MjM1LzMyMDQ5MDQucG5n/original/FA6ogY.png]]
<p>Hack FPS - Anniversary Edition is an extended version of Hack FPS for the game's first anniversary. For information on Hack FPS, visit&nbsp;<a href="https://r3s.itch.io/hack-fps" target="_blank">this page</a>.</p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzcxNTg4MDMucG5n/original/6WaaPu.png" loading="lazy"></p>
<ul><li>10 miscellaneous levels that deepen lore and explore interesting concepts</li><li>A Jukebox to play both modern and classic music in-game</li><li>Character bios</li><li>Cheats that enable game-breaking abilities</li><li>An extra art folder</li></ul>
<p>If you enjoyed Hack FPS and want to support the developer, considering purchasing this edition of the game. If you have any questions or comments, please post in the <a href="https://r3s.itch.io/hack-fps/community" target="_blank">Hack FPS Community</a>.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIyNzY4Mi83MjA2MzI3LnBuZw==/original/dcw4cT.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIyNzY4Mi83MjA2MzI2LnBuZw==/original/fOvsYt.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIyNzY4Mi83MjA2MzI4LnBuZw==/original/K2upU%2B.png]]
<p><strong>What is Hack Grid?</strong><br>Hack Grid is a hacking-themed puzzle game and love letter to the retro charm of DOS gaming, both in visuals and audio! Dive back into the 80's and become a hacker!<br><br><strong>How to play</strong><br>Each piece is unique, and has its own set of rules; some move, some change color, some absorb other pieces, and others can become obstacles and get in your way! It's up to you to solve each grid's puzzle by moving the pieces until there's only one left on the board.<br><br><strong>Old-school audio!</strong><br>Hack Grid emulates the iconic Sound Blaster 16 audio that all DOS gamers know and love.<br><br><strong>Features</strong><br>- 90 levels with increasing difficulty<br>- Speedrun mode with built-in timer<br>- In-game jukebox. Choose which songs from the retro soundtrack you want to hear.<br>- Colorblind support<br>- Mouse only controls, with re-bindable hotkeys<br>- Not a fan of the CRT-look? Turn it off!<br>- 8 languages available (Czech, Dutch, English, Finnish, German, Hindi, Russian and Spanish)</p>
<p><em>Can you become a master hacker? It's time to find out! Just remember - only one piece must remain!</em></p>
<p><strong>Maste Levels DLC<br></strong>Want more challenging levels? Test your wits in Hack Grid's <a href="https://daisy-games.itch.io/hack-grid-master-levels" target="_blank">Master Levels</a>!&nbsp;</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/W-K_hvKMrLQ" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODY1MTY1LzUxNTQ5NTkuZ2lm/original/rH9QK4.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvODY1MTY1LzUxNTQ5NjkuZ2lm/original/g%2FhgL6.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvODY1MTY1LzQ5NDA3MDAuZ2lm/original/7ExsVj.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvODY1MTY1LzQ5NDA3MDEuZ2lm/original/A1cSki.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvODY1MTY1LzQ5NDA3MDMuZ2lm/original/5eS2oN.gif]]
<p>Updated Nov 21st, 2019!&nbsp;</p>
<p>A game for 3 players set in Romania in the 1400s~1500s where you play as vagabond friends protecting a village from tax collection!</p>

[img width=500 [https://img.itch.zone/aW1nLzI3MDYzMTQuanBn/original/xtTaQJ.jpg]]
<p>Do you need to enrich your favourite fantasy RPG session with some of the traditional rpg character but you are out of 3d miniature?<br>In <strong>Hairic Minis - Hero Pack 01 </strong>you will find <strong>8 characters</strong> (2 per each of the old school human classes) ready to delve dungeons and make history in yours Game Master campaign.</p>
<p>This pack includes:</p>
<ul><li>2 male <strong>Fighter </strong>variation</li><li>2 female <strong>Cleric </strong>variation</li><li>2 female <strong>Wizard </strong>variation</li><li>2 male <strong>Thief </strong>variation</li></ul>
<p>Each of these comes in 2 different color scheme and a black and white version, for weaker printer or for creative minds.<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODY2MDUwLzQ4NjM4NTEuZ2lm/original/wQJLJJ.gif]]
<p>Do you need to enrich your favourite fantasy RPG session with some of  the traditional rpg character but you are out of 3d miniature?
In <strong>Hairic Minis - Hero Pack 02</strong> you will find<strong> 5 characters</strong> ready to delve dungeons and make history in yours Game Master campaign.
  </p>
<p>This pack includes:
    </p>
<ul><li>1 male<strong> Dwarf Miner<br></strong></li><li>1 female<strong> Urban </strong><strong>Elf<br></strong></li><li>1 female <strong>Buther Orc</strong></li><li>1 male <strong>Halfling Torchbearer<br></strong></li><li><strong></strong>1 ambigious <strong>Mercenary</strong>, who are they? They are completely covered up, they can be anything!</li></ul>
<p>Each of these comes in colored version and a black and white version, for weaker printer or for creative minds.
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MDU1Mi82NjgyMDIyLmdpZg==/original/0KwwVE.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MDU1Mi82NjgyMDI2LmdpZg==/original/OPPYtl.gif]]
<h1>Introduction</h1>
<p><em>You are a Hannukah goblin. After the Goblin King destroyed the&nbsp; temple, you and the other Hannukah goblins were left without a home. Although you originally didn’t believe in Hanukkah, Hershel taught you the values of Hanukkah: community, survival, and celebrating the small miracles in life. With Hershel’s trials, you now embrace Hanukkah and the Jewish culture.</em></p>
<p><em>Your goal now is to convince the other Hanukkah goblins in the neighboring towns to embrace the spirit of Hanukkah. You won’t be doing this alone though! You will work together with your goblin friends and have special items. On your adventure, you will meet townsfolk and other goblins. It is your job to spread as much Hanukkah cheer as you can before the end of Hanukkah.</em></p>
<p><br></p>
<h2>Physical Copies Available!</h2>
<p>In addition to the electronic copies (PDF, EPUB3, DAISY, and TXT format), &nbsp;physical softcovers are available for pre-order below!&nbsp;</p>
<p>Scroll all the way to the bottom to order the physical copies.</p>
<p><br></p>
<h1>Who is talking about Hanukkah Goblins?</h1>
<p>Take a look at everyone talking about Hanukkah Goblins!</p>
<h2>The Jewish&nbsp;News of Northern California and The Jerusalem&nbsp;Post</h2>
<p>Check out this article written about Max and Hanukkah Goblins in The Jewish News of Northern California and The Jerusalem Post.</p>
<p><img src="https://img.itch.zone/aW1nLzQ3NTUwMjgucG5n/original/CLZqQK.png" loading="lazy"><br></p>
<p><a href="https://www.jweekly.com/2020/12/08/take-on-the-hanukkah-goblins-in-oakland-designers-new-tabletop-game/" rel="nofollow noopener" referrerpolicy="origin">https://www.jweekly.com/2020/12/08/take-on-the-hanukkah-goblins-in-oakland-desig...</a><br></p>
<p><img src="https://img.itch.zone/aW1nLzQ3NTkzOTkucG5n/original/UuSSib.png" loading="lazy"><br></p>
<p><a href="https://www.jpost.com/israel-news/culture/a-new-game-lets-you-play-hanukkah-goblins-and-shoot-jelly-doughnuts-651560" target="_blank" rel="nofollow noopener" referrerpolicy="origin">https://www.jpost.com/israel-news/culture/a-new-game-lets-you-play-hanukkah-goblins-and-shoot-jelly-doughnuts-651560</a><br></p>
<p><br></p>
<h2>Café Rolistes</h2>
<p>Kalum and I talk about Hanukkah Goblins and about Jewish representation in popular culture. I pull no punches when talking about J.R.R. Tolkien's anti-semitism and how it pervades modern representations of marginalized people. Use the following link to watch the recording!</p>
<p><br></p>
<div class=""><iframe style="width: 500px; height: 281px" src="https://www.youtube.com/embed/3mSTq8TDqXs" frameborder="0" allowfullscreen=""></iframe></div>
<h2>Actual Play on @Go_Jg's Twitch Channel&nbsp;</h2>
<p>We played Hanukkah Goblins on stream with this ALL STAR cast. Use the links below to watch the recording.</p>
<p></p><div class=""><iframe width="500" height="281" src="//www.youtube.com/embed/ER18QPxaCTA" frameborder="0" allowfullscreen=""></iframe></div><br><p></p>
<h2>Electronic Format/Accessibility</h2>
<p>In addition to a fully accessible PDF, I have created&nbsp;EPUB3, DAISY, and TXT formats of Hanukkah Goblins. Most people will likely use the PDF version of the game, but I felt it important to&nbsp;provide a wide range of formats to meet a wide range of accessibility needs. If you want to learn more about the DAISY format, check it out here:&nbsp;<a href="https://daisy.org/activities/standards/daisy/" rel="nofollow noopener" referrerpolicy="origin">https://daisy.org/activities/standards/daisy/</a></p>
<p><br></p>
<h2>Credits</h2>
<p><strong>Author -</strong>&nbsp;Max Fefer (<a href="https://twitter.com/HydroForge" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter</a>,&nbsp;<a href="https://hydroforge.itch.io/" target="_blank">Itch.io</a>)</p>
<p><strong>Editor -</strong>&nbsp;Theo Rusmore (<a href="https://twitter.com/TheChemGM1" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter</a>,&nbsp;<a href="https://mrexplorerguy.itch.io/" target="_blank">Itch.io</a>)</p>
<p><strong>Illustrator -</strong>&nbsp;Kali Hayes (<a href="https://twitter.com/queasyspaceship" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter</a>,&nbsp;<a href="https://kalihayesart.wixsite.com/art-portfolio" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Portfolio</a>)</p>
<p>Special thanks to Adira Slattery&nbsp;(<a href="https://twitter.com/AdiraSlattery" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter</a>,&nbsp;<a href="https://adira.itch.io/" target="_blank">Itch.io</a>) for cultural consulting and Ezra Rose (<a href="https://twitter.com/magpietongue" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter</a>,&nbsp;<a href="https://ezrarose.itch.io/" target="_blank">Itch.io</a>) for the information on Sheyd/Sheydim.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/3mSTq8TDqXs" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODM0Mzc3LzQ3NDUzMjAucG5n/original/sjdg%2B8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODM0Mzc3LzQ3NDUzMTkucG5n/original/p0I%2Fuk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODM0Mzc3LzQ3NzQ0MDcucG5n/original/TkECsx.png]]
<p><strong>Haque</strong> (/hak/) is a glitch fantasy roguelike adventure about cute monsters,&nbsp;low-bit hauntings, and a suspiciously talkative narrator. Choose your&nbsp;character and battle through forests, deserts and dungeons to defeat a&nbsp;mysterious evil. Die often. Try again!<br></p>
<p>Explore a vibrant fantasy world falling apart at the seams.</p>
<p>An old man has asked you to complete a quest: purge the land of evil monsters! What land is this? It doesn't matter. Don't ask too many questions.</p>
<p>Journey into the pixelated wilderness with your beloved pet at your side. Encounter dangerous foes, make some new&nbsp; allies, and challenge the reigning bosses. Ignore the mounting sense of&nbsp;dread. That's normal.</p>
<p><br></p>
<p><em>“... a legitimately good little roguelike, with a solidly designed UI, animation used sparingly but to great effect and with enemies, items and classes that are almost all weird but cute.”</em><br><a href="https://www.rockpapershotgun.com/2017/12/02/haque-is-a-cute-glitchy-roguey-likey-little-thing/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Rock Paper Shotgun</a><br><br><em>“It's not even a question. I can be a necromancer, some dude with a stick, or a werewolf wizard. A werewolf wizard with brass knuckles who throws boulders and shoots icicles, no less.”</em><br><a href="http://www.pcgamer.com/becoming-the-ultimate-werewolf-wizard-in-retro-roguelike-haque/?utm_content=buffer37c47&amp;utm_medium=social&amp;utm_source=twitter&amp;utm_campaign=buffer-pcgamertw" target="_blank" rel="nofollow noopener" referrerpolicy="origin">PC Gamer</a><br><br><em>“Haque’s bite-size gameplay and taut combat loop are superbly crafted. For anyone looking for a new and inventive take on dungeon crawling, Haque is a solid choice: highly recommended.”</em><br><a href="https://steamcommunity.com/linkfilter/?url=http://saveorquit.com/2018/03/08/review-haque/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Save or Quit<br><br></a><em>"There are so many minute details that it is difficult to wrap my mind around the content of this game from what I have seen so far. I am astounded by the quality of the game overall."<br></em><a href="https://steamcommunity.com/id/YQMaoski/recommended/662540" target="_blank" rel="nofollow noopener" referrerpolicy="origin">IndieGems</a><span></span></p>
<p><br></p>
<p><strong>Haque </strong>features:<br></p>
<ul><li>Character selection featuring an endless array of randomized characters
</li><li>Detailed character statistics and a classic armor slot system
</li><li>Procedurally generated maps and settings
</li><li>Challenging turn-based combat with an emphasis on movement and strategy
</li><li>Dozens of unique enemies-- don't get surrounded!
</li><li>Rotating roster of bosses, each with different fighting styles and priorities
</li><li>Hundreds of items to equip, eat, or... reanimate
</li><li>Weapon and armor crafting
</li><li>New character quirks at the end of every level
</li><li>In memoriam screens to immortalize your permanently dead characters
</li><li>A slider for screen grime!</li></ul>
<p>Use every tool at your disposal to deliver <strong>Haque </strong>from evil. Find the truth. Save the game.<br></p>
<p><strong>Haque </strong>is available on PC, Mac (32-bit only), and Linux.</p>
<p><img src="https://img.itch.zone/aW1nLzg4ODE2Ni5qcGc=/original/KuUfEw.jpg" loading="lazy"><br></p>
<p><strong>Haque</strong> was successfully funded on Kickstarter in October of 2015 and developed by a small team at SuperTry Studios:<br></p>
<p>Music by <a href="https://supertrystudios.bandcamp.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Joe Kenneally</a><br></p>
<p>Additional graphics by <a href="https://twitter.com/towniealamode" rel="nofollow noopener" referrerpolicy="origin">Brian Townsend</a></p>
<p>Promotional illustrations by <a href="https://twitter.com/BryanWShepherd" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Bryan Shepherd</a></p>
<p>Writing by <a href="https://twitter.com/hadstclair" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Hadley St. Clair</a></p>
<p>A game by <a href="https://twitter.com/RealKevinCole" rel="nofollow noopener" referrerpolicy="origin">Kevin Cole</a></p>
<p>You can follow <strong>Haque's</strong> development in our weekly updates on <a href="https://www.kickstarter.com/projects/1507109559/haque/updates" rel="nofollow noopener" referrerpolicy="origin">Kickstarter</a>, <a href="https://twitter.com/haquerl" rel="nofollow noopener" referrerpolicy="origin">Twitter</a>, and <a href="https://www.facebook.com/ProjectMaiden/" rel="nofollow noopener" referrerpolicy="origin">Facebook</a>. To contact SuperTry, you can reach out on Twitter or send us an email at <a href="mailto:supertrystudios@gmail.com" rel="nofollow noopener" referrerpolicy="origin">supertrystudios@gmail.com</a><br></p>
<p>[HEY MAC FOLKS: Haque is 32-bit and won't run on Mac OS Catalina and above. Sorry!]</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/2UwsQPl5LAk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDE4MTUvMTQ0MTI5Mi5naWY=/original/ndix7j.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNDE4MTUvODg4MTgxLnBuZw==/original/kqmDGj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDE4MTUvMTQ0MTI5OS5naWY=/original/MC4grV.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNDE4MTUvODg4MTgzLnBuZw==/original/zGM9Vt.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDE4MTUvMTQ0MTI5My5naWY=/original/kl3gDL.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNDE4MTUvODg4MTg0LnBuZw==/original/sNI3Ns.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDE4MTUvMTQ0MTI5NS5naWY=/original/VCWXfN.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNDE4MTUvODg4MTg1LnBuZw==/original/DhgvEO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDE4MTUvMTQ0MTI5Ni5naWY=/original/bPrnqq.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNDE4MTUvODg4MTg2LnBuZw==/original/LxplCa.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDE4MTUvMTQ0MTI5NC5naWY=/original/f%2F%2FBbE.gif]]
<p>A wave defense game in classic arcade style.</p>
<p><strong>- Features -</strong></p>
<ul><li><strong>Story Mode</strong></li><li><strong>Survival Mode</strong><ul><li>2 Player Co-op</li><li>2 Unlockable playable characters</li><li>Unlockable skins</li></ul></li></ul>
<p><br></p>
<p>The Grooble armies are advancing towards the village of Fronvale, a young hero picks up a hammer to defend his home.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/PpV2E3Qpslk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAyNjcyMi83MzU0NDQ4LnBuZw==/original/EIRvOx.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAyNjcyMi83MzU0NDQ5LnBuZw==/original/vDC0lP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAyNjcyMi83MzU0NDQ2LnBuZw==/original/%2FrqFlJ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAyNjcyMi83MzU0NDQ3LnBuZw==/original/mGRAnY.png]]
<h1>Haunting</h1>
<div></div>
<p><em>Haunting</em> is a two player game about a sentient House that wants to devour its Occupants.&nbsp;
 </p>
<p>During play, the players will work together to create their story, documenting the time that the Occupant spends living in the House and telling the tale of how the House will inevitably becomes vacant once more.
 </p>
<p>The House is waiting…</p>
<p><img src="https://img.itch.zone/aW1nLzcwODU4NjQucG5n/original/bLcWfI.png" loading="lazy"><br></p>
<h2>How will you play?</h2>
<p>You'll create Occupants from prompts.&nbsp;</p>
<p>As Occupants move in they will leave their mark through adding or changing rooms. But the House will push back, twisting these rooms in spooky ways.&nbsp;
</p>
<blockquote><strong>Player 1</strong>&nbsp;(Occupant): the Gentlefolk add a ball room to host lavish parties.&nbsp;<br><br><strong>Player 2</strong>&nbsp;(House): the guests complain of inexplicable voices<br><br><strong>Player 1</strong>&nbsp;(Occupant): the Gentlefolk blame old pipes and insist that the party continues</blockquote>
<p>In turn, the House will haunt the Occupants.
</p>
<blockquote><strong>Player 2&nbsp;</strong>(House): every few days when the Author is in the library, the book shelves will start to shake, knocking books to the floor.
<br><br><strong>Player 1</strong>&nbsp;(Occupant):&nbsp;the Author flees from the room
<br><br><strong>Player 2&nbsp;</strong>(House): as they run, the bookshelves start to tip over like dominoes, and they only just make it out</blockquote>
<p>Finally, together you decide this Occupant's fate, will they Fight, Flee or Fall to the House?
</p>
<p>As you wait for a new Occupant you'll Rest, with music on and your eyes shut, until the next Occupant moves in and you repeat the process until your story is complete.</p>
<figure><em><img src="https://img.itch.zone/aW1nLzcwMzQ2ODIucG5n/original/p1vRTO.png" alt="A spread from the pdf. The left page is a section is titled 'occupants' with simple art of portraits on a wall. The right page describes 'Act One' and 6 occupants that you can choose from. " title="A spread from the pdf. The left page is a section is titled 'occupants' with simple art of portraits on a wall. The right page describes 'Act One' and 6 occupants that you can choose from. " loading="lazy"></em></figure>
<h3>Recording your story</h3>
<p>The game asks you to keep a journal of the events as they unfold and record the changes to the house through a drawing of it.</p>
<p>You can draw one from scratch yourself or use the printable House template we've included:</p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzcwODU4MzcucG5n/original/PnSwYt.png" alt="Haunting House Template" title="Haunting House Template" width="50%" style="margin: 0 auto" loading="lazy"></p>
<h2>Using sound</h2>
<p>During play, you will prompted to listen to some small audio tracks as part of the game. &nbsp;These tracks are currently under development and are due to be released as part of a future update.&nbsp;</p>
<p><br></p>
<p>In the meantime, feel free to use the excellent audio composed for the game <em>Artefact</em> by Jack Harrison. These tracks were created by the talented Christopher Michael Roberts and they work well for this game.</p>
<p>You can find them here: <a href="https://theartefact.vercel.app" rel="nofollow noopener" referrerpolicy="origin">https://theartefact.vercel.app</a>
 </p>
<p>Alternatively, feel free to use your own eerie music.
</p>
<p><img src="https://img.itch.zone/aW1nLzcwODY1NzUucG5n/original/LVGbIA.png" loading="lazy"><br></p>
<h2>What will you need?</h2>
<ul><li>Two players that are feeling spooky.</li><li>A couple of hours.</li><li>Some eerie ambient music</li><li> A safe place to play in dim light.</li><li>A way to document your story in words.</li><li>Something to draw with.</li><li>Snacks!</li></ul>
<h2>Acknowledgements</h2>
<p>Haunting is based on the <a href="https://srd.mousehole.press/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Lost &amp; Found SRD</a> and inspired by games like: <br></p>
<ul><li><a href="https://mouseholepress.itch.io/artefact" target="_blank">Artefact</a></li><li><a href="https://mouseholepress.itch.io/bucket-of-bolts" target="_blank">Bucket of Bolts</a></li></ul>
<p>You Might Also Like</p>
<ul><li><a href="https://emgiosia.itch.io/you-and-the-house" target="_blank">You and the House</a></li><li><a href="https://www.kickstarter.com/projects/spines/dwelling" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Dwelling</a></li><li><a href="https://goblinarchives.itch.io/liminal-horror" target="_blank">Liminal Horror</a></li><li><a href="https://temporalhiccup.itch.io/our-haunt" target="_blank">Our Haunt</a></li><li><a href="https://marns.itch.io/house" target="_blank">house</a></li></ul>
<p><img src="https://img.itch.zone/aW1nLzY5ODEzODMucG5n/original/%2BLoXA9.png" loading="lazy"><br></p>

[img width=500 [https://img.itch.zone/aW1nLzcwMjg4MjMucG5n/original/fgUCxk.png]]
<p class="text-justify text-center">This is the&nbsp;<strong>first entry</strong>&nbsp;in the Abime Series. The second entry is&nbsp;<a href="https://miracle-moon.itch.io/birth-me-code">Birth ME Code</a>.<br></p>
<p><img src="https://img.itch.zone/aW1nLzM4ODQ0ODIucG5n/original/z4Zqqg.png" loading="lazy"></p>
<p class="text-justify">It is&nbsp;<strong>April 22, 2022</strong>&nbsp;and Simon Fournier woke up in a strange location. Surrounded by friends, strangers and foes, he has to play the dangerous game introduced only as the Dating Game. It's not a joke; it's real and it's&nbsp;<strong>dangerous</strong>. If they failed, they would&nbsp;<strong>die</strong>.</p>
<p class="text-justify text-center"><img src="https://img.itch.zone/aW1nLzM4ODQ2MTIucG5n/original/RXZQzM.png" style="color: inherit; font-size: inherit" loading="lazy"></p>
<p class="text-justify">It is a merciless environment where tensions rise and where no one is safe. Any suspicions could get you&nbsp;<strong>killed</strong>. Everyone's questions quickly multiplied. Who is Smiley? Who&nbsp;<i>really</i>&nbsp;are the other participants? Is Smiley&nbsp;<strong>among them</strong>? What is the&nbsp;<strong>real</strong>&nbsp;purpose of the Dating Game?</p>
<p class="text-justify text-center"><img src="https://img.itch.zone/aW1nLzM4ODQ2MTQucG5n/original/A7i9Un.png" style="color: inherit; font-size: inherit" loading="lazy"></p>
<p class="text-justify"><strong>Key features:</strong></p>
<ul><li><strong>A surprising story full of twists!</strong>&nbsp;Head AS Code is a story with plenty of twists and turns to keep you on the edge of your seat. Every one of Head AS Code's&nbsp;<strong>19 endings</strong>&nbsp;contains thrills, chills and kills.</li><li><strong>Many riveting choices!</strong>&nbsp;No need for saves when the game autosaves for you. Every choice has its own weight. And if you don't like where you're going, there's always...</li><li><strong>An ever-expanding flowchart!</strong>&nbsp;You can access it after your first ending. Use it to jump to any point you already read! The game autosaves, but there's global, visible progress.</li><li><strong>Numerous interactive sections!</strong>&nbsp;Active Searches were designed to give YOU control over which interactions you'd like to read. Talk to someone, investigate an object or skip the optional searches if you'd like.</li></ul>
<p class="text-justify">The&nbsp;game is intended&nbsp;for&nbsp;<strong>Windows only</strong>.</p>
<h3 class="text-center">Use your head - Crack the code</h3>
<p><img src="https://img.itch.zone/aW1nLzM3NDEyODkucG5n/original/Mq8FCd.png" loading="lazy"><br></p>
<p class="text-justify">Feel free to follow on&nbsp;<a href="https://twitter.com/TeamMiracleMoon" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter</a>&nbsp;or leave a comment below.&nbsp;If you wish to&nbsp;support me further, I have a&nbsp;<a href="https://www.patreon.com/Miracle_Moon" rel="nofollow noopener" referrerpolicy="origin">Patreon</a>&nbsp;for funding.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/YjgnvbMXlew" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjc5MTYxLzUwMDkxNDIucG5n/original/BH14so.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjc5MTYxLzQwODExMTQucG5n/original/U5Ceb%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjc5MTYxLzM5Mjg0MjgucG5n/original/6n8D7O.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjc5MTYxLzUyOTcwMTEucG5n/original/S4dG1B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjc5MTYxLzQzNTc1NTcucG5n/original/IemZwI.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjc5MTYxLzQ0NjYwODgucG5n/original/QB9HGY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjc5MTYxLzQyMzY5NjYucG5n/original/xImWOG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjc5MTYxLzQ2NTczNTgucG5n/original/8vb08h.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjc5MTYxLzUyOTcwMTMucG5n/original/NvPtzS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjc5MTYxLzQxOTgzNzkucG5n/original/eNGt83.png]]
<p>The official soundtrack for Head AS Code! The full soundtrack is now out!</p>
<p>Check out the game here:&nbsp;<a href="https://miracle-moon.itch.io/head-as-code">https://miracle-moon.itch.io/head-as-code</a></p>
<p>Tracklist:<br></p>
<p>01 - Head AS Code.wav<br>02 - Anomalous Sepulcher.wav<br>03 - Agoraphobic Sloth.wav<br>04 - Ambient Strain.wav<br>05 - Abyssal Snarl.wav<br>06 - Accelerated Scuffle.wav<br>07 - Active Search.wav<br>08 - Auxiliary Search.wav<br>09 - Advancing Shadows.wav<br>10 - Algorithm Simile.wav<br>11 - Alarming Silence.wav<br>12 - Alarming Situation.wav<br>13 - Anaphora Solution.wav<br>14 - Ascertaining Speech.wav<br>15 - Ascertaining Sanity.wav<br>16 - Android Sorrow.wav<br>17 - Agnostic Shutdown.wav<br>18 - Use Your Head (Bonus Track).wav<br>19 - Crack The Code (Bonus Track).wav</p>
<p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/YjgnvbMXlew" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1nLzUyOTc1MjcucG5n/original/wp7vm5.png]]
<h3>📢 NEW!&nbsp;Headspun is now available as a reward via the <a href="https://www.patreon.com/superstring" rel="nofollow noopener" referrerpolicy="origin">Superstring Patreon</a> at ALL reward tiers $2 and above.</h3>
<h3>📢 NEW! Looking for advice marketing your game?&nbsp;<a href="https://svperstring.itch.io/game-marketing-manual">The Zero&nbsp;-Budget Game Marketing Manual</a>, also from Superstring,&nbsp;is available now!</h3>
<figure><img src="https://img.itch.zone/aW1nLzExNjI1MjIuZ2lm/original/z0yr3K.gif" style="color: inherit" loading="lazy"><br></figure>
<p><strong>Cortex is in ruins.&nbsp;</strong><br><br>After waking from a five week coma, Theo Kavinsky finds his life in disrepair, and with no memory of the accident, it’s up to Ted and Teddy – the conscious and subconscious voices in his head – to work out what happened, and put his life back on track.&nbsp;<br><br><strong>Headspun </strong>is an FMV/Adventure hybrid which puts you in the shoes of Ted: the Director of Cortex - the rational, intelligent voice in Theo's head. What Ted thinks is best for Theo isn't necessarily a view shared by Teddy, however; the primal, emotional subconscious voice...&nbsp;<br><br>In the process of repairing Cortex, re-hiring a team and finding out what happened the night of the accident, Ted and Teddy must cast aside their differences and learn to work together. Headspun is a game about recovery, discovery, and the ongoing battle between logic and emotion.&nbsp;</p>
<figure><img src="https://img.itch.zone/aW1nLzI1ODMxMTAuZ2lm/original/472kDi.gif" loading="lazy"></figure>
<hr>
<h3>FEATURES</h3>
<ul><li>Rich FMV story-telling</li><li>Branching dialogue - sway the outcome of your interactions</li><li>Rebuild Cortex - earn Neuros to hire staff and commission renovations&nbsp;</li><li>Retrieve Lost Memories and work out what happened the night of Theo's accident</li><li>Original Synthwave Score from Soho Loop</li></ul>
<hr>
<h3>THE DAZED EDITION</h3>
<p>The Headspun:&nbsp;Dazed Edition is <strong>exclusive to itch</strong>&nbsp;and includes the official OST by Soho Loop as standard. The MP3 files are&nbsp;included in your download.&nbsp;</p>
<p><img src="https://img.itch.zone/aW1nLzI1ODMwOTcucG5n/original/Cb65ys.png" loading="lazy"><br></p>
<p><strong><u>TRACKLIST</u></strong></p>
<p><strong>1. </strong>Press On<br><strong>2.</strong> Drift<br><strong>3. </strong>Synthesia<br><strong>4. </strong>Function Shift<br><strong>5.</strong> PAUSE<br><strong>6.&nbsp;</strong>The Expanse<br><strong>7.</strong> Go Explore<br><strong>8.</strong> Temporal<br><strong>9. </strong>Headspun&nbsp;</p>
<hr>
<h3>FAQ</h3>
<p><strong>SO HOW IS THE DAZED EDITION DIFFERENT, EXACTLY?</strong><br>The Headspun: Dazed Edition includes the official Headspun OST&nbsp; and is exclusive to Itch.&nbsp;</p>
<p><strong>DOES MY ITCH PURCHASE INCLUDE A STEAM KEY?<br></strong>If you decide to purchase the game, drop us a line and I'm sure we can help you out.&nbsp;<span></span></p>
<p><strong>IS HEADSPUN AVAILABLE ON OTHER PLATFORMS?</strong><br>It is! Headspun is available on PlayStation 4, Xbox One, Nintendo Switch and Steam.&nbsp;</p>
<p><strong>LINUX?</strong><br>A Linux version isn't in the *official* roadmap, but we'll be updating this page with a Linux build shortly after launch. We're a small team, however, and updates/supports to this version will be sporadic. We'll do our best.&nbsp;</p>
<p><strong>I'M&nbsp;DIGGING THE SYNTHWAVE MUSIC - TELL ME MORE!?</strong><br>Headspun's OST has been composed by UK-based electronic outfit <a href="http://www.soholoop.co.uk/" rel="nofollow noopener" referrerpolicy="origin">Soho Loop</a>, with composer Stephen Willey also looking after the sound design in the game.&nbsp;</p>
<p><strong>I'VE FOUND A BUG / GOT A PROBLEM / WANT TO TELL YOU SOMETHING!</strong><br>Great! Sling us a line at support@superstring.studio, or drop us a note on any of the channels below.&nbsp;</p>
<hr>
<h3>FROM THE SUPERSTRING STORE...</h3>
<p><a href="https://www.superstring.studio/shop" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzI0MDcxNjgucG5n/original/%2B%2BHcXq.png" loading="lazy"></a><br></p>
<p><a href="https://www.superstring.studio/shop" rel="nofollow noopener" referrerpolicy="origin">More.</a></p>
<hr>
<h3>SUPERSTRING</h3>
<p><strong>Superstring is a London-based studio dedicated to abusing the boundaries of genre.&nbsp;<a href="http://www.headspun.co" rel="nofollow noopener" referrerpolicy="origin">Headspun</a>&nbsp;</strong>released on PS4, Xbox One, Nintendo Switch and PC on August 28th 2019.&nbsp;</p>
<p>Don't be a stranger...<br></p>
<ul><li>Follow &nbsp;<a href="http://www.twitter.com/SuperstringLtd" rel="nofollow noopener" referrerpolicy="origin">Superstring on Twitter</a>&nbsp;</li><li>Say hi on <a href="https://www.facebook.com/SuperstringLtd" rel="nofollow noopener" referrerpolicy="origin">Facebook</a></li><li>Chat with us on <a href="https://discordapp.com/channels/482316489916022784/482316489916022786" rel="nofollow noopener" referrerpolicy="origin"></a><a href="https://discord.gg/JW6MUUk" rel="nofollow noopener" referrerpolicy="origin">Discord</a></li><li>Join our <a href="http://headspun.co/newsletter" rel="nofollow noopener" referrerpolicy="origin">mailing list</a></li><li>See our pretty photos on&nbsp;<a href="https://www.instagram.com/superstring_studio/" rel="nofollow noopener" referrerpolicy="origin">Instagram</a></li><li>Support us on&nbsp;<a href="https://www.patreon.com/superstring" rel="nofollow noopener" referrerpolicy="origin">Patreon</a></li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/8NekG8_f6i0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjk1MjkzLzE0NDE0ODYucG5n/original/iIGXDN.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjk1MjkzLzE0NDE0ODcucG5n/original/5HoGFW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjk1MjkzLzE0NDE0ODgucG5n/original/SPbyzO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjk1MjkzLzE1MDkxODYucG5n/original/8UZys1.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjk1MjkzLzE1MDkxODcucG5n/original/pS6V1v.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjk1MjkzLzE1MDkxODQucG5n/original/lAkqq3.png]]
<p>As the year draws to a close, the knights of the realm come together to share stories of their year's exploits.&nbsp;</p>
<p>A storytelling game written for the <a href="https://itch.io/jam/holiday-ttrpg-jam">Holiday Jam</a> by <a href="https://whimsy-machine.itch.io/">Whimsy Machine</a>.</p>

[img width=500 [https://img.itch.zone/aW1nLzc2NzIzNzQuanBn/original/wPPny9.jpg]]
<p>You have been held in Hell for hundreds of years.&nbsp; Now, finally, you have been given a chance to escape; by winning the golf tournament held every 666 years!&nbsp; Which really is an awful choice, but it's the best you've got.&nbsp; Can you defeat the other competitors to escape from Golf Hell, or will you be trapped here for all eternity?</p>
<p>Hell Holes is a competitive fantasy golf dice game for 1-6 players.&nbsp; Each time it is your turn, you will select your club and roll dice to see how your shot went.&nbsp;&nbsp;Hopefully, you stayed on the course and did not stray into any of the fantastic dangers of the Circle you are competing on at the time.&nbsp; As you play your way through the nine Circles of Old Hell&nbsp;Downs, the demonic Caddy will interfere by offering special clubs to whoever is in last place at the end of a circle.&nbsp; Only by playing better than&nbsp;your fellow golfers (or maybe being luckier than them)&nbsp;can you escape&nbsp;Golf Hell!</p>
<p>You will need a pair of ten-sided dice (or an electronic dice roller, or a numbered spinner, or some other way to generate random numbers between 1 and 10) to play Hell&nbsp;Holes.</p>
<p>Purchases at $6.00 or above add a community copy to the pool for other community members who may be interested in the game, but unable or unwilling to purchase it, to claim and enjoy Hell Holes themselves.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzMxNzc1LzQwNjkwODQucG5n/original/0wSrmc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzMxNzc1LzQwNjkwOTIucG5n/original/F%2BiNiW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzMxNzc1LzQwNjkwOTMucG5n/original/LM6xk1.png]]
<h3 class="text-center"><img src="https://img.itch.zone/aW1nLzU2NTYwMDMucG5n/original/oIJ%2BY6.png" loading="lazy"><br>Hellcraze is a bullethell dungeon crawler game, your mission is simple... KILL THEM ALL<br><br><img src="https://img.itch.zone/aW1nLzU2NTU0MDkuZ2lm/original/%2FLUNXq.gif" loading="lazy"></h3>
<h3 class="text-center">Each level features new enemies and harder challenge!  You have a variety of guns to defeat the demons!  Feast on their soul and upgrade your gear to get stronger!<br><br><img src="https://img.itch.zone/aW1nLzU2NTU0NDQuZ2lm/original/0Eio30.gif" loading="lazy"></h3>
<h3 class="text-center">Bosses will be waiting to defeat you as you crawl your way through hell!  Defeat all of them and free the world of the evil!<br><img src="https://img.itch.zone/aW1nLzU2NTUzNzkuZ2lm/original/Jxn4Vi.gif" loading="lazy"></h3>
<h3 class="text-center"><br>Check out the game soundtrack on youtube!<p><br></p>
<div class=""><iframe src="https://www.youtube.com/embed/tF_gQS979Ek" allowfullscreen="" width="500" height="281" frameborder="0"></iframe></div><p><br>Special thanks to <a href="https://verzatiledev.itch.io/" target="_blank">VerzativeDev</a>!<br>Music by <a href="https://www.youtube.com/channel/UCJhvqAefjP7mF_2NdTs8tFw" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Jacob Lizotte</a>!<br>Development and Copyrights ElvGames!<br></p></h3>

<iframe width="720" height="450" src="https://www.youtube.com/embed/tF_gQS979Ek" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTkzOTQ4LzU2NTU0MDYuZ2lm/original/qv77SU.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvOTkzOTQ4LzU2NTU0NDAuZ2lm/original/8PgBEY.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvOTkzOTQ4LzU2NTUzODEuZ2lm/original/knyMej.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvOTkzOTQ4LzU2NTUyMjYucG5n/original/XN9jOb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTkzOTQ4LzU2NTUyMjcucG5n/original/NTHgNm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTkzOTQ4LzU2NTUyMjgucG5n/original/LVxqpy.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTkzOTQ4LzU2NTUyMzAucG5n/original/taiBTZ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTkzOTQ4LzU2NTUyMzIucG5n/original/2jgPSw.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTkzOTQ4LzU2NTUyMzUucG5n/original/SdUWlN.png]]
<p>Here &amp; Far is a solo GM-less journaling game about being with another person, but unable to communicate with them.</p>
<p>The game uses scenarios to bring&nbsp;new&nbsp; and very different&nbsp;context to the prompts on each play-through.&nbsp;It will include 4 very different scenarios:</p>
<ul><li>The Coma:&nbsp;You are in a coma and need to reawaken so you can warn a loved one that they are in mortal danger.</li><li>The Afterlife: You are haunting someone. Is it&nbsp;someone mourning you?, is it&nbsp;an old grudge?</li><li>The Stakeout: You are watching an unaware subject. Are you police staking out a suspect? Are you are a thief that has&nbsp;hacked the security cameras of your next target?</li><li>????: I want to leave the last scenario to the feedback of the ttrpg community. What theme would you like to see?</li></ul>
<p>This game is in development and&nbsp;being itchfunded. So far, the game includes 2 scenarios (The Coma and The Afterlife). Anytime the game reaches one the goals below, I’ll&nbsp;write another scenario (up to 4), and then add $2 to the price. So buying early means you get it cheaper, with access to all future updates.</p><p>
</p><p><strong>Itchfunding Goals</strong></p>
<ul><li>Sell 5 copies of this game</li><li>Get 10 ratings on this game</li><li>Get comments from 5 people on this game</li><li>Get to 10 patrons on my Patreon: <a href="https://patreon.com/instadeath" rel="nofollow noopener" referrerpolicy="origin">https://patreon.com/instadeath</a></li><li>Get to 50 subscribers on my YouTube channel:&nbsp;<a href="https://youtube.com/channel/UCwTrrTuIv-EcWMhvuEJSPzQ" rel="nofollow noopener" referrerpolicy="origin">https://youtube.com/channel/UCwTrrTuIv-EcWMhvuEJSPzQ</a></li><li>Get to 100 followers on my Twitter:&nbsp;@instadeathpod</li><li>Get to 200 downloads per episode on my podcast <a href="https://anchor.fm/instadeath" rel="nofollow noopener" referrerpolicy="origin">https://anchor.fm/instadeath</a>&nbsp;</li></ul><p><strong>About the Game Files</strong></p><p><strong><em>Here &amp; Far (Omnibus) - v0.02.pdf</em></strong> includes all the content you need to play the game. Just bring a deck of cards, a block tower, and 20 tokens.</p><p><strong><em>Here &amp; Far (Core) - v0.02.pdf</em></strong> includes only the universal prompts that are used with every scenario. You will also need one of the following scenario books.&nbsp;Having this open lets you reduce the amount of flipping pages back and forth.</p><p><strong class=""><em>The Coma (Here &amp; Far v0.02).pdf</em><em>&nbsp;</em><em></em></strong>includes only the prompts for The Coma scenario. You will also need the&nbsp;<em>Here &amp;&nbsp;Far (Core)</em> book to play this scenario.<br></p><p><strong><em>The Afterlife (Here &amp; Far v0.02).pdf</em></strong> includes only the prompts for The Afterlife scenario. You will also need the <em>Here &amp; Far (Core) </em>book to play this scenario.</p>

[img width=500 [https://img.itch.zone/aW1nLzc4MTU0ODAucG5n/original/v80SCp.png]]
<p>In Hero Generations, each step you take is an entire year of your hero's life. You explore a procedurally generated world in search of fame and a mate to have a child with before you die. After your life ends, you take control of your child in the world you left behind, in the hope of continuing your family legacy. Each turn becomes a meaningful life decision: you can focus on building and crafting the world around you, or adventuring to far off lands to make a bigger name for yourself.<br></p>
<h2>Key Features</h2>
<ul><li>Limited Lifespan and Permadeath: Each turn your hero takes = 1 year of their life. </li><li>Generations, Mating, and Having Children: find a mate, start a family, have a child. Then take control of that child in that same world! </li><li>6 Strategic Paths and Meaningful Choices: grow in Strength, Exploration, Love, Wealth, Fame, and Wisdom. </li><li>City Crafting System: build great towns and morph their cultures. </li><li>Expansive Overworld: explore a connected grid of 6 unique worlds, each with their own unique tileset (Volcano, Desert, Island, to name a few) </li><li>Meaning: a surprising and thought-provoking experience, that explores themes of death, legacy, family, love, and more. </li><li>Gorgeous hand drawn art style.</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/9G7E8t5oLIs" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjE4NDkvMjc5NjkzLmpwZw==/original/0vvGNL.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjE4NDkvMjc5Njg5LmpwZw==/original/gLq420.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjE4NDkvMjc5NjkwLmpwZw==/original/Ud%2BZhM.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjE4NDkvMjc5Njk3LmpwZw==/original/eN1obp.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjE4NDkvMjc5NjkxLmpwZw==/original/EwKP69.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjE4NDkvMjc5NjkyLmpwZw==/original/Mw6wtc.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjE4NDkvMjc5Njk2LmpwZw==/original/tZCMql.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjE4NDkvMjc5Njk1LmpwZw==/original/GclohO.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjE4NDkvMjc5Njk0LmpwZw==/original/x0GmOU.jpg]]
<p>Magical girls are real, but the pay sucks! Join the Union of Magical Girls as they fight to protect the city from evildoers by day, and fight to become unionised by night.</p>
<p><strong>Features:</strong></p>
<ul><li>Take on the brainwashed zombie hordes in&nbsp;<strong>tactical, turn-based combat</strong>.</li><li>Your magical familiars gave you these powers, but now they expect you to fight evil for free?&nbsp;<strong>Negotiate better pay</strong>&nbsp;or employment benefits based on your performance.</li><li>Get to know the inhabitants of the struggling convenience store where you and your family live and work. Power up your abilities by&nbsp;<strong>making new social connections</strong>.</li><li>Loaded with dorky humour and 90s magical girl anime tropes.</li></ul>
<p><strong><img src="https://img.itch.zone/aW1nLzM4MTI4NTMuZ2lm/original/fU6lLi.gif" loading="lazy"></strong></p>
<p><strong>Battle&nbsp;Flow:</strong></p>
<p>Due to your overwhelming power levels, the enemies can't actually hurt you, so the focus is on&nbsp;<strong>defeating enemies as quickly as possible</strong>&nbsp;to gain higher rewards and bargaining power when the battle ends.<br><br>Of course, not all enemies are brainless zombies, and you'll have to contend with many abilities designed to impede your pursuit of a perfect score!</p>
<p><strong>Social&nbsp;Links:</strong><br></p>
<p>Outside of battle you'll be able to invest your precious time and money into building up your social links through&nbsp;<strong>visual novel style conversations</strong>:</p>
<ul><li>Help the convenience store clerk find romance!</li><li>Try to lure out the NEET who lives in the storage cupboard!</li><li>Waste all your money on gacha machines to try and impress a small child!</li></ul>
<p><img src="https://img.itch.zone/aW1nLzM4MTI4NjAuZ2lm/original/qba7I4.gif" loading="lazy"><br></p>
<p><strong>Negotiation:</strong></p>
<p>How the heck are you supposed to have a social life with no money or free time? After every battle you'll get to lead the Union of Magical Girls in&nbsp;<strong>collective bargaining</strong>&nbsp;to determine your reward based on how well you fought and how many gems you gathered.<br><br>Don't let them take your&nbsp;<strong>dental plan</strong>!</p>
<hr>
<p><small></small></p><small>
<p><strong>Keyboard Controls:</strong><br></p>
<p><strong>Z -&nbsp;</strong>Confirm / Select<br><strong>X -&nbsp;</strong>Cancel<br><strong>O/P -&nbsp;</strong>Toggle Character (weird choice, sorry!)</p>
<p><strong>Gamepad Controls use Nintendo Switch button layout.</strong><br></p>
</small><p><small></small></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/0kFF03Ascuk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDg0MjgzLzM4MTI4MjcucG5n/original/53GLTE.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg0MjgzLzM4MTI4MjEucG5n/original/SxMbcl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg0MjgzLzM4MTI4MjIucG5n/original/XmLN8u.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg0MjgzLzM4MTI4MjAucG5n/original/tFYS%2FO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg0MjgzLzM4MTI4MjgucG5n/original/wBfaII.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg0MjgzLzM4MTI4MjUucG5n/original/x%2FrnDw.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg0MjgzLzM4MTI4MjYucG5n/original/mZvtK%2F.png]]
<p><em>Héros d’Argile</em>&nbsp;raconte la génèse, l’ascension et peut-être la chute d’un (Super) Héros. C’est un jeu qui se centre sur le quotidien du Héros et de ses proches, sur les relations qu’ils entretiennent et sur le prix à payer pour être le symbole, voire l’espoir, d’une cité. Loin des stéréotypes de super héros invincibles et toujours triomphants, nous vous proposons au contraire de vivre les moments de doute du Héros, mais aussi les fragiles instants de grâce qu’il partagera avec ses proches.</p>
<p><em>Héros d’Argile</em>&nbsp;est un jeu de rôle sans meneur&nbsp;pour 3 à 7 joueurs .&nbsp; Il est écrit par Manon et Simon LI, illustré par&nbsp;<a href="https://vianneycarvalho.wordpress.com/" rel="nofollow noopener" referrerpolicy="origin">Vianney CARVALHO</a>&nbsp;et soutenu à la communication par&nbsp;<a href="https://fr.linkedin.com/in/alice-cochin-9045341a2" rel="nofollow noopener" referrerpolicy="origin">Alice COCHIN</a>.
</p>
<p><br></p>
<figure><img src="https://img.itch.zone/aW1nLzc2MTMyMzQucG5n/original/U9txOy.png" loading="lazy"></figure>
<h3></h3>
<h1>Note d'intention</h1>
<p>Il y a tant de raisons d’aimer le genre « super héroïque ». Pour le spectacle d’affrontements titanesques, pour la surprise du twist final, pour les enjeux planétaires (voire cosmiques), pour les thèmes abordés, pour la proximité qu’on ressent avec les personnages, pour les causes et les luttes des héros, pour l’excitation des crossovers, etc. Et parmi toutes les raisons de s’intéresser à un Héros, celle que nous préférons est l’<strong>exploration de son quotidien</strong>.
</p>
<p>Que fait Bruce Wayne entre deux missions ? Est-ce que Matt Murdock va finalement trouver du temps pour prendre soin de ses amis Karen et Foggy ? Comment jongler entre les préparatifs du mariage avec Mary Jane et les responsabilités de Spiderman ? Qu’est-ce qui rend Superman, Dieu parmi les Hommes, si humain ?
</p>
<p>Voici ce que nous avons voulu mettre dans&nbsp;<em><a href="https://angeldust-jdr.com/nos-jeux/heros-dargile/" rel="nofollow noopener" referrerpolicy="origin">Héros d’Argile</a></em>.
</p>
<p><strong>Comment le quotidien s’entremèle-t-il avec la vie super-héroïque ?</strong>
</p>
<p>Dans&nbsp;<em>Héros d’Argile</em>, on raconte l’histoire d’un Héros et de son entourage, leurs relations, leurs appréhensions, leurs moments partagés et, inévitablement, les menaces qui planent sur eux. On passe du temps avec les personnages, on apprend à les aimer, on se délecte de leurs interactions, on appréhende les sacrifices qu’ils devront inéluctablement faire. Loin des stéréotypes de super héros invincibles et toujours triomphants, nous vous proposons au contraire de vivre les moments de doute du Héros, mais aussi les fragiles instants de grâce qu’il partagera avec ses proches.
</p>
<p><em><strong>Héros d’Argile n’est pas un jeu de super héros. C’est un jeu qui parle de (super) Héros.</strong></em>
</p>
<p><img src="https://img.itch.zone/aW1nLzc2MTMyNTUuanBn/original/dFyuuE.jpg" loading="lazy"></p>
<h1>Le jeu</h1>
<p><em>Héros d’Argile</em>&nbsp;est un jeu qui se joue de 3 à 7 joueurs. Un joueur incarnera le&nbsp;<strong>Héros</strong>, un joueur incarnera le&nbsp;<strong>Vilain</strong>, et les autres joueurs incarneront les&nbsp;<strong>Sidekicks</strong>.
</p>
<p>Chaque rôle a ses prérogatives, sa manière de jouer et des mécaniques propres.
</p>
<ul><li>Le joueur qui incarne le Héros doit jouer son personnage à la première personne, à la manière d’un « PJ » classique ; son personnage possède des Questionnements qui l’empêchent de s’accomplir et a besoin des Sidekicks pour les dépasser.
</li><li>Les joueurs qui incarnent les Sidekicks ont non seulement la charge de leur personnage mais aussi celle de cadrer les Scènes du Quotidien dans lesquelles les protagonistes interagissent.
</li><li>Le joueur qui incarne le Vilain propose les obstacles et construit le personnage de l’Antagoniste au fur et à mesure de la partie, en miroir du Héros.
</li></ul>
<figure><img src="https://i2.wp.com/angeldust-jdr.com/wp-content/uploads/2021/09/etre-total.png?resize=750%2C346&amp;ssl=1" class="" style="border: 0px; max-width: 100%" width="750" height="347" loading="lazy"></figure>
<p>Ainsi, chacun des trois rôles peut s’apparenter à une posture de joueur :
</p>
<ul><li>le&nbsp;<strong>Héros&nbsp;</strong>conviendra le mieux à ceux qui veulent vivre la fiction comme un PJ « classique » et questionner leur personnage ;
</li><li>les&nbsp;<strong>Sidekicks&nbsp;</strong>conviendront le mieux à ceux qui aiment mettre en avant les relations, les dramas et les secrets des personnages ;
</li><li>enfin le&nbsp;<strong>Vilain&nbsp;</strong>correspondra le plus à un rôle de MJ « traditionnel » qui construit un antagonisme à la hauteur des enjeux.
</li></ul>
<p>Le jeu est découpé en « Scènes » qui seront à la charge soit du Héros, soit des Sidekicks ou soit du Vilain. Par exemple, le Héros cadre les Scènes de Mission, le Vilain cadre les Scènes de Conflit, etc. Une partie de&nbsp;<em>Héros d’Argile</em>&nbsp;consiste donc en l’enchainement de ces différentes Scènes. Les Scènes les plus récurrentes seront bien évidemment les Scènes de Quotidien, à la charge des Sidekicks, dans lesquelles vous aurez tout le loisir d’explorer les relations entre les personnages.</p>
<p>Durant toute la partie, la mécanique principale est appelée le&nbsp;<strong>Don de Remembrance</strong>. C’est un petit bout de papier que mon personnage peut offrir à un autre si la Scène qui a été jouée nous a rapprochés, nous a émus ou a été forte en émotions. On note alors en une phrase l’essence de la Scène avant de faire le don. Plus le Héros a de Remembrances, plus il sera en mesure d’affronter l’Antagoniste. Mais plus un Sidekick a donné ou reçu de Remembrances, plus il sera exposé aux agissements du Vilain. Ainsi, les Remembrances auront d’autant plus de poids qu’ils sont dangereux pour les personnages.
</p>
<p>Très concrètement, lorsqu’il y a un Conflit, on lance autant de dés que le nombre de Remembrances échangés et on compte les Réussites (5 ou 6 sur 1d6) : le Héros doit faire un maximum de Réussites tandis que les Sidekicks sont blessés s’ils ne font pas de Réussites.
</p>
<h1>La gamme</h1>
<p>L’essentiel de&nbsp;<em>Héros d’Argile</em>&nbsp;comprend 3 livres et un set de cartes à jouer :
</p>
<ul><li>Le&nbsp;<strong>Livre 1</strong>&nbsp;contient tout ce dont vous avez besoin pour jouer : les règles de base et un setting pré-construit. (68 pages, couleur, format comic book, couverture souple)
</li><li>Le&nbsp;<strong>Livre 2</strong>&nbsp;contient les règles avancées, notamment pour construire vos propres settings et utiliser les cartes. (76 pages, couleur, format comic book, couverture souple)
</li><li>Le&nbsp;<strong>Livre 3</strong>&nbsp;contient une séries de cinq settings supplémentaires ainsi que toutes des aides de jeu détachables.&nbsp;
</li><li>Le&nbsp;<strong>jeu de cartes</strong>&nbsp;à jouer propose 55 cartes en couleur au format tarot représentant des illustrations de personnages et des entrées aléatoires pour vos settings.</li></ul>
<h4>Nous proposons deux versions du jeu à télécharger : une version standard haute résolution et une version basse résolution pour les connexions moins solides.</h4>
<p><em></em></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMwODg2MC83NjEzMTY2LmpwZw==/original/BBWj%2Bj.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwODg2MC83NjEzMTYyLmpwZw==/original/ui4mXK.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwODg2MC83NjEzMTYxLmpwZw==/original/fGGLJ1.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwODg2MC83NjEzMTYwLnBuZw==/original/EbypZR.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwODg2MC83NjEzMzc4LmpwZw==/original/RBr1Vo.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwODg2MC83NjEzMzc3LmpwZw==/original/4cvKAz.jpg]]
<p>People are vanishing and monsters are appearing more often.&nbsp;<br></p><p>It's time to find out why!<br>At least that was your plan but you fell victim yourself and are now on a quest to both cure yourself and find the mysterious figure inflicting these curses!</p>
<p>Hexed is a short game you can download for Windows. (I wish I could make it available everywhere but MV's deployment is questionable at the best of times, much less when you can't test it)<br>Initially I&nbsp;made it so I could show maps to a friend for them to use as they like but I liked the example story so much I just had to make it a full fledged title.</p>
<p>This is not for children as it contains themes of extreme violence, strong language and distressing situations.<br></p>
<p>The game is expected to take 3 to 5 hours for you to complete depending on your play style and difficulty.<br>ゲームは5時間続きます。<br>5小时的游戏时间。(5小時的遊戲時間。)</p>
<p>Currently only available in English.<br>少し日本語。<br>极其有限的中文。(極其有限的中文)<span></span></p>
<p>If you wish to stream it, use this category:&nbsp;<a href="https://www.twitch.tv/directory/game/Hexed" rel="nofollow noopener" referrerpolicy="origin">https://www.twitch.tv/directory/game/Hexed</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTM0NzY5LzY0ODI2MTEucG5n/original/gd2bev.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTM0NzY5LzY0ODA3MzMucG5n/original/9b2DNG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTM0NzY5LzY0ODA4MTIucG5n/original/oIohA4.png]]
<p><em>Hi [NAME], I'm Dad was selected to be part of Tiny Library, a collection of 50 business card games, now on <a href="https://www.kickstarter.com/projects/longtailgames/tiny-library-0" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Kickstarter</a>!</em><br></p>
<p>Hi [NAME], I'm Dad was made&nbsp;for the <a href="https://itch.io/jam/pleasurecardrpg" target="_blank">Pleasure-Not-Business Card RPG Jam</a>. It's a small and simple game that helps show you how to be a good dad or dad-friend. And it all fits on a business card!</p>
<p>All the text is in the screenshots, there is nothing extra in the PDF. If you can, I'd love if you could chuck a dollar or two my way to support me continuing to make games, otherwise please, please take a Community Copy. I will always make sure there are CCs of this game.</p>
<p>I hope you have fun playing this game! Stay safe everyone.</p>
<p>Here's a <a href="http://www.purplephoenixgames.com/tiny-library-preview/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">review</a> by <a href="https://www.purplephoenixgames.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Purple Phoenix Games</a>:</p>
<p><img src="https://img.itch.zone/aW1nLzY4NDU5NDUuanBn/original/mjsPZ6.jpg" loading="lazy"><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTUyNzk4LzY4NDU5MzAuanBn/original/PmM1BX.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTUyNzk4LzU0MDE1MDAuanBn/original/jVZYFl.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTUyNzk4LzU0MjMzNTUuanBn/original/xAmP1y.jpg]]
<p>Search for hidden folks in hand-drawn, interactive, miniature landscapes. Unfurl tent flaps, cut through bushes, slam doors, and poke some crocodiles! Rooooaaaarrrr!!!!!</p>
<p>A strip of targets shows you what to look for. Click on a target for a hint, and find enough to unlock the next area.</p>
<h3>Featuring...</h3>
<p>
- 32 hand-drawn areas.<br>
- 300+ targets to find.<br>
- 2000+ mouth-originated sound effects.<br>
- 500+ unique interactions.<br>
- 3 color modes: normal, sepia, and night mode.<br>
- 22 languages (translated by the community).<br>
- supports mouse and keyboard, controller, and touch input.
</p>
<h3>Awards &amp; recognition</h3>
<p>
- <em>iPad Game Of the Year 2017</em> on the App Store.<br>
- <em>Best Game</em> at the BIG Indie Pitch in San Francisco.<br>
- <em>Best Game for Kids and Teenagers</em> at Anifilm.<br>
- <em>Jury's Honorable Mention Winner</em> at IMGA.<br>
- <a href="https://hiddenfolks.com/press#awards" target="_blank" rel="nofollow noopener" referrerpolicy="origin">6 award nominations</a> at shows like <em>The Game Awards</em>,&nbsp;<em>Game Developer Choice Awards</em>, and&nbsp;<em>Google Play's Indie Game Contest</em>.<br>
- featured in&nbsp;<a href="https://hiddenfolks.com/press#awards" target="_blank" rel="nofollow noopener" referrerpolicy="origin">10&nbsp;Best of 2017 lists</a>, including ones by IGN, The Verge, Engadget, and TouchArcade!<br>
- featured at <a href="https://hiddenfolks.com/press#awards" target="_blank" rel="nofollow noopener" referrerpolicy="origin">10+ shows</a>&nbsp;including the&nbsp;Indie MEGABOOTH, Day of the Devs, and the Indie Arena Booth.</p>
<h3>Mouth sounds pack</h3>
<p>We packed some of the tssks, bloops, and roars from the game for you to buy and use for whatever non-commercial reason:&nbsp;<a href="https://adriaan.itch.io/hidden-folks-mouth-sounds" target="_blank">Mouth Sounds Pack</a>.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/kYw_tw__7ow" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzMzNTUyLzE2NTYzNDkucG5n/original/c43XE4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzMzNTUyLzE2NTYzNTAucG5n/original/9UmFQi.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzMzNTUyLzE2NTYzNTIucG5n/original/L%2F0jj3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzMzNTUyLzE2NTYzNTQucG5n/original/%2F2H4c1.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzMzNTUyLzE2NTYzNTMucG5n/original/Ddunuy.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzMzNTUyLzE2NTYzNTUucG5n/original/Ac4l%2FT.png]]
<p><em>Hiding Spot</em>&nbsp;is difficult puzzle game about isolating yourself by Corey Martin, designer of&nbsp;<a href="https://toboggan.itch.io/pipe-push-paradise" target="_blank">Pipe Push Paradise</a><em></em>. It's a 3D grid-based game with a simple goal - build a safe place, huddle up and get cozy.&nbsp;<br><img src="https://img.itch.zone/aW1nLzE1MzQ4NzUucG5n/original/xCFsjP.png" style="color: inherit" loading="lazy"></p>
<p><strong>Things you can do in&nbsp;<em>Hiding Spot</em>:</strong></p>
<ul><li>Cope your way through dozens of elegant puzzles</li><li>Push and pull your furniture around</li><li>Manage your anxiety</li><li>Make a judgment call about whether you're depressed or just in need of some alone time</li></ul>
<p>Features a relaxing ambient synth score and minimalist voxel art.</p>
<p>Based on a short game originally made for Ludum Dare 42:<br><a href="https://toboggan.itch.io/hiding-spot-ld-jam-version">https://toboggan.itch.io/hiding-spot-ld-jam-version</a></p>
<p>p.s. purchase includes Steam Key. :)</p>
<p><strong>Contact:</strong> <a href="mailto:corey@toboggan.work" rel="nofollow noopener" referrerpolicy="origin">corey@toboggan.work</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/I8Lmmdye-AY" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzEyMzEyLzE1MzQ4NzYuanBn/original/3THjPw.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzEyMzEyLzE1MzQ4NTYuanBn/original/QgDN6h.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzEyMzEyLzE1MzQ4NTkuanBn/original/R69Dq6.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzEyMzEyLzE1MzQ4NTcuanBn/original/gTDIec.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzEyMzEyLzE1MzQ4NjEuanBn/original/o6pOLM.jpg]]
<h2>HIGHWAY BLOSSOMS REMASTERED</h2>
<h2>The update some of you asked for</h2>
<p>Highway Blossoms: Remastered is the new definitive romance treasure hunt road trip experience. Most importantly, it's now fully voiced in English by a talented cast of actors. We've also remastered the soundtrack for a better listening experience, touched up the art for a better viewing experience, and added a Chinese translation for a better Chinese reading experience.</p>
<p><br></p>
<figure><img src="http://cdn.akamai.steamstatic.com/steam/apps/451760/extras/SD_amber_marina_aboutthisgame.png?t=1466190056" loading="lazy"></figure>
<p>Highway Blossoms is a short <em>yuri </em>(lesbian) story set in the American Southwest. After an old gold rush miner's journal is discovered, supposedly detailing where he hid parts of his stash, a nationwide craze begins as would-be prospectors try to solve its clues and strike it rich.</p>
<p>Amber couldn't care less. Wandering the desert in a recently-inherited motorhome, she mourns the loss of her grandfather - indifferent and unaware of the hunt happening around her. It's not until she meets Marina, a young hitchhiker lost in New Mexico that the girls get swept up in the rush. </p>
<figure><br><br><img src="http://cdn.akamai.steamstatic.com/steam/apps/451760/extras/SD_tess_textheader.png?t=1466190056" loading="lazy"></figure>
<ul><li>At least tens of words, maybe even hundreds. Although the last word count puts it around 90,000, so expect 6 or so hours of reading.</li><li>Grand, hand-painted vistas of actual landmarks in the western United States, all in glorious 1080p detail. </li><li>A huge soundtrack featuring the works of Smoke Thief, Jake Abernathie, Able Kirby, and other friends. Sounds right at home on your in-dash cassette tape player. </li><li>Accessibility options for days, including the ability to skip through everything in less than five minutes. But who would wanna do that?</li><li>Very serious additional game modes</li></ul>
<h2>Highway Blossoms:&nbsp;Next Exit - DLC Released!</h2>
<p><a href="https://vnstudioelan.itch.io/highway-blossoms-next-exit"><img src="https://img.itch.zone/aW1nLzQxOTI2MjIucG5n/original/wlSmcL.png" loading="lazy"></a></p>
<p>Return to Las Vegas with Amber and Marina in this new&nbsp;<em>Highway Blossoms</em>&nbsp;story! A couple months after the events of the first game, the two girls return to the desert city for an alien-themed convention and to see Tess for her birthday. They also end up reuniting with Cassi, the candy shop girl, who's determined to start following her own dreams.</p>
<ul><li>Brand new story and scenario with multiple viewpoints. Some sections follow Amber and Marina, while some sections follow Tess. Additionally, there are certain parts where you can choose to read from Amber or Marina's point of view.</li></ul>
<p><img src="https://img.itch.zone/aW1nLzQxNjQwMzQuZ2lm/original/g2DWMY.gif" style="max-width: 100%; border: 0px" loading="lazy"></p>
<ul><li>New character expressions and outfits, as well as gorgeous new CG's and item cut-ins</li><li>Full voice acting featuring all the original cast</li><li>Several new musical tracks from a variety of composers</li><li>Cassi</li></ul>
<p><span></span><a href="https://vnstudioelan.itch.io/highway-blossoms-next-exit">https://vnstudioelan.itch.io/highway-blossoms-next-exit</a><span></span></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzM0MzkvNDI5ODgyMS5qcGc=/original/L0t2fO.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzM0MzkvNDI5ODgxOS5qcGc=/original/BOY9mM.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzM0MzkvMzM4OTM0LmpwZw==/original/uKUq14.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzM0MzkvNDI5ODgyMi5qcGc=/original/tteOIK.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzM0MzkvNDI5ODgyMC5qcGc=/original/zedV3W.jpg]]
!![[All games]]

!!![[All games (sorted by rating)]]

!!![[Windows]]

!!![[Android]]

!!![[Linux]]

!!![[macOS]]

!!![[HTML5]]

!!![[Filter by rating]]
<h2>Reviews:</h2>
<p>
	<em>8/10</em> - <em>"A sophisticated, horrifying narrative experiment."</em><br>
	<span class="">— <a href="http://www.theverge.com/gaming/2012/7/4/3121102/home-review" target="_blank" rel="nofollow noopener" referrerpolicy="origin">The Verge</a></span><span></span>
</p>
<p>
	<em>8/10</em> - <em>"A game everyone should play."</em><br>
	<span class="">— <a href="http://www.gamestm.co.uk/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">GamesTM Magazine</a></span><span></span><br>
</p>
<p>
	<em>4.5/5</em> - <em>"Thought-provoking, unsettling, and original."</em><br>
	<span class="">— <a href="http://toucharcade.com/2013/07/01/home-review-exploring-the-horror-of-perception/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">TouchArcade</a></span><span></span><br>
</p>
<hr>
<h2>About the Game:</h2>
<p>
	Home is a unique horror adventure set in a beautifully-realized pixel world. It's a murder mystery with a twist—because you decide what ultimately happens.
</p>
<p>
	Awakened by an oncoming storm, you open your eyes to discover yourself in a strange, dark room—tucked away in a house that's not yours.<br>
	<br>
	As you play the game, it changes—subtly, almost imperceptibly—to reflect your perspective. It's a horror game unlike any other, and as you'll discover, its truths are entirely subjective.<span></span>
</p>
<hr>
<h2>About the Developer:</h2>
<p>
	Benjamin Rivers (Inc.) develops original, narrative-focused games for consoles, PC, Mac and iOS. Learn more at <a href="http://www.benjaminrivers.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">benjaminrivers.com</a><span></span>
</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/mGR3ggaWnS4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTIyMjMvNDMyOTk5LnBuZw==/original/msyA%2Bj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIyMjMvNDMzMDEyLnBuZw==/original/5jH%2Fml.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIyMjMvNDMzMDAwLnBuZw==/original/g8uJ1y.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIyMjMvNDMzMDAxLnBuZw==/original/yzI%2BLX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIyMjMvNDMzMDAyLnBuZw==/original/a1an2O.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIyMjMvNDMzMDU2LnBuZw==/original/VejCDU.png]]
<p>This is a collection of several training materials from&nbsp;Chris DeLeon /&nbsp;Gamkedo LLC,&nbsp;normally part of the resources&nbsp;included with <a href="https://HomeTeamGameDev.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">HomeTeam GameDev</a> membership,&nbsp;now available&nbsp;together here on itch as a set at 35%-off (materials included are sold&nbsp;separately on other platforms for a combined value of $180).</p>
<p>Courses (note: <em>not part of this collection</em>) based directly on this material have been taken by more than 300,000 people on Udemy.</p>
<p>Though only 2 of these included resources focus on programming,&nbsp;included source code is&nbsp;platform independent (works on Windows, Mac, Linux, or mobile) since it runs in-browser using&nbsp;built-in functionality. The non-code material is applicable regardless of engine or platform choice.<br></p>
<p>This collection includes the&nbsp;full versions of...</p>
<p>• Hands-On Intro to Game Programming textbook: 559 page PDF, step-by-step walkthrough with example&nbsp;source code in plain browser JavaScript for 6 types of retro games, 100+ exercises, no special software or prior background is required - used to pick up general pre/non-engine&nbsp;gameplay programming fundamentals even if later planning to use Unity, Godot, Unreal, etc.</p>
<p>• Videogame Developer's Strategy Guide: 448 page PDF, curated collection of more than 50 of the top&nbsp;articles from 5 years of weekly writing&nbsp;for new game makers&nbsp;(sections include getting started, education, programming, motivation, game design, level creation, team projects, and industry)</p>
<p>•&nbsp;From Tutorials to Original Games: 31 page PDF exercises booklet, with tips on navigating team projects, planning&nbsp;milestones for long-term schedules, and practicing gameplay coding fundamentals, based on methods tested and iterated across several indie and student gamedev communities since 2004</p>
<p>• Self-Command: 4 hour 54 min. audiobook (as&nbsp;DRM-free M4B and per-chapter MP3s) / 123 page transcript, productivity strategies combining simple techniques and perspectives for better&nbsp;staying on task<br></p>
<p>• Self-Calm: 7&nbsp;hour 11 min. audiobook&nbsp;(as DRM-free&nbsp;M4B and per-chapter MP3s) / 251 page ebook, modern adaptation based closely on&nbsp;public domain translations of Meditations by Marcus Aurelius (practical Stoic philosophy)<br></p>
<p>• (Bonus) Why Make&nbsp;Games and How to Start: infographic flyer, breaking down 9 tips on how to make games for personal development and enrichment</p>
<p>
</p>
<p><strong>This package is for downloads-only, and&nbsp;does not include troubleshooting support or HomeTeam GameDev membership for custom training.</strong> Materials later made available to HomeTeam members will not be added to this set.</p>
<p><br></p>
<p>Responses to the 2 included audiobooks from professional game developers:</p>
<p><br></p>
<p><em>"I love creative work. I'll start making something, maybe divert briefly to an exciting adjacent opportunity, perhaps explore and research it a little, think about how to fold it into the rest of the work, and in a few hours I've redesigned my project. And that's great! This is how projects improve. But, it's not how they get finished. When I want to finish something I need it to keep moving forward, so I have to commit to completing the occasional task. I've found Chris' technique excellent for this."<br></em></p>
<p>-Farbs</p>
<p><br></p>
<p>
</p>
<p><em>"As a chronic scatterbrain I cannot TELL you how much it has improved my productivity... If you're very easily distracted like me and staying on task (especially during these hell times) has been a challenge, I super recommend it! ...absolutely check out his books at Self-Command.com. TONS of stuff on how to reprogram your mindset to be more productive and kinder to yourself. I don't think I know a creative professional who doesn't struggle with productivity issues and/or negative self talk, and Chris' work is a huge resource for doing better work and feeling better about it. Can't recommend it enough!"</em></p>
<p>-@RyanIkeComposer</p>
<p><br></p>
<p><em>"If you have any to-do list system, whether it be a bullet journal, a to-do list app, Trello, Asana, or anything else, you know how easy it is to get overwhelmed when looking at it. Heck, you may even have a large whiteboard right in front of you, chock full of tasks that are constantly staring at you, but never get done. [Self-Command] forces you to distill what you're working on down to one specific thing that you're currently doing. That's all you need to think about, which means your focus skyrockets and you get way more done in less time. And I'll let Chris' excellent book explain them in more detail. There's plenty more nuance to this system, and he explains it perfectly (and he's a great audio book narrator too!)... Get Chris' books."</em></p>
<p>-Akash Thakkar</p>
<p><br></p>
<p>
</p>
<p><em>"I've been using Chris's Self-Command method all year, it works... I'm a pretty organised person with todo lists and spreadsheets etc. I need to be in order to run my business effectively. But [the] Self-Command method helped me to take things to a new level in a difficult year (2020) and beyond. I recommend it... This is very easy to get started."</em></p>
<p>-Jake Birkett</p>
<p><br></p>
<p>
</p>
<p><em>"Self-Calm lives up to its name. It takes on stoic concepts in clear concise language which I found was a helpful and centering way to start my days. For someone who is familiar with other modern stoic voices like Ryan Holiday but unfamiliar with the original text, this book helped flesh out my knowledge of the topic without feeling bogged down by historical language. Self-Calm helps give perspective to the common trials of life."</em></p>
<p>-Erin McCarty</p>
<p><br></p>
<p><em>"I started my second listen through of Self-Calm. I can honestly say that the thoughts it provoked have contributed to a marked improvement in life as to how I cope with stress. Thank you for making this."
</em></p>
<p>-Dmitri Roujan</p>

[img width=500 [https://img.itch.zone/aW1nLzYxNTQ1MTMucG5n/original/rwqKjW.png]]
<p class="text-center"><iframe width="560" height="315" src="https://www.youtube.com/embed/km75bFV6zxA" frameborder="0" allowfullscreen=""></iframe></p>
<p class="text-center"><em><strong>- The story -<br></strong></em>Homunculus Hotel is a visual novel composed of 6 stories.<br>In a mysterious hotel in which the rooms show the guests' dreams,<br>Isabelle is a young woman who spends her days listening to the guests' experiences,<br>helping them in understanding themselves.<br>Unable to see her own dream, though, in a moment of distress<br>she tries to help herself by remembering the most significant moments<br>she has experienced in the Homunculus Hotel...</p>
<p class="text-center">- <em><strong>The Hotel</strong></em> -<br>Here at the <em>Homunculus Hotel</em><br>every room is a story<br>and we help <em>lost spirits</em> find their way through<br>their <em>past dreams</em>.<br>We have a special assistance program<br>specifically developed for this purpose:</p>
<p class="text-center">Dreams? Memories? Unspoken desires?<br>Unlike the world out there, <br>at Homunculus Hotel nothing is taboo<br>and <em>everyone is accepted</em>.</p>
<p class="text-center">- <em><strong>What we offer</strong></em> -<br>A special room that will show your dreams, fears or hidden desires<br>A helper that will listen to you and take your loneliness away<br>A hand-picked selection of tracks<br>Many people to meet and connections to make<br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzgzMjM2MzkuZ2lm/original/4bcwaY.gif" loading="lazy"><br></p>
<p class="text-center">- <em><strong>Soundscape of Dreams</strong></em> -<br>We are very selective when it comes to music,<br>and we want to offer you the best of the best we can have.<br>That's why we have a special music program that covers the entire hotel<br>with tracks made by<br><a href="https://channelofdreams.bandcamp.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><em>Channel of Dreams</em></a><br><em><a href="https://diptheband.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">dip</a><br></em><a href="https://eikoishibashi.net/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Eiko Ishibashi</a></p>
<p class="text-center">- <em><strong>Brought to you by</strong></em>&nbsp;-<br><em><a href="https://twitter.com/Rinkaku382" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Rinkaku</a> </em>- Director, Writer, Programmer, Artist<br><em><a href="https://www.instagram.com/ventitresei/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Emma Martinuz</a></em> - Animator<br><em><a href="https://www.instagram.com/gaiapapoila/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Gaia Papoila</a></em> - Character Artist<br><em><a href="https://www.instagram.com/elle.s_art" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Lidia Santoemma</a></em> - UI and Background Artist, Writer</p>
<h3 class="text-center"><a href="https://twitter.com/TSoletude" rel="nofollow noopener" referrerpolicy="origin">Follow Team SolEtude on Twitter!<br><br><img src="https://img.itch.zone/aW1nLzcwNTY0NDQuZ2lm/original/%2BSqUyK.gif" loading="lazy"></a></h3>

<iframe width="720" height="450" src="https://www.youtube.com/embed/km75bFV6zxA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTY0MjAyLzcwNTU2OTMucG5n/original/gRHyn3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTY0MjAyLzcwNTU2OTUucG5n/original/d9M%2B%2By.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTY0MjAyLzcwNTU2OTgucG5n/original/z8Xaw5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTY0MjAyLzcwNTU2OTcucG5n/original/7qiGif.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTY0MjAyLzcwNTU2OTYucG5n/original/jS0rXK.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTY0MjAyLzcwNTU3MDcuanBn/original/DTdhjE.jpg]]
<h1>Hope is Not a Plan</h1>
<p>A solo journaling game in which you will document your attempts to deliver a very complicated engineering project on time and under budget.&nbsp; You hope for success, but you will most likely fail, damage your reputation, and lose your job. So it goes.<br></p>
<h3>A Game of Conflicting Responsibilities</h3>
<p>Your company has entrusted you with millions of dollars of other people's money. They expect you to please the client and turn a profit at the same time. On paper, it looks pretty straightforward. However, your client, your team, your company leadership, and your friends and family also have needs which&nbsp;complicate the execution of the project. You might even occasionally want to take care of yourself.&nbsp;Good luck!</p>
<h4>Content Warning</h4>
<p>Your character in this journaling game will never be at risk of physical harm. However, <em>Hope is not a Plan</em> includes themes of stress, professional disappointment, failure to meet obligations to friends and family, getting blamed for things you have no control over, and job loss.</p>
<h2>FAQ</h2>
<h3>What is a "solo journaling game"?</h3>
<p>This is a role-playing game, but you play by yourself, not with a group at a table. The game will present you with various situations and you write about how you think the story unfolds. Your character is a project manager for a complex engineering project - but it doesn't have to be you. The game has some explanations about the various types of engineering and how they fit together in big projects.&nbsp;Feel free to make up the parts you don't know.&nbsp;</p>
<h3>How do you play?</h3>
<p>You use a deck of cards, a 6-sided die, and a tumbling block tower (the game Jenga™ is an example) as your tools for the game. You'll also need some markers to track milestones (coins, poker chips, something like that) and a way to keep your notes. (If you don't have a tumbling block tower game available, don't worry, there are alternates suggested.)
</p>
<p>The tower of blocks represents your mental capacity to handle stress and keep all the tasks in your project straight. The 6-sided die tells you how many cards to draw for a turn. The cards point to the writing prompts in the book, which describe events that come up during your project. Many of the prompts say to "pull from the tower" which means pull a block from the lower part of your tower and balance it on top. Some die rolls will let you achieve milestones in your project. If the tower falls before you deliver the project, you lose.
</p>
<p>"If the tower falls, you lose" is the key game mechanic for the <em>Wretched &amp; Alone</em>&nbsp;games. I've added a New Game+ mode, where each time you start again, you can remove troublesome cards from the deck, so with experience&nbsp;it gets easier to win, just like real project management.
</p>
<h3>Where did this come from?</h3>
<p>This game leverages the <em><a href="https://sealedlibrary.itch.io/wretched-alone-srd" target="_blank">Wretched &amp; Alone SRD</a></em> with much gratitude.&nbsp;It was created for the&nbsp;<a href="https://itch.io/jam/wretched-jam" target="_blank" style="font-size: inherit">#WretchedJam</a>, hosted by @pangalactic and @sealedlibrary in 2020.&nbsp;Portions of the content are based on the&nbsp;<a href="https://litzabronwyn.itch.io/make-a-wretched-game" target="_blank" style="font-size: inherit"><em>Make a Wretched Game</em></a><u><em>&nbsp;</em></u>template by Litza Bronwyn, and are used with permission.</p>
<h3>Can I buy this in print?</h3>
<p>Yes! Limited supplies are available in many different time zones.</p>
<ul><li><a href="https://monkeyspawgames.com/collections/new-arrivals/products/hope-is-not-a-plan" target="_blank" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">Monkey's Paw Games</a><span style="color: inherit; font-size: inherit"></span><span style="color: inherit; font-size: inherit"> has the printed zine (Canada)</span></li><li><a href="https://loottheroom.uk/product/hope-is-not-a-plan-print" rel="nofollow noopener" referrerpolicy="origin">Loot the Room</a> has the printed zine (UK)</li><li><a href="https://thesecretcatshop.co.uk/products/hope-is-not-a-plan" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Secret Cat Shop</a> has the printed zine (UK)</li><li><a href="https://www.exaltedfuneral.com/collections/neoteric-codices/products/hope-is-not-a-plan" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Exalted Funeral</a>&nbsp;has print and PDF available (US and beyond)</li><li><a href="https://www.indiepressrevolution.com/xcart/Hope-Is-Not-a-Plan-Print-PDF.html" rel="nofollow noopener" referrerpolicy="origin">Indie Press Revolution</a> has print and PDF available for individual sales or at distribution prices for game stores</li></ul>
<h3>How does it play out?</h3>
<ul><li>Gaze upon the spiraling downfall of a dungeon enchanting team working to develop an elaborate trap for their client, an unforgiving dark lord, in this <a href="https://critical-hits.com/blog/2022/01/24/hope-in-the-dark-heart-of-evil-is-not-a-plan/" rel="nofollow noopener" referrerpolicy="origin">actual play on the Critical Hits blog</a>. (Well worth your time to read!)</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjU0OTM1LzU2MDc2OTMucG5n/original/ao2G9O.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjU0OTM1LzU2MDc3MjAucG5n/original/e5bHgC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjU0OTM1LzU2MDc3MTQucG5n/original/fQwsH7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjU0OTM1LzU2MDc2OTYucG5n/original/em740u.png]]
<p><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1395830/extras/About_Text__2MB_.gif?t=1644922566" loading="lazy">Hoplegs is a different kind of platform where you control <br>your character using 4 different legs. Looks easy? <br>Each of the four gamepad buttons where you usually&nbsp;jump<br>interact, crouch and change weapons are now&nbsp;your legs!&nbsp;<br>Master the unique controls, and navigate&nbsp;through loads <br>of&nbsp;developer and community-created levels.<br></p>
<p class="text-center">o&nbsp;&nbsp;o&nbsp;&nbsp;O&nbsp;&nbsp;o&nbsp;&nbsp;o&nbsp;&nbsp;o&nbsp; 0&nbsp; o&nbsp;&nbsp;o&nbsp;&nbsp;o&nbsp; O&nbsp; o&nbsp;&nbsp;o<br><br></p>
<p class="text-center"><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1395830/extras/LvlEdit_Text__1MB_.gif?t=1644922566" loading="lazy">Love to create?&nbsp;<br>Let your imagination run wild&nbsp;with our level editor!<br>Use the interactive switches&nbsp;that control almost anything</p>
<p class="text-center">- - -<br><br><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1395830/extras/Action5Fashion_Text__1MB_.gif?t=1644922566" loading="lazy">Customise your looksKeep your eyes open <br>for rare &nbsp;items in secret hidden areas! <br>Can you find them all?</p>
<p class="text-center">-&nbsp;- -<br><br><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1395830/extras/CoUp_Text__1MB_.gif?t=1644922566" loading="lazy">Tired of adventuring on your own? <br>Bring a friend along for the adventure &lt;/3</p>
<p class="text-center">-&nbsp;- -<br><br><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/1395830/extras/PvPvP_Text__600Kb_.gif?t=1644922566" loading="lazy">Take on up to 3 friends in the <br>king-of-the-hill-style versus mode.</p>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/zGSyXjbtEh4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNjUwOS84MzE0MDM1LmpwZw==/original/Fq%2Fhx2.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNjUwOS84MzE0MDM3LmpwZw==/original/rzqwIF.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNjUwOS84MzE0MDMzLmpwZw==/original/r6ofLE.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNjUwOS84MzE0MDM2LmpwZw==/original/185yGR.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNjUwOS84MzE0MDM0LmpwZw==/original/MRBelf.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNjUwOS84MzE0MDMyLmpwZw==/original/5oD13l.jpg]]
<p></p>
<p><span class="">This is not a game of detectives. <br>This is a game English tropes and absurdities<br></span>where the crimes are made up, the suspects bizarre<br>and the conclusions are random.</p>
<p>Created for the Tea Jam, How Peculiar is inspired by 60s English TV dramas like The Avengers, The Prisoner and arguably Dr Who, and whimsical English detective series like Miss Marple, Midsomer Murders and Death in Paradise.</p>
<p>Fifth in the Comedy Evening Games line, How Peculiar is written for 3-6 players with optional Story Guide.</p>
<p></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQyMzQ3OS84Mjk1MDUzLnBuZw==/original/ZLWTF%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyMzQ3OS84Mjk1MDU0LnBuZw==/original/6rV31O.png]]
<<list-links "[tag[HTML5]sort[title]]">>
<h3>5 pixel fonts with cyrillic support!</h3>
<ul><li>Compass</li><li>Hope</li><li>Redeem</li><li>Ruler</li><li>Sins</li></ul>
<hr>
<h3>Character set</h3>
<p><em>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz<br>0123456789.,;:?!-_~#"'&amp;()[]{}^|`/\@°+=*%€$£¢&lt;&gt;©®ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØŒÙÚÛÜÝÞ<br>àáâãäåæçèéêëìíîïðñòóôõöøœùúûüýþßÿ¿¡<br>АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ<br>абвгдеёжзийклмнопрстуфхцчшщъыьэюя</em></p>
<hr>
<h3>Support me on Patreon</h3>
<p>You can find MANY more fonts on my <a href="http://www.patreon.com/somepx" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong>Patreon</strong></a> page!<br>
<br>
<a href="https://www.patreon.com/bePatron?u=135175" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzE0ODUxNzcucG5n/original/qrm7wf.png" loading="lazy"></a>
</p>
<hr>
<p>Fonts are available in <strong>.png, .ttf, .eot, .otf, .svg </strong>and<strong> .woff</strong></p>
<p>Fonts by&nbsp;<strong><a href="https://twitter.com/somepx" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Eeve Somepx</a></strong>. They can be used in both personal and commercial projects, credits aren't necessary but they're really appreciated!</p>
<p><strong><a href="http://www.palmentieri.it/somepx/license.txt" target="_blank" rel="nofollow noopener" referrerpolicy="origin">License</a></strong><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDE3OTg2LzIwODA0NDEucG5n/original/TlbfTn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDE3OTg2LzIwODA0NDMucG5n/original/qy9TEG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDE3OTg2LzIwODA0NDAucG5n/original/z7AJW3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDE3OTg2LzIwODA0NDIucG5n/original/8hcmBg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDE3OTg2LzI5NzYzMTEucG5n/original/3fjUyG.png]]
<h3>5 pixel fonts with cyrillic support!</h3>
<ul><li>Awe Mono</li><li>Broken</li><li>Improv</li><li>Kobold</li><li>Softball</li></ul>
<hr>
<h3>Character set</h3>
<p><em>ABCDEFGHIJKLMNOPQRSTUVWXYZ<br>
abcdefghijklmnopqrstuvwxyz<br>
0123456789.,;:?!-_~#"'&amp;()[<br>
]{}^|`/\@°+=*%€$£¢&lt;&gt;©®ÀÁÂÃ<br>
ÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØŒÙÚÛÜÝ<br>
ÞẞŸĄĆĘŁŃŚŹŻĞİŞàáâãäåæçèéêë<br>
ìíîïðñòóôõöøœùúûüýþßÿąćęłń<br>
śźżğış¿¡АБВГДЕЁЖЗИЙКЛМНОПР<br>
СТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзий<br>
клмнопрстуфхцчшщъыьэюя</em></p>
<hr>
<h3>Support me on Patreon</h3>
<p>You can find MANY more fonts on my <a href="http://www.patreon.com/somepx" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong>Patreon</strong></a> page!<br>
<br>
<a href="https://www.patreon.com/bePatron?u=135175" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzE0ODUxNzcucG5n/original/qrm7wf.png" loading="lazy"></a>
</p>
<hr>
<p>Fonts are available in <strong>.png, .ttf, .eot, .otf, .svg </strong>and<strong> .woff</strong></p>
<p>Fonts by&nbsp;<strong><a href="https://twitter.com/somepx" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Eeve Somepx</a></strong>. They can be used in both personal and commercial projects, credits aren't necessary but they're really appreciated!</p>
<p><strong><a href="http://www.palmentieri.it/somepx/license.txt" target="_blank" rel="nofollow noopener" referrerpolicy="origin">License</a></strong><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzQ5NjkwLzQxODM4ODMucG5n/original/6xgE9d.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQ5NjkwLzQxODM4ODQucG5n/original/pCiTPI.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQ5NjkwLzQxODM4ODYucG5n/original/ZvoIZR.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQ5NjkwLzQxODM4ODUucG5n/original/HdThYQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQ5NjkwLzQxODM4ODcucG5n/original/gToxaw.png]]
<p><span></span></p>
<figure><strong><img src="https://img.itch.zone/aW1nLzEzNzQ5NzMucG5n/original/1fR9%2BQ.png" loading="lazy"></strong><br></figure>
<p><strong>Memlog Hunter.10/thmw1: </strong><em>‘Lost in space. Surrounded. Strange structures that build themselves – hive-like. And at their core, alien starcells... Must get home. Back to Hunter’s Moon. Must... survive! Am attacking now – full thrust – cannons locked in – FIRE!’ Little do you know what you face: over 180 levels of galactic mayhem. Hope you are a CLEVER psychoblaster – or else...'</em><br></p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzEzNzQ5NzUucG5n/original/lY84q%2B.png" loading="lazy"><br></p>
<p>Originally released in 1987, <em>Hunter's Moon </em>is a strategic shoot 'em up set in deep space. Beautifully presented and thoughtfully designed, the game became an instant classic thanks to its measured balance of strategic planning and psychotic blasting. Boasting one of the earliest uses of procedurally-generated content in a computer game, <em>Hunter's Moon </em>pushed the boundaries of the genre and helped redefine what a shoot 'em up could be.<br></p>
<p><em>Hunter’s Moon Remastered </em>is a fully remastered, overhauled, and updated version of the seminal C64 shoot ‘em up. The game has been remastered for C64 cartridge and boasts a host of amazing new features including over 50 new levels, 5 new star systems, new level types, new music, new playing modes, stunning intro and outro sequences, built-in level editor, and enhanced presentation including foreign language support.</p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzEzNzE3ODYucG5n/original/PunIo5.png" loading="lazy"><br></p>
<p>After flying your trusty ship <em>Hunter </em>too close to a black hole, you find yourself lost in space on the wrong side of the galaxy, surrounded by sprawling, hive-like cities. At the core of each city lie mysterious alien <strong>Starcells </strong>– these contain valuable navigational data and must be collected to plot a course back home.<br></p>
<p>The aim of each level is to blast through the hive and grab the Starcells, a task made more challenging by the invincible <strong>Worker </strong>cells which patrol the cities repairing any damage inflicted. These Workers also bring the hive's defenses to life, causing them to spew deadly spores that can only be resisted by using your ship's trusty <strong>Perma-Shields</strong>.</p>
<p>The game features over 180 levels spread across 21 star systems. When all the Starcells on a level have been collected you'll enter the <strong>Bonus Game </strong>where you can earn a Perma-Shield and an extra life. You must complete every level within each star system to advance to the next; however, should you manage to collect four flashing Starcells you'll automatically jump to the next system.</p>
<p>As you progress through the different star systems you'll encounter an array of diverse and challenging hive types, including <strong>Attackers </strong>that throw out deadly spores, <strong>Darkcells </strong>which are only visible on radar, <strong>Switchers </strong>that change direction without warning, <strong>Jumpgates </strong>which jump to random locations, and <strong>Blackouts </strong>which plunge the hives into darkness.</p>
<p>Do you have the dexterity, precision timing and psychopathic blasting skills to find your way home to <em>Hunter's Moon</em>...?</p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzEzNzE3ODgucG5n/original/Lrjij2.png" loading="lazy"><br></p>
<ul><li>Over <strong>180 </strong>levels spread across <strong>21 </strong>Star Systems
  </li><li>New level types including <strong>Jumpgates </strong>and <strong>Blackouts</strong>
  </li><li><strong>Trainer Version</strong> designed for novice players
  </li><li>All-new <strong>Random Mode</strong> to test seasoned veterans
  </li><li>Automatically save your game progress as you play</li><li>Stunning new <strong>intro </strong>and <strong>outro </strong>sequences
  </li><li><strong>New in-game music</strong> and <strong>enhanced parallax starfield</strong>
  </li><li>Built-in <strong>Level Editor</strong> to craft your own cunning creations
  </li><li><strong>Multi-language support</strong> for French, German, Italian, and Spanish
  </li><li><strong>Bonus: </strong>Original 1987 version also included in the game</li><li>Full&nbsp;<strong>PAL&nbsp;</strong>&amp;&nbsp;<strong>NTSC&nbsp;</strong>compatibility (Remastered Version only)</li><li>Bonus: Now includes a <strong>C64 Mini</strong> version of the game!</li></ul>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzEzNzE3ODkucG5n/original/aaO0SI.png" loading="lazy"><br></p>
<p class="text-center"><em>"One of the most original and imaginative<br>shoot 'em ups ever released for the 64."<br></em><em><strong>Commodore Format</strong></em></p>
<p class="text-center"><em>"I'm always a sucker for shoot 'em ups, especially when they're<br>as good-looking, innovative and as challenging as this."</em><br><em><strong>Zzap!64</strong></em></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzEzNzEyNjEucG5n/original/M9%2BgSm.png" loading="lazy"><br></p>
<p class="text-center"><em>"It's a blaster without equal: a beautifully-crafted<br>combination of puzzle game and pulsating action."</em><br><em><strong>Gordon Houghton, Lemon64</strong></em></p>
<p class="text-center"><em>"Head and shoulders above the masses<br></em><em>of shoot-'em-ups currently on the market."<br></em><strong><em>The Games Machine</em></strong></p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzEzNzE3OTAucG5n/original/d9jKVH.png" loading="lazy"><br></p>
<p class="text-center"><strong>MARTIN WALKER<br></strong>Design, code, graphics, and SFX</p>
<p class="text-center"><strong>MATT GRAY<br></strong>Game soundtrack</p>
<p class="text-center"><strong>DAN HOTOP<br></strong>Remastering and additional code</p>
<p class="text-center"><strong>ROBIN LEVY &amp;&nbsp;</strong><strong>MARTIN PIPER<br></strong>Cinematic sequences</p>
<p class="text-center"><strong>STE DAY<br></strong>Additional graphics</p>
<p class="text-center"><strong>ANDY ROBERTS<br></strong>Production &amp; inspirational input</p>
<p class="text-center"><span></span></p>
<p class="text-center"><strong>OLIVER FREY<br></strong>Cover artwork and illustrations</p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzEzNzE4NDMucG5n/original/2IjdZF.png" loading="lazy"><br></p>
<p>The downloadable C64 digital version is designed for use with a C64 emulator – it <em><strong>cannot </strong></em>be used with an <strong>EasyFlash </strong>cartridge, <strong>1541 Ultimate</strong>, or <strong>Turbo Chameleon</strong>. We recommend playing the game using <a href="https://sourceforge.net/projects/vice-emu/" rel="nofollow noopener" referrerpolicy="origin">VICE 3.1+</a>, a popular emulator compatible with Windows, Mac, and Linux.
  </p>
<p>Therefore, there are two downloadable versions, one containing the game files, the other containing the game files plus a version of the VICE emulator. Both versions include a simple .BAT file to make running the game much simpler. Please be sure to consult the README file for more information.</p>
<p><strong>Bonus: </strong><strong>The downloads section now includes a special version of the game created especially&nbsp;for the C64 Mini, along with a "CJM"&nbsp;configuration file. Note that <em>game saving is disabled in the C64 Mini version</em>, both during the game and within the level editor - it is therefore necessary to use the C64 Mini's built-in save functionality to save your game and your level designs. Again, please consult the README file for more information.</strong></p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzEzNzE3OTIucG5n/original/tP%2Bhoa.png" loading="lazy"><br></p>
<p>The cartridge version of <em>Hunter's Moon</em> Remastered includes a cartridge, game manual, cover art postcard, and Thalamus sticker.&nbsp; Status: Out of Stock!<br></p>
<p><img src="https://img.itch.zone/aW1nLzEzNzExNjgucG5n/original/%2BhbUYj.png" loading="lazy"><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjc5NzA0LzEzNjk1MDYucG5n/original/wbXJFf.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjc5NzA0LzEzNzE1NDMuZ2lm/original/2KwAkP.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjc5NzA0LzEzNjk1MDcucG5n/original/p6FKzy.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjc5NzA0LzEzNzE0MzIuZ2lm/original/bNkLAM.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjc5NzA0LzEzNjk1MDgucG5n/original/kN%2FTyr.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjc5NzA0LzEzNzE0MzMuZ2lm/original/Qsv3ls.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjc5NzA0LzEzNjk1MTAucG5n/original/vSX5SW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjc5NzA0LzEzNzE0MzguZ2lm/original/CQxUoc.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjc5NzA0LzEzNjk1MTEucG5n/original/foYYqU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjc5NzA0LzEzNzE0MzkuZ2lm/original/8d3%2BYD.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjc5NzA0LzEzNjk1MTMucG5n/original/6mLSJW.png]]
<iframe src="https://www.youtube-nocookie.com/embed/3yjHi8pZqnU" allowfullscreen="" width="560" height="315" frameborder="0"></iframe>
<p><br>The game contains all original 111 levels and attempts to have all the features of&nbsp;the original game, and even make it more engaging and fun to play by making it play more smoothly then the original. And by adding a level editor that allows you to share levels with your friends!<br><br><strong>Extra features</strong><br>Aside from the upgraded visuals, this version has some extra features compared to the original game.</p>
<ul><li>Level editor that allows you to create levels and share with friends</li><li>You can now save and load your progress during a level, so you don't have to start over from scratch. Even if you have exited the game you can continue where you left off.</li><li>You can slow down time, to make specific tricks easier to pull off.</li></ul>
<p><strong>What is the game about?</strong><br>For those who don't know what this game is based on, Supaplex used to be a popular Dos game that was developed in 1991 by mainly Philip Jespersen and Michael Stopp. It was a difficult but rewarding game. Many levels require you to think thoroughly before making any move.</p>
<p>The main character is called Murphy. His goal is to reach the exit of each level, in order to do this he must collect enough infotrons (atom like objects). However, in order to collect these objects you have to puzzle your way though levels where you have to think before you act. Making it a difficult but rewarding experience.<br></p>
<p><strong>Game Controls<br></strong><strong>Movement</strong> -&nbsp;WASD or Arrows<br><strong>Interact </strong>- Hold space and apply movement<br><strong>Drop floppy</strong> - Hold space for 3 seconds<br><strong>Escape</strong> - Quit session, menu or game<br><strong>Quick save </strong>-F4<br><strong>Quick load </strong>- F9</p>

<iframe width="720" height="450" src="https://www.youtube-nocookie.com/embed/3yjHi8pZqnU" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDUyOTIwLzYxNDk1ODAucG5n/original/JF4bTs.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDUyOTIwLzYxNDk1ODEucG5n/original/jrj1Q6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDUyOTIwLzYxNDk1ODIucG5n/original/O%2F1Ujw.png]]
<p class="text-center"><strong></strong></p>
<div class="text-center"><iframe style="width: 500px; height: 281px" src="https://www.youtube.com/embed/q2MmrpngoD8" allowfullscreen="" frameborder="0"></iframe></div>
<p class="text-center"><strong>Fly the best jet in the galaxy and demilitarize planets by blowing up their entire combined armed forces,- in front of a never-ending nova sunset.<br></strong></p>
<p class="text-center">
	<strong>Featuring:<br></strong></p>
<p class="text-center">
	<a href="http://imgur.com/Uh3ReFU" rel="nofollow noopener" referrerpolicy="origin"><img src="http://i.imgur.com/Uh3ReFU.gif" title="source: imgur.com" loading="lazy"></a>
</p>
<p class="text-center">
	<strong>Juicy Combat</strong>
</p>
<p class="text-center">
	<strong> </strong>Out-boost your enemies, shoot off their parts, use gravity to your advantage and hyperspace-dodge through projectiles and obstacles when things get too hairy.<br>
</p>
<p class="text-center">
	<strong><br>
	</strong>
</p>
<p class="text-center">
	<strong><br>
	</strong>
</p>
<p class="text-center">
	<a href="http://imgur.com/VyOrikM" rel="nofollow noopener" referrerpolicy="origin"><img src="http://i.imgur.com/VyOrikM.gif" title="source: imgur.com" loading="lazy"></a>
</p>
<p class="text-center">
	<strong>All The Loot</strong>
</p>
<p class="text-center">Make your jet stronger and stranger by gathering some of the 250+ currently available passive and active items. Use over 90 randomly modified weapons against your opponent, including aerial melee options like swords, whips and punches.</p>
<p class="text-center">
	<br>
</p>
<p class="text-center">
	<br>
</p>
<p class="text-center">
	<a href="http://imgur.com/DaMoEPs" rel="nofollow noopener" referrerpolicy="origin"><img src="http://i.imgur.com/DaMoEPs.gif" title="source: imgur.com" loading="lazy"></a>
</p>
<p class="text-center">
	<strong>Vicious Opposition<br>
	</strong>
</p>
<p class="text-center">Engage zone specific enemy types in air-to-air and air-to-ground combat. Confront 10 distinct bosses and try surviving beyond that in endless play. Master the base game, then push your piloting skills even further in 12 different challenge modes that can even be combined with another.</p>
<p class="text-center">
	<br>
</p>
<p class="text-center">
<a href="http://strasbourgfestival.com/" rel="nofollow noopener" referrerpolicy="origin"><img src="http://i.imgur.com/46HVpRA.png" loading="lazy"><br></a></p>
<p class="text-center"><br></p>
<p class="text-center">Featuring a full score by <a href="https://soundcloud.com/enuit_demotrax" rel="nofollow noopener" referrerpolicy="origin">ENUIT</a> and Ole Toensen.<br><a href="http://strasbourgfestival.com/" rel="nofollow noopener" referrerpolicy="origin"></a>
</p>
<iframe scrolling="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/playlists/522581232&amp;color=%231d2b53&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false&amp;show_teaser=true&amp;visual=true" width="100%" height="300" frameborder="no"></iframe>
<p class="text-center">
	If you have any questions you can reach me by mail: stefan[at]sleepergames.com
</p>
<p class="text-center">
	Or on twitter: 	<a href="https://twitter.com/Sleeper_Games" rel="nofollow noopener" referrerpolicy="origin">@Sleeper_Games</a>
<br>
</p>
<p class="text-center">
	<strong><br></strong></p>
<p class="text-center">If you want to see how the  game developed over the years, you can check out <a href="https://trello.com/b/JEMcU3rX/%20hyperspace-dogfights-development" rel="nofollow noopener" referrerpolicy="origin">the public development Trello</a>. The icebox list there shows stuff I consider adding in future updates.
</p>
<p class="text-center">
	Cheers
</p>
<p class="text-center">
	Stefan Widany - Sleeper Games<br></p>
<p class="text-center"><br></p>
<p class="text-center">
	<strong>FAQ</strong>
</p>
<p class="text-center">
	<strong>What do I do in Hyperspace Dogfights?</strong>
</p>
<p class="text-center">
	Mainly you fly a jet in a 2d environment and blow things up. You'll also complete randomized goals in order to finish individual waves. In-between waves you'll buy items that modify your jet in various ways. Zones end with random boss encounters. Difficulty is pretty harsh, you'll probably die a lot in the beginning. But each subsequent run will play out a little different. Throughout the game you'll unlock additional items to find on later runs. The game is fairly light on story, but you can piece together a narrative from item descriptions and combat chatter if you choose so.<br></p>
<p class="text-center"><br></p>
<p><strong>Feature list?</strong><br>- Juicy, impact-full and tense 2d air combat, framed in a weird sci-fi universe<br>- 5+ player jets to fly, all coming with 2 alternate starting loadouts to unlock<br>-200+ different passive items, some providing simple bonuses, some completely changing how your jet behaves<br>- 90+ sci-fi jet weapons, including beam weapons, explosives and aerial melee options<br>- 50 active items used for offense, defense or utility<br>- Strong focus on synergies and weird jet builds. Most items will interact with others, be it in positive and negative ways. All passives can stack with themselves.<br>- 7 zones with distinct enemy composition to explore<br>- 10 bosses to die against<br>- Various wave goals: Hunt ace pilots, raid ground targets, perform recon scans and more<br>- 12 late game challenge modes that can be freely combined with another<br>- Colorful pixel art, powered by the Pico8 16 palette<br>- An adaptive soundtrack with combat and menu tracks, consisting of 14 tunes by ENUIT and Ole Toensen<br>- Persistent unlocks with lots of items in the loot pool from the get go, but some things only unlockable through the endgame<br>- Finished runs can seamlessly transition into endless mode if you choose so<br><br></p>
<p class="text-center">
	<strong>What platform does Hyperspace Dogfights run on?</strong>
</p>
<p class="text-center">
	Window PC and Linux (currently only tested on Ubuntu). <br></p>
<p class="text-center"><br></p>
<p class="text-center">
	<strong>What are the system requirements?</strong>
</p>
<p class="text-center">
	<em>CPU: </em><em>3.2 GHz</em>
</p>
<p class="text-center">
	Graphics: GeForce GT 710 or better
</p>
<p class="text-center">
	Ram: 8 GiB
</p>
<p class="text-center">
	OS: Ubuntu 14.04 64bit or higher
</p>
<p class="text-center">
	Recent Windows</p>
<p class="text-center"><br></p>
<p class="text-center">
	<strong>Only on Itch?</strong>
</p>
<p class="text-center">
	If you buy the game on itch you'll also get a steam key. If you bought it through a bundle this might not apply though. <br></p>
<p class="text-center"><br></p>
<p class="text-center"><strong>Can I stream/make videos about Hyperspace Dogfights </strong></p>
<p class="text-center">
	<strong>(and monetize that)?</strong>
</p>
<p class="text-center">
	You absolutely can and I love you for it. <br></p>
<p class="text-center"><br></p>
<p class="text-center"><strong>I found a bug? 0/10 worst game ever</strong>&nbsp;</p>
<p class="text-center">Please report your findings on the itch forum or email me via stefan[at]sleepergames[dot]com and I'll look into it.
</p>
<p class="text-center">
	 Thanks I love you! :)
</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/q2MmrpngoD8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIzMjE4LzE0OTU1NzgucG5n/original/wcFV72.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIzMjE4LzE0OTU1NzkucG5n/original/aocoAN.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIzMjE4LzE0OTU1ODUucG5n/original/pO%2BeCp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIzMjE4LzE0OTU1ODAucG5n/original/vnG%2FpZ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIzMjE4LzE0OTU1ODEucG5n/original/gsnFyu.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIzMjE4LzE0OTU1ODQucG5n/original/pDiHia.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIzMjE4LzE0OTU1ODIucG5n/original/ZDt5ZD.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIzMjE4LzE0OTU1ODMucG5n/original/gKFeUs.png]]
<h1 class="text-center">Welcome to <em>Hypnagogia</em> - a world where reality ends and dreams begin. A place created from the essence of joyful fantasies, twisted nightmares, and the stranger places in between.</h1>
<div class="text-center"><iframe width="800" height="460" src="https://www.youtube.com/embed/iGc_kqQBsG4" frameborder="0" allowfullscreen=""><span class=""></span></iframe><br></div>
<p class="text-center"><strong><em><img src="https://img.itch.zone/aW1nLzczMTEzOTYuZ2lm/original/6u7wlg.gif" loading="lazy"><img src="https://img.itch.zone/aW1nLzczMTEzOTMuZ2lm/original/m%2BXffh.gif" loading="lazy"><img src="https://img.itch.zone/aW1nLzczMTEzOTEuZ2lm/original/Qocgog.gif" loading="lazy"><br></em></strong></p>
<p class="text-center"><strong><em><img src="https://img.itch.zone/aW1nLzczMTA3ODYucG5n/original/TwWMxm.png" loading="lazy"><br></em></strong></p>
<p class="text-center"><strong><em>Hypnagogia 無限の夢 Boundless Dreams</em></strong>&nbsp;is a first-person exploration game that takes players on an adventure through a series of mystifying dream vignettes, each with their own unique theme and visual style.</p>
<p class="text-center">Things are not as pleasant as they seem however...</p>
<p class="text-center"><strong>Gogi the dream protector</strong> has been kidnapped by a malevolent force, and in his absence the ethereal Dream Crystal has fractured... its shards spread throughout the world. As nightmares begin to rapidly manifest, how will things unfold as you begin you descent into the dreamscape?</p>
<figure><img src="https://img.itch.zone/aW1nLzczMTA3MjcucG5n/original/npI4eZ.png" loading="lazy"></figure>
<p class="text-center"><strong><em><img src="https://img.itch.zone/aW1nLzczMTA3ODcucG5n/original/9WJ6Vo.png" loading="lazy"><br></em></strong></p>
<ul><li><strong><em>Explore 12 vibrant, hand-crafted worlds</em></strong>, each with their own population of unique characters, with more hidden in the darker corners...</li><li><strong></strong><em><strong>Make choices during certain exchanges of dialogue</strong></em>. Strange creatures from many different walks of life have much to share!</li><li><em></em><strong><em>Fully animated in-game cutscenes</em></strong> to drive an intriguing narrative and create a believable dream world.</li><li><em></em><strong><em>Original music tracks</em></strong> created for each individual world to completely immerse you.</li><li><em></em><strong><em>Late 90's 3D visual style</em></strong> inspired by iconic consoles such as <em>Dreamcast </em>and <em>Playstation</em>.</li></ul>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzczMTA3MzYucG5n/original/on3QkU.png" loading="lazy"><br></p>
<h3 class="text-center"><img src="https://img.itch.zone/aW1nLzczMTA3ODgucG5n/original/dKDmYW.png" loading="lazy"></h3>
<h3 class="text-center"><em>Hypnagogia 無限の夢 Boundless Dreams</em>&nbsp;is a solo project developed and funded by sodaraptor that ran for a total of 8 months. It acts as a follow-up and loose sequel to the first <em>Hypnagogia&nbsp;催眠術</em>, which began life as a game jam title for the <em>2020 LSDJAM</em>.</h3>
<h3 class="text-center">If you'd like to offer additional support towards the development of my future projects, you can follow me here on itch.io or the following platforms:</h3>
<h1 class="text-center">|&nbsp;<a href="https://twitter.com/sodaraptor_dev" rel="nofollow noopener" referrerpolicy="origin">Twitter</a>&nbsp;|&nbsp;<a href="http://ko-fi.com/sodaraptor" target="_blank" style="" rel="nofollow noopener" referrerpolicy="origin">Ko-fi</a>&nbsp;|</h1>
<h3 class="text-center"><strong>Thank you</strong> - may your dreams always be pleasant.</h3>
<p class="text-center"></p>
<h1 class="text-center"><iframe src="https://store.steampowered.com/widget/1665500/" frameborder="0" width="646" height="190"></iframe></h1>
<p class="text-center">
</p>
<h1 class="text-center"><iframe frameborder="0" src="https://itch.io/embed/823776?linkback=true&amp;dark=true" width="552" height="167"><a href="https://sodaraptor.itch.io/hypnagogia">Hypnagogia 催眠術 by sodaraptor</a></iframe></h1>
<h1 class="text-center">▼ Download the free demo below ▼</h1>
<h5 class="text-center"><a href="http://ko-fi.com/sodaraptor" target="_blank" rel="nofollow noopener" referrerpolicy="origin"></a></h5>

<iframe width="720" height="450" src="https://www.youtube.com/embed/iGc_kqQBsG4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI1MTczOS83MzExMjQ1LmdpZg==/original/nHU48b.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1MTczOS83MzExMjQzLmdpZg==/original/bAFu4U.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1MTczOS83MzExMjQ0LmdpZg==/original/ihmzC%2B.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1MTczOS83MzExMzgyLmdpZg==/original/YLMRxT.gif]]

<p class="text-center"><img src="https://img.itch.zone/aW1nLzI0MDI4NzYucG5n/original/HmgOmr.png" loading="lazy"></p>
<p class="text-center"><strong><br></strong></p>
<p class="text-center"><strong>♦&nbsp;<a href="https://www.witpopgames.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Website</a>&nbsp;♦&nbsp;<a href="https://twitter.com/WitPOP" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter</a>&nbsp;♦&nbsp;<a href="https://discord.gg/VWFW8sWbCU" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Discord</a>&nbsp;♦&nbsp;&nbsp;<a href="http://www.patreon.com/redchan17" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Patreon</a>&nbsp;♦&nbsp;<br></strong></p>
<p class="text-center"><strong>A not-so-generic otome game with BL possibilities.&nbsp;&nbsp;</strong></p>
<p class="text-center">&nbsp;Instead of playing the heroine and choosing between several men that have typical dating-sim personalities, you play as the childhood friend. That's right! The route that's usually the easiest to complete is no longer available.&nbsp;
You (Geum Park) are thrust into the world of a reverse harem, where your precious childhood friend (Emily Carter) is being hit on by two of your classmates (Ao Yazawa and Hong Yang Chan). You can choose to either play the role of a love interest and try to win the heroine's heart, or... you can play your own game and try to make the two boys fall for you instead! The choice is yours!
</p>
<p class="text-center"><em>Note: The game takes place in Australia, so there are times when the characters may say things that seem a little odd to people not familiar with Aussie culture.&nbsp;</em></p>
<p class="text-center"><em>Additional Note: Australia is a multicultural place, a good majority of the population speak more than one language. As such, in certain routes the characters may end up speaking to one another in different languages. &nbsp;</em></p>
<p></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzM1NjkyMjAucG5n/original/fx7VTS.png" loading="lazy"><br></p>
<p class="text-center"><br></p>
<p class="text-center"><strong>Game Features [1.1.0 Update]:</strong><br>- A spin on your everyday otome game<br>- BxB and BxG routes to play<br>- Three romanceable characters (2 male 1 female)<br>- Over 40k words<br>- Mini Games&nbsp;<br>- 20+ CG scenes and Gallery<br>- Over 10 different endings<br>- Phone texting feature<br>- Original music and SFX<br>- Animated chibis and transitions<br>- Secondary&nbsp;outfits for sprites<br>- Unlockable polyamory route</p>
<p class="text-center"><em>[PDF guide to achieving Endings 00-03 (Romance Endings) uploaded 13/04/2021]<br>[1.1.0 Update was released on 12/11/2020]<br>[1.0.0 Initial release build was released on 01/07/2020]</em></p>
<p class="text-center"><strong class="">Demo Features:</strong><br>- Approx. 7500 w for the demo<br>- Phone texting feature<br>- Original music and SFX<br>- Animated chibis and transitions<br>[The demo is the old beta version of the game and has not been updated]<br><br></p>
<p class="text-center"><strong>Credits:</strong><br>Red Chan (<em>project lead</em>)<br>Alison 'Draz' Huang (<em>editor</em>)<br>Eric Matyas (<em>composer</em>)<br>Jeff Penny (<em>SFX composer</em>)<br>thiskidthatkid (<em>additional artist</em>)<br>Adhylia&nbsp;(<em>additional artist</em>)<br>Pumpkin Spike&nbsp;(<em>additional artist</em>)</p>
<p><br></p>
<p class="text-center"><strong>Played the game? Want more?</strong><br>Try the Halloween special, made for Spooktober 2019.<br><a href="https://red-baby.itch.io/imaloveinterest-halloween2019" target="_blank">Spooky fun at Geum's house.</a></p>
<p class="text-center">Or try the spin-off game, made for YaoiJam2020<br><a href="https://red-baby.itch.io/imasidecharacter" target="_blank">Geum is a side character in a side character's game.&nbsp;</a></p>
<p class="text-center">Or our other spin-off, made for YaoiJam2021.<br><a href="https://red-baby.itch.io/love-interest-own-game" target="_blank">Less about Geum, more about Ao and Hong Yang.</a></p>
<p class="text-center"><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/Cy3U5R2DpDA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDY5NzYyLzM4MDk1MzgucG5n/original/vOI8Nn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDY5NzYyLzM4MDk1NDAucG5n/original/H550ct.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDY5NzYyLzM4MDk1MzkucG5n/original/pgeQf0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDY5NzYyLzM4MDk1MzcucG5n/original/4i9AhH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDY5NzYyLzI4NzU2MjQucG5n/original/HQHut7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDY5NzYyLzMwMjc5OTUucG5n/original/z9NPWM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDY5NzYyLzMwMjc5OTYucG5n/original/MIzHsa.png]]
<div style="text-align: center; padding: 1em 0">
<a href="https://mindnumb.itch.io/igeo-dx"><img src="https://img.itch.zone/aW1nLzY3NzAyNzQucG5n/original/KLOzM2.png" loading="lazy"></a>
<a href="https://mindnumb.itch.io/igeo-dx"><h2>Enjoy IGEO? Check out the IGEO DX Beta Avaialable Now!</h2></a>
</div>
<p>A simple puzzle game with an abstract visual style. The goal is to eliminate all the blocks by moving the same blocks into one another in various ways. 20 levels to complete, some with many solutions.<br></p>
<p>
	Originally made in less than 72 hours for Ludum Dare 35. Updated with music, sounds, and special FX.</p>
<p>
	<strong>Controls</strong><br>
</p>
<ul>
	<li>WASD/Arrows to Move Cursor &amp; Select Blocks when combining Cross Blocks</li>
	<li>'SPACE'/Left Click to select a Block when combining Cross Blocks</li>
</ul>
<p><em><br></em></p>
<p><em>IGEO is based on the game PEGS by Detached Solutions, originally created for the TI-84 line of graphic calculators.</em></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjMwMTYvNTM2MDg2LmpwZw==/original/8S3Yft.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjMwMTYvNTM2MDg3LmpwZw==/original/OV3nxL.jpg]]
<p>A small interactive story about about a cord, which hangs down from the top, overlooking a handful of delicately arranged objects. <br></p>
<p>Il Filo Conduttore is a short game by Mario von Rickenbach and Christian Etter. <br></p>
<p>Featuring Hungarian folk music and sound design by David Kamp.<br>Part of the Triennale Game Collection, curated by Pietro Righi Riva from Santa Ragione.</p>
<p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/bZJnb3I7v7w" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTExMzQzLzI2NTUzMDAuanBn/original/pIoSg5.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTExMzQzLzI2NTUyOTguanBn/original/x2d%2FLf.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTExMzQzLzI2NTUyOTcuanBn/original/y6rlgb.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTExMzQzLzI2NTUyOTkuanBn/original/sFNe3G.jpg]]
<p>'Imaginaria' is a term describing both a night watch and the night watcher. You are in charge of Imaginaria duty tonight, in this godforsaken Antarctic station.</p>
<p>Inspired by the developer’s experiences living in Antarctica for 15 months, <strong>Imaginaria&nbsp;</strong>is equal parts visual novel, point &amp; click adventure, walking sim and documentary.</p>
<p><strong>FEATURES:</strong></p>
<ul><li>Beautiful low-res pixel art graphics
</li></ul>
<ul><li>15+ locations to explore
</li></ul>
<ul><li>First-hand account of life in an Antarctic station
</li></ul>
<p><strong><br></strong></p>
<p><strong>CREDITS:</strong></p>
<p>Graphics, programming, text, engine: <a href="https://lunafromthemoon.itch.io/">lunafromthemoon</a>&nbsp;(<a href="https://twitter.com/lunafromthem00n" rel="nofollow noopener" referrerpolicy="origin">@lunafromthem00n</a>)</p>
<p>Proofreading, publishing and random stuff: Mariano Falzone (<a href="https://twitter.com/marianofalzone" rel="nofollow noopener" referrerpolicy="origin">@marianofalzone</a>)</p>
<p>Music: Lisergishnu (<a href="https://twitter.com/lisergishnu" rel="nofollow noopener" referrerpolicy="origin">@Lisergishnu</a>, Soundcloud:&nbsp;<a href="https://soundcloud.com/lisergishnu" rel="nofollow noopener" referrerpolicy="origin">Lisergishnu</a>), Erik Satie</p>
<p>Powered by <a href="https://lunafromthemoon.itch.io/renjs">RenJS</a> (created by lunafromthemoon)</p>
<p><strong>ABOUT US:</strong></p>
<p><strong>Orbis Tertius Games</strong>&nbsp;is an indie video game studio founded by lunafromthemoon and Mariano Falzone. We make games with a focus on narrative.</p>
<p>You can follow us on <a href="https://twitter.com/OrbisTertiusGms" rel="nofollow noopener" referrerpolicy="origin">Twitter</a>, <a href="https://www.facebook.com/orbistertiusgames" rel="nofollow noopener" referrerpolicy="origin">Facebook</a>&nbsp;and check out our <a href="http://www.orbistertiusgames.com/" rel="nofollow noopener" referrerpolicy="origin">website/blog</a>.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/klQ3xxtEDO8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MjYzMC82MjkzNDgzLnBuZw==/original/xfDvb9.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MjYzMC82MjkzNDg1LnBuZw==/original/CMOfET.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MjYzMC82MjkzNDg3LnBuZw==/original/cgjjMY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MjYzMC82MjkzNDg5LnBuZw==/original/2cXW%2Bn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MjYzMC82MjkzNDg2LnBuZw==/original/%2FsktS%2F.png]]
<p>Immanence is a game for one to five players about the passengers of a colony ship that has left Earth in the year 3020 in pursuit of a new home. Each player controls a human passenger of said ship as they’re awoken from stasis sleep. The game is primarily driven by the interactions between multiple players or the reflections of a single player.&nbsp;<br></p>
<p>The purpose of Immanence is to explore our individual and collective relationships with Earth, each other, ourselves, and the greater Universe.</p>

[img width=500 [https://img.itch.zone/aW1nLzI4MzIyMjAucG5n/original/Z%2FhMUi.png]]
<p><span class=""><em>It is a common misconception that who we are is a matter of chance. The imperceptible alignment of planets, mysterious genetic relationships, a token bestowed by each person we meet. All of this is true, but we forget that we are also a choice.<br></em></span></p>
<p><span class=""><em>We are the narratives told by and about us, what we do and what we forgo. We are immaterial and we are present. We know ourselves and we know we are not fixed.</em></span> <em><span class="">But there is still a magic in this knowledge. The practicality of our self does not discount the incantations we cast, the stars we interrogate, and the divinity we invite inside.<br></span></em></p>
<p><em><span class="">This manual is a means by which we can navigate these bodies. We draw cards and seek answers inside us. They can be illuminating, uncomfortable, perplexing, and expected. They bring us closer to ourselves, be it a self known or discovered.</span></em></p>
<p><em><span class=""><span class=""><strong>The stars watch and speak in archetypes. We align ourselves to them, and in doing so create stars of our own.</strong></span></span></em></p>
<p>◆◆◆</p>
<p><em>In me, a constellation </em>is a comic destiny personality quiz told through tarot cards and improvisational introspection. It’s designed for solo play but could be adapted for more players (or as an aspect of character creation for another game).</p>
<ul><li>No prep, no GM</li><li>45-60 minute sessions</li><li>Play with any tarot deck (or use your real natal chart)</li><li>Lots of astrology flavor</li></ul>
<p>Inspired by the many works of Jammi Nedjadi and Maria Mison.</p>
<p><em>Content warning: explores themes of dysphoria, symbolic violence, sex, and anxiety. Be kind to yourself while playing.</em><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODA2OTM5LzQ1MjIzODYuanBn/original/eSQSEL.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODA2OTM5LzQ1MjIzOTMuanBn/original/3rzNzQ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODA2OTM5LzQ1MjI0MTYuanBn/original/KM9Gl5.jpg]]
{{HTML5}}
<h2 class="text-center">Play with snacks, solve hand-crafted recipes and enjoy a cute story<br>in this culinary brain-teaser from the creators of <a href="https://afterburn.itch.io/golf-peaks" target="_blank">Golf Peaks</a>!</h2>
<p>&nbsp;</p>
<h2 class="text-center">FEATURES:</h2>
<h3 class="text-center">&gt; 120+ puzzles and unique pattern-matching gameplay &lt;</h3>
<h3 class="text-center">&gt; Textless, heartwarming story about cats and parenthood&nbsp;&lt;</h3>
<h3 class="text-center">&gt; Inspired by Japanese aesthetics and bento cuisine &lt;</h3>
<p>&nbsp;</p>
<div class="text-center"><iframe width="940" height="510" src="https://www.youtube.com/embed/3ecrtbR0qyo" frameborder="0" allowfullscreen=""></iframe></div>
<p>&nbsp;</p>
<figure><img src="https://img.itch.zone/aW1nLzY1NTMzNDcucG5n/original/f57qhQ.png" style="color: inherit; font-size: inherit" loading="lazy"><span></span><br></figure>
<p><em><img src="https://img.itch.zone/aW1nLzY1NTMzNDkucG5n/original/b%2F5OUT.png" loading="lazy"><br></em></p>
<p><em><img src="https://img.itch.zone/aW1nLzY1NTMzNTAucG5n/original/Z9FABS.png" loading="lazy"><br></em></p>
<p><em></em></p>
<div class=""><iframe width="940" height="510" src="//www.youtube.com/embed/k2OB1eQ1qRo" frameborder="0" allowfullscreen=""></iframe></div>
<p><em>&nbsp;<br><br></em></p>
<h4>More info: <a href="http://afterburn.games/inbento" rel="nofollow noopener" referrerpolicy="origin">http://afterburn.games/inbento</a>&nbsp;and <a href="http://facebook.com/afterburngames" rel="nofollow noopener" referrerpolicy="origin">http://facebook.com/afterburngames</a></h4>
<h4></h4>

<iframe width="720" height="450" src="https://www.youtube.com/embed/3ecrtbR0qyo" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTEzMTE4My82NTUzMTQzLmpwZw==/original/j3C6db.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEzMTE4My82NTUzMTQ0LmpwZw==/original/TUwvER.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEzMTE4My82NTUzMTQ1LmpwZw==/original/mZtjYM.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEzMTE4My82NTUzMTQ2LmpwZw==/original/ahmG52.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEzMTE4My82NTUzMTQ3LmpwZw==/original/5cq9wF.jpg]]
<p><strong>InBetween: Hungry Mouse</strong> is a spin-off solo mini-game inspired by the <a href="https://www.teuton.org/~stranger/inbetween" target="_blank" rel="nofollow noopener" referrerpolicy="origin">InBetween RPG</a>. You are a tiny mouse on a quest for food in the dark dangerous Between (the space between house walls, and under their floors). You create a route to explore, and try to make it out alive with enough food for your mouse-kin.</p>
<p>To play, you will need a pen, paper, and around five six-sided dice.</p>
<p><em>Note: This is a pamphlet game, supplied as a file to print a two-sided z-fold pamphlet.</em><br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzU3NjE1NjUucG5n/original/BUOaer.png" alt="A cloak-wearing mouse" title="A cloak-wearing mouse" loading="lazy"><br><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAxMTIxNi81NzYxNTE5LnBuZw==/original/CgYaqK.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAxMTIxNi81NzYxNTMzLnBuZw==/original/ZRw1HT.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAxMTIxNi81NzYxNTM0LmpwZw==/original/opirv7.jpg]]
<p><strong>Comedy game/ Performance art:<br></strong></p>
<h2>" Created from the point of view of washed up film director gone game developer Jurgen... answer important psychological questions to experience indie gameplay. "</h2>
<p><br><br><br></p>
<p>Voice Over Acting - <a href="https://twitter.com/YeOldShrimpEyes" rel="nofollow noopener" referrerpolicy="origin">Adrian "Ye Old Shrimp Eyes" Vaughan</a><br>Programming - <a href="https://twitter.com/RadJor64" rel="nofollow noopener" referrerpolicy="origin">RadJor</a><br></p>
<p><strong>Special Thanks:</strong></p>
<p>- <a href="https://twitter.com/PeterMolydeux" rel="nofollow noopener" referrerpolicy="origin">Peter Molydeux</a> (twitter collaboration)<br></p>
<p>- <a href="https://www.youtube.com/user/iDubbbzTV" rel="nofollow noopener" referrerpolicy="origin">iDubbbz</a> (scream SFX)</p>
<p>- <a href="https://seadads.itch.io/">The SeaDads</a>&nbsp;(spiritual advice)</p>
<p>- <a href="https://twitter.com/muzboz" rel="nofollow noopener" referrerpolicy="origin">Murray Lorden</a> (spiritual advice)<br></p>
<p>- Yusuke (Japanese kazoo song used with permission)<br></p>
<p><strong>Notes:</strong><br></p>
<p><em>In 2014 I got Adrian heavily intoxicated and we recorded all the VO fairly ad-lib in one hit, feeding him different topics. </em><em></em><br></p>
<p><em>Radjor threw everything together, but then was this 2GB GIT conflict or something and I thought maybe people would think it's a commentary on this other FMV game that came around around the same time... the whole thing was forgotten about for a few years until I tweeted it out and then <a href="https://twitter.com/ParadigmGame" rel="nofollow noopener" referrerpolicy="origin">Jacob</a> the other day was all like "lol the world needs to see this just put it on itch.io too" </em><br></p>
<p><strong>Bonus:</strong></p>
<p>🐳 <a href="https://indievideovideogame.bandcamp.com/album/-" rel="nofollow noopener" referrerpolicy="origin">Jurgen's whale music</a><br></p>
<h3><a href="https://indievideovideogame.bandcamp.com/album/-" rel="nofollow noopener" referrerpolicy="origin"></a>FEEL WELCOME TO LEAVE A COMMENT</h3>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjY4NjA2LzEyOTU5MDIucG5n/original/XN7HmO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjY4NjA2LzEyOTU5MDEucG5n/original/SoObDP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjY4NjA2LzEyOTU5MTQucG5n/original/5NP5ou.png]]
<p>Challenge your mind in a psychedelic journey of puzzles and meaningful encounters with Time, Poetry, Memory, Technology, War and Fatality.<br></p>
<p><br>As Hope drifts deeper into Infinity, the real world begins to suffer from his absence. There doesn’t seem to be any way out, and Hope is by nature doomed to carry on.<br><br>Master the innovative camera manipulation mechanic to unlock new areas. Each world harbors new abilities, themes, and opportunities to explore the multiverse and meet bizarre personalities who can be helpful allies or deceitful foes.<br><br><strong>Infini Key Features :</strong><br><br>● Discover a unique, mind-bending and varied gameplay<br>● Immerse yourself in a rich emotional story<br>● At least 8 hours of gameplay across 100+ levels and 10 diverse worlds<br>● Experience original imagery and soundtrack of over 20 songs<br>● Feel the void of Infinity!<br><br><br>The itch.io version of the game contains all current and future DLCs. (The builds will be updated when/if new DLCs come out).<br><br>DLCs included :&nbsp;<br>&nbsp;∞ #InfiniPrison</p><p>This a donation DLC. All proceeds will be donated to the UN Refugee Agency.</p><p>In this DLC, you unlock new content in the game Infini, at the end of the 4th tombstone, where Hope is trapped in War’s lair. Ignite your jetpack and propel yourself through a challenging time-attack level. Share your score with the community using #InfiniPrison!<br><br>For more information you can visit :&nbsp;<a href="https://www.nakana.io/infini-prison" rel="nofollow noopener" referrerpolicy="origin">https://www.nakana.io/infini-prison</a><br><br>DEVELOPED BY Barnaque<br>“We are always striving to push limits and break boundaries with our narratives, gameplay and music. Our goal with Infini is to throw you into an unknown world of surprise.” - David Martin and Emeric Morin from the Montreal-based indie studio.<br><br>PUBLISHED BY Nakana.io<br>“We gather games that share a strong experience to remember. With Infini we are excited to present a title that manages to be both unique and captivating in all its aspects: gameplay, art and story.” - Mikaël Bourget, founder of the publishing label.</p>
<p class="text-center"><a href="https://igf.com/article/here-are-your-finalists-2020-independent-games-festival-awards" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzI5NTU2NTIucG5n/original/q%2FThZt.png" style="max-width: 70%; font-size: 14px; background-color: rgb(255, 255, 255)" alt="IGF Nuovo Finalist" title="IGF Nuovo Finalist" loading="lazy"></a></p>
<p class="text-center"><a href="https://barnaque.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzI5NTc0MTkucG5n/original/TyEaTp.png" style="max-width: 50%; font-size: 14px; background-color: rgb(255, 255, 255)" alt="Barnaque" title="Barnaque" loading="lazy"><br></a></p>
<p></p>
<p class="text-center"><a href="https://nakana.io" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzI5NTc0MzcucG5n/original/JKHSt2.png" style="max-width: 50%" alt="Nakana.io" title="Nakana.io" loading="lazy"></a></p>
<p><a target="_blank" rel="nofollow noopener" referrerpolicy="origin"><br></a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/il4lhPmNKYg" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTYzMDU0LzI5NTUzMTYucG5n/original/bgLQF7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTYzMDU0LzI5NTUzMTQucG5n/original/ogaM1d.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTYzMDU0LzI5NTUzMTUucG5n/original/xCppmW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTYzMDU0LzI5NTUzMTgucG5n/original/C%2Bx5Ks.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTYzMDU0LzI5NTUzMTkucG5n/original/gfUGhk.png]]
<h3 class="text-center"></h3>
<h3 class="text-center"><img src="https://img.itch.zone/aW1nLzQ3NTMxNzcucG5n/original/nZt44r.png" loading="lazy"></h3>
<h3>Something is lurking in the shadows...</h3>
<p>INMOST, by Lithuania-based indie studio&nbsp;<strong>Hidden Layer Games</strong>, is an emotional and deeply atmospheric narrative-driven puzzle platformer.</p>
<p>Explore a crumbling, nightmarish landscape, slice through enemies, and spring deadly traps in order to escape the evil that awaits…<br><br><em>**INMOST is an intimate story of loss and hope that some may find upsetting. Player discretion is advised.**</em></p>
<p></p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/oSX1StI7tBk" frameborder="0" allowfullscreen=""></iframe>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzQ3NTMxODQucG5n/original/AdCivg.png" loading="lazy"></p>
<ul><li>Venture through a hauntingly atmospheric pixel art world</li><li>3 main characters, each with their own unique gameplay styles</li><li>A knight adventures into the depths of a deteriorating castle. A child uncovers the past of an eerie house. A wanderer searches for answers.</li><li>Lure enemies into lethal traps, solve environmental puzzles and utilise your scythe, hookshot and pickaxe to avoid a gruesome end!</li><li>Discover a 3-5 hour emotional story, intended to be played in a single-sitting on a dark, stormy night</li><li>Explore every nook and cranny to find secret passages and collectibles</li><li>Featuring the vocal talents of Andrew Dennis and Cassandra Lee Morris</li><li>Playable in 14 languages, including English, French, German, Russian, Spanish, Italian, Arabic, Dutch, Japanese, Korean, Brazilian Portuguese, Turkish, Simplified and Traditional Chinese</li><li>Features CORSAIR iCUE RGB dynamic lighting functionality for PC</li><li>Each pixel is placed with love!</li></ul>
<p><img src="https://cdn.cloudflare.steamstatic.com/steam/apps/938560/extras/gif4.gif?t=1599227740" loading="lazy"></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/oSX1StI7tBk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzU4MTA1LzQ0NTMwNDUuanBn/original/vvYmXw.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU4MTA1LzQ0NTMwNDYuanBn/original/tRRc3j.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU4MTA1LzQ0NTMwNDcuanBn/original/mNry54.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU4MTA1LzQ0NTMwNDguanBn/original/U5SP7g.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU4MTA1LzQ0NTMwNDkuanBn/original/Q3klxJ.jpg]]
<p>&nbsp;&nbsp; <br></p>
<p class="text-center"><br></p>
<h3>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;A meditative puzzle game <br>&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; where duality fills the whole.</h3>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzMxNjI4OTQucG5n/original/bQGHxV.png" loading="lazy"><br></p>
<ul><li>Learn the symmetry.</li><li>Solve stylized hand-crafted puzzles.</li><li>Master the opposites.</li><li>Become one with the relaxing soundtrack. </li><li>Flow and grow.</li></ul>
<p class="text-center"><em><em><img src="https://img.itch.zone/aW1nLzMxNjI4OTYucG5n/original/gWcdmB.png" loading="lazy"><br></em></em></p>
<p><em><em></em></em><br><em>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; The Black Moon and The White Sun<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; walk by the sky's reflection,<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; shadow and light weave together<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; a complete world in levitation.</em></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzMxNjI4OTcucG5n/original/gxb1ID.png" loading="lazy"></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; A puzzle game by <br></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; <a href="https://twitter.com/LeSloDev" rel="nofollow noopener" referrerpolicy="origin">Lucas Le Slo</a></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; and</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="https://twitter.com/sergisabater_" rel="nofollow noopener" referrerpolicy="origin">Sergi Sabater</a><br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzMxNjI4OTcucG5n/original/gxb1ID.png" loading="lazy"><br>
</p>
<p><br></p>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/LDcBThn76Mo" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDEwODU3LzU1NTEwNjMucG5n/original/xZU%2BNc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDEwODU3LzMxNTg4ODUucG5n/original/Og%2FQfb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDEwODU3LzMxNTg4ODQucG5n/original/PrMW1t.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDEwODU3LzMxNTg4ODYucG5n/original/pAoud5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDEwODU3LzU1NTEwNjQucG5n/original/NaJB%2BM.png]]
<p><em><strong>A toy ecosystem with fully simulated genetics and evolution. Will you tinker with DNA or sit back, relax, and see if life finds a way?<br></strong></em></p>
<figure><img src="https://img.itch.zone/aW1nLzI4NzAxNjcuZ2lm/original/xnGQ6T.gif" style="color: inherit; font-size: inherit" loading="lazy"></figure>
<p><em>In a universe driven by targets, a faceless corporation employs you to create an evolving ecosystem you can never hope to control...</em></p>
<p>Intelligent Design: An Evolutionary Sandbox is a god game with fully simulated genetics and evolution. Create species of plants, herbivores and carnivores and try to control the ever evolving ecosystem. Design and create genetically modified organisms, but remember when you start tampering with genetics it is hard to undo your mistakes...</p>
<p>This is a game for people who don’t want to be given all the answers. A game for people who like to experiment with a simulation, at their own pace, and watch what happens.<br></p>
<p><img src="https://img.itch.zone/aW1nLzI4NzAxNjguZ2lm/original/sIn%2FFJ.gif" loading="lazy"><br></p>
<p>
	<strong>Key Features</strong></p>
<p><em>Fully modelled genetics and evolution</em><br><br>The behavior of each organism are determined by their genetics. How tall will a plant grow? How fast can an herbivore run? How often does a carnivore seek prey? These genetics are passed down generation after generation along with random mutations. Evolution is fully simulated, there are no tricks or statistical approximations. You are watching life evolve on your computer.<br></p>
<p><em>Science to be Done</em></p>
<p>What do all those genes actually do? How is the world score calculated? What does world efficiency even mean? Much like a real scientist you will need to investigate, analyse and work with other players to try and answer these questions. To help you along the way the game outputs data in xml files so you can really get your science on.&nbsp;</p>
<p><em>Genetic Engineering</em></p>
<p>Create your own genetically modified organisms, but be careful, once a genome has entered your ecosystem it may be hard to undo the damage ... and are you sure you really know what those genes do yet?</p>
<p><em>Secrets to Discover</em></p>
<p>Who is employing you to create this ecosystem? Why are they doing it? Why are you doing it? What are those targets for? The answers to these any many other questions are out there, you just need to work together and find them...</p>
<h3>Check out our newest game</h3>
<iframe frameborder="0" src="https://itch.io/embed/430934?linkback=true&amp;border_width=3&amp;bg_color=faefd4&amp;fg_color=222222&amp;link_color=fa5c5c&amp;border_color=899faf" width="556" height="171"><a href="https://pillbuginteractive.itch.io/making-it-home"><span class=""></span>Making it Home by Pill Bug Interactive</a></iframe>

<iframe width="720" height="450" src="https://www.youtube.com/embed/GJi7BS8XFBk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjg0NjMvNjQyOTg0LnBuZw==/original/bGvAsD.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjg0NjMvNjQyOTgxLnBuZw==/original/Aom2Q3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjg0NjMvNjQyOTc4LnBuZw==/original/VljRij.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjg0NjMvNjQyOTc5LnBuZw==/original/oYG5H9.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjg0NjMvNjQyOTgwLnBuZw==/original/kpFyia.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjg0NjMvNjQyOTgyLnBuZw==/original/25qiGW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjg0NjMvNjQyOTg1LnBuZw==/original/qE7c2%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjg0NjMvNjQyOTg4LnBuZw==/original/XdoX8k.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjg0NjMvNjQyOTgzLnBuZw==/original/Ad1Niw.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjg0NjMvNjQyOTg3LnBuZw==/original/rutNcg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjg0NjMvNjQyOTg2LnBuZw==/original/3f2yUX.png]]
<p>Welcome to <em>Interactivity: The Interactive Experience</em>, an exhibition by Aetheric Games, featuring The Button.<br></p>
<p>In the world of "video-games", interaction engineers have spent years rigidly defining the specialised and determinate ways that you, a "video-game" protagonist, may interact with your world. Here in this guided tour you will find them all, glistening with promise, awaiting the click of your mouse and ready to edutain you! Please enjoy.</p>
<p>Except for The Button. The Button is not for you.</p>
<p>. . . . . . . . . .</p>
<p><em>Interactivity: The Interactive Experience</em> is a short meta-narrative experience about how our interaction with game worlds is limited by convention, in equal parts of awkwardly-funny and oppressive. Explore the gallery in first-person, solve a handful of simple puzzles, and find a way to push The Button.<br></p>
<p>After several years, the gallery has been refurbished with&nbsp;new details, textures, tweaked puzzles, more endings, achievements and original music by Miles Tilmann. (The sound track is also available on Steam, along with an achievement enabled version of the game.) This new opening of the gallery&nbsp;has been described as The Stanley Parable meets Groundhog Day via David Lynch. The curator makes no such lofty claims, and advises you to stay behind the red cordon ropes at all times.</p>
<p>. . . . . . . . . .<br></p>
<p>For the best downloading, installing and playing experience on itch.io, get <em>Interactivity</em>&nbsp;using the <a href="https://itch.io/app" target="_blank">itch.io app</a>!</p><p></p><p>RECOMMENDED SYSTEM REQUIREMENTS:<br>OS: Windows 7<br>Processor: Quad-core processor, 2.5GHz<br>Memory: 8 GB RAM<br>Graphics: GeForce GTX 650 or equivalent<br>Storage: 1 GB available space</p><p></p>
<p>. . . . . . . . . .<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/0qTWrM_E9GQ" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTI4NTkvMjU0MzQyNC5wbmc=/original/h8gIgX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI4NTkvMjU0MzQyNS5wbmc=/original/xo35wE.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI4NTkvMjU0MzQyNy5wbmc=/original/%2B%2FKmcu.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI4NTkvMjU0MzQyNi5wbmc=/original/eE0GPY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI4NTkvMjU0MzQyMy5wbmc=/original/SWXCIK.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI4NTkvMjU0MzQyOS5wbmc=/original/lXBD6H.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI4NTkvMjU0MzMyOS5wbmc=/original/3iRD33.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI4NTkvMjA1MjAzNS5naWY=/original/uuuVk2.gif]]
<p>A tabletop RPG cyberpunk scenario for use with The Sprawl.<br>The team is hired for an extraction: an artist on a corp-sponsored voyage needs to be 'retrieved'. There is a twist: she is stuck on a container ship that is not going anywhere!</p>
<p>A scenario about international transport, labor relations and art -- will the team succeed when they have to operate in International Waters?</p>
<p>The scenario can be used with any cyberpunk tabletop RPG game, but the structure is set up to support The Sprawl, the cyberpunk RPG published by Ardens Ludere. This is an independent work.<br></p>

[img width=500 [https://img.itch.zone/aW1nLzYwMTYwMjQuanBn/original/Td6MXu.jpg]]
<p>Interstellaria is a real time space-exploration sim and crew management game. <br>Command a fleet of vessels wandering the galaxy for adventure and profit! You’ll be forced to make tough decisions as you face hostile starships, crippling space anomalies, and intriguing aliens. When your fleet faces certain doom, should you direct your crew to make critical repairs, or report to their stations and boost your fleet? <br>Land your flagship on an alien world, allowing your crew to gather valuable resources for you— but be sure to equip them with powerful armor and weapons! It’s a dangerous universe out there, and although many helpful creatures will trade or share valuable information with you, many more will attack on sight!<br></p>
<h2>Features</h2>
<ul><li>Tactical crew management. Direct crewmen to put out fires, or repair damaged equipment. Posting them to their station boosts your fleet's speed and combat abilities. </li><li>Customize your ship with helpful stations. Allocate power to important systems or simply outfit your ship with lasers and put all power into weapons! </li><li>Your crew eats, sleeps, and needs entertainment. Each one develops unique traits throughout the game that help or hurt the mission. Various outfits and weapons can be found to customize them further. </li><li>Fleet-based combat. Instead of controlling a single ship, you control multiple ships each with their own crew. </li><li>Fully explorable galaxy, no areas are off limits. Each region has unique ships, aliens, and mysteries to find. </li><li>Land your ships on planets! Each world is a new experience and has special rewards for you and your crew. </li><li>Featuring an all-original soundtrack from the incredibly popular chiptune musician Chipzel.</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTc2MDgyLzMwMzE4MDUucG5n/original/jZFTbc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTc2MDgyLzMwMzE4MTEucG5n/original/1eDvFo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTc2MDgyLzMwMzE4MDYucG5n/original/sKbK2j.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTc2MDgyLzMwMzE4MDgucG5n/original/EbwSiB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTc2MDgyLzMwMzE4MTIucG5n/original/fGgnJD.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTc2MDgyLzMwMzE4MDcucG5n/original/ARO6GS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTc2MDgyLzMwMzE4MDkucG5n/original/qDhX77.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTc2MDgyLzMwMzE4MTAucG5n/original/C78LQa.png]]
<p class="text-center"><em>You don’t ever remember signing a contract, but The Company owns you now, body and soul.&nbsp;You have a debt, and they’re coming to collect. Whatever you were before, this is your purpose now:<br>Finding a way to keep the creditors at bay.<br></em><em>Finding a way to get back...</em></p>
<h1 class="text-center">INTO THE BLACK</h1>
<p>INTO THE BLACK is a sci-fi adventure game using the PINKHACK system. Somewhat of a personal love letter to the Mass Effect franchise, Into the Black is a picaresque adventure game where the players must navigate and explore&nbsp;a strange and wonderous galaxy while deeply indebted to an interstellar corporation. Life among the stars, then, is about treading the razor's edge of struggling for survival and finding joy and love where one can.</p>
<p>This is currently an ASHCAN EDITION. I churned this out over the course of a weekend, tinkering with the PINKHACK system (a blend of Jared Sinclair's The Vanilla Game, Christian Mehrstam's Whitehack, and Chris McDowall's Into the Odd).</p>
<p>Inside this 97-page book you'll find:</p>
<ul><li>A series of tools for safe play, for Chroniclers and Travelers both</li><li>A&nbsp;lightweight 3-stat, 3-class&nbsp;OSR system requiring only a few d20s and d6s</li><li>A randomized character system that provides compelling starting points for your adventurer</li><li>50 creatures to encounter on your interstellar journey</li><li>A miscellanea section including ancient data-disks, clothes, drugs, corporations, space pirates, wandering star-nomads, space caravans, a technobabble generator, and strange sci-fi discovered items</li><li>A die-drop-based mapping system that allows for the collaborative creation of interesting adventure sites, settlements, planets, encounters, and cosmic anomalies</li><li>List of desirable goods to barter, buy and sell across the galaxy to pay your debt, as well as complications that might arise on the journey</li><li>Powerful telekinetic abilities and technological wonders</li><li>Rules for starship combat and a selection of vessels to battle, steal, avoid, and strive for</li><li>Art by the fabulous Evlyn Moreau, and&nbsp;Mike Winkelmann (aka Beeple)</li></ul><h3>Reviews:</h3><p><em>"The result is a homespun corner of space full of potential. An emergent story of local warlords or ancient tech can play out, or the group can soak in the emotional melange of finding a series of barren, if beautiful, landscapes while they watch the twin suns dance below several horizons."</em><br>-Chase Carter, <a href="https://www.dicebreaker.com/games/into-the-black/news/into-the-black-rpg-mass-effect" rel="nofollow noopener" referrerpolicy="origin">Dicebreaker</a><span></span></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMDQyOS81NjkzODI0LmpwZw==/original/ZVIELs.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMDQyOS81NjkzODI1LmpwZw==/original/VKAQuw.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMDQyOS81NjkzODI2LmpwZw==/original/dSbgcV.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMDQyOS81NjkzODI3LmpwZw==/original/n5zWlC.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMDQyOS81NjkzODU5LmpwZw==/original/nmVTAh.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMDQyOS81NjkzODYwLmpwZw==/original/4k%2Bq2y.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMDQyOS81NjkzODU4LmpwZw==/original/JXyT3Y.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMDQyOS81NjkzODYxLmpwZw==/original/rEIRL%2F.jpg]]
<p><em><em>As one goes further into the forest, the trees get taller, and it gets darker as their leaves block out more and more of the sun. There, too, it gets stranger and more dangerous. There are stories of what lies in the darkness of the deep forest: ancient ruins, crumbling and overgrown; terrible beasts unlike anything humanity has ever seen; villages of strange people who have never seen daylight; artifacts, lost relics, and more. There are those who grow tired of the peaceful tranquility of village life and attempt to explore the depths of the forest to see what is really there. Very few of them ever return.<br></em><br></em><br></p>
<p><strong>Into the Forest</strong> is a tabletop game for 1-3 players. Using a standard six-sided die, a deck of 52 playing cards, this guide, and your imagination, you go on a journey to discover what lies in the depths of the forest - and try to make it back out alive. One play session takes approximately 30 minutes. <br></p>
<p>It takes place in a sci-fi world inspired and partially influenced by Caves of Qud as well as the writings of Ursula K. Leguin. The game was also influenced by the single-player TTRPG games&nbsp;<strong><a href="https://stuartwatkinson.itch.io/wretched-wasteland">Wretched Wasteland</a></strong> and <strong><a href="https://balou85.itch.io/the-artifact">The Artifact</a></strong>.<br></p>
<p><strong>Accessibility</strong> is extremely important to Secret Foxfire and we've done our best to make sure everyone can enjoy the game. There are four PDF files available with your purchase. All contain the same information. The "simple print" versions are designed to be printed one-sided or simply read digitally on a screen. They should be compatible with screen readers for the visually impaired. The "booklet" versions are laid out for double-sided printing which can then be folded into a booklet. There are also "clean fonts" versions of both of these styles which use fonts which are more friendly to dyslexic readers.<strong> If Into the Forest is not accessible to you for any reason, or if you have any other feedback, please get in touch at secretfoxfire@gmail.com.</strong> We want everyone to be able to play and are committed to correcting any errors or oversights in the production of our games.</p><p>If the $3 minimum price for this game would be a hardship for you, get in touch via email to request a free copy.<br></p>
<p><strong>Secret Foxfire</strong> is a one-person company founded by writer Ari Lereve. Ari also writes essays, fiction, and more, as well as producing YouTube gaming videos and streaming on Twitch. For more info, check out Ari's <a href="https://linktr.ee/SecretFoxfire" target="_blank" rel="nofollow noopener" referrerpolicy="origin">LinkTree</a>. Patrons at $5 and up get access to these games for free and much more - check out Ari's <a href="http://patreon.com/secretfoxfire" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Patreon</a> page for more info.<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/Hdz5QoT2Yto" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzUzODE4LzQyMTIzMDQuanBn/original/pXisNf.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzUzODE4LzQyNzM3NjguanBn/original/krmSo4.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzUzODE4LzQyMTEwODAuanBn/original/OvLipp.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzUzODE4LzQyMTEwNzAuanBn/original/cjue90.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzUzODE4LzQyMTEwNzIucG5n/original/ityYTr.png]]
<p>Welcome to the Glacier. It is a
mysterious place just out of humanity's grasp, just a little bit
further than people, with their lights and their fire, can reach. </p>
<p>That is not, of course, to say it is
uninhabited. Nor is it to say that no one ever ventures into the
Glacier. People have their reasons. </p>
<p>You have your reasons.</p>
<p>Whatever their reason for trespassing
in Winter's sacred territory, people try and quickly find that they
do not belong here. </p>
<p><strong>You Will Need:</strong></p>
<ul>
	<li>One standard deck of playing cards
	</li><li>Two six-sided dice
	</li><li>A character marker like a figurine
	or small toy
	</li><li>A piece of paper and a pencil
</li></ul>
<p><strong>You Might Want:</strong></p>
<ul>
	<li>A hot drink
	</li><li>A favorite blanket
	</li><li>A nice journal
</li></ul>
<p>Into the Glacier is a single-player journaling (or, if you prefer, map-making) game inspired by lots of things, including:</p>
<ul>
	<li>Edmonton winters
	</li><li>The Great Glacier sequence in
	Final Fantasy 7, my favorite part of one of my favorite games.
	</li><li><a href="https://sorceress-witch.itch.io/mapping-the-catacombs-zine">Mapping the Catacombs</a>, from
	Sorceress &amp; Witch
	</li><li>The Wretched &amp; Alone games,
	based on <a href="https://loottheroom.itch.io/wretched">The Wretched,</a> from Loot the Room
	</li><li><a href="https://galazor.itch.io/the-estate-of-baron-archambaud-an-ingrate">The Estate of Baron Archambaud</a>, just a real work of art of a puzzle game.</li><li>The 2020 Winter Jam, which I
	barely completed this game in time for.&nbsp; &nbsp;
</li></ul>
<p><strong>Content Warnings:</strong></p>
<ul><li>Sickness - The Rimerein Unicorn</li><li>Death - The Ice Dragon’s Feather</li><li>Death - 4 of Spades</li></ul>
<p></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODY3MjM1LzQ4NzE2NTQucG5n/original/7sC4A7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODY3MjM1LzQ4NzE2NTgucG5n/original/WMKuLx.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODY3MjM1LzQ4NzE2NjIucG5n/original/M4Ruc4.png]]
<h2>Intra-System: Trust Issues is a short minimalistic Audio-Adventure based on decisions. </h2>
<p>
	You co-operate with a system to communicate with an unknown person.&nbsp;</p>
<p>He communicates with you per voice messages and asks for advice as he passes through different rooms.&nbsp;</p>
<p>
	He trusts you.
</p>
<p>
		Are you a nice person and willing to help him?
</p>
<p>
	Every playthrough of this audio-adventure takes about 15 minutes to complete.
	<br>
	Your decisions have a great impact on the game and make every run unique.
	<br>
	<br>
</p>
<p>
	<em>"After he screamed with all the intensity of a hyena caught in a bear trap, I resolved to help him out." - </em> <a href="https://www.rockpapershotgun.com/2017/05/06/free-loaders-this-boy-is-bananas/" rel="nofollow noopener" referrerpolicy="origin">Brendan Caldwell, Rock Paper Shotgun</a><br><br><em>"Figuring out the interface is not rocket science, but finding answers is." - </em><a href="http://www.electrondance.com/the-lever/" rel="nofollow noopener" referrerpolicy="origin">Joel Goodwin, Electron Dance<br><br></a><em>"Intra-System is something completely new [...]<span></span>" - </em><a href="https://indieflock.net/2017/05/10/vertrauen-ist-optional/#more-1401" rel="nofollow noopener" referrerpolicy="origin">Pascal W., Indieflock</a>
	<br></p>
<p>
	<br>
	<img alt="Key Features" src="http://smokesomefrogs.com/pics/key.png" loading="lazy">
</p>
<p>
	</p>
<p>• fully voice acted in English and German<br>• discover different paths and endings<br>• make decisions that matter<br>• experience a novel genre approach<br>• find unique collectables <br>• find secrets and explore the hidden lore around the setting</p>
<p></p>
<p>
	<img alt="Key Features" src="http://smokesomefrogs.com/pics/sssneu.png" loading="lazy">
</p>
<p>
	This is our first project at SmokeSomeFrogs and we've been working on it since July 2016.
	<br>
</p>
<p>
	For further information check out our website or twitter. You can also subscribe to our Newsletter if you want to! Want to report a bug or just say hello? Contact us at protagonist@smokesomefrogs.com :)
	<br>
	<br>
	<strong>Links:</strong><br>
• 
	<a href="http://smokesomefrogs.com/" rel="nofollow noopener" referrerpolicy="origin">Website</a>
	<br>
	• 
	<a href="https://twitter.com/smokesomefrogs/" rel="nofollow noopener" referrerpolicy="origin">Twitter</a>
	<br>
	• 
	<a href="http://smokesomefrogs.com/press" rel="nofollow noopener" referrerpolicy="origin">Press Kit</a>
	<br>
</p>
<p>Intra-System: Trust Issues was updated on 26.04.2019.<br></p>
<p>Version 1.2 "Repolished, Remastered, Repurposed!"</p>
<p>System Requirements: Works on your toaster. Recommended is an Intel Celeron J3060 (Dual Core 1,6 GHz), its iGPU (HD 400) and 2 GB RAM but it should perform well even on much older systems.<br></p>
<p>Please note: contains strong language.</p>
<p><iframe src="https://itch.io/embed/139031?bg_color=070707&amp;fg_color=ffffff&amp;link_color=ababab&amp;border_color=333333" style="color: inherit" width="552" height="167" frameborder="0"></iframe></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/lH-_g5nsHiw" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM5MDY3LzIwNzk3NDIucG5n/original/6nb9P6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5MDY3LzYzNjM5OS5wbmc=/original/TEI1%2B3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5MDY3LzYzNjQwMC5wbmc=/original/MHa%2BlB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5MDY3LzYzNjQwMS5wbmc=/original/nMpOOK.png]]
<p>They spoke with sweet words.&nbsp;</p>
<p>They said "work hard enough, and you can have it all!"&nbsp;
</p>
<p>They showed you images of the life you could lead. Wealth, family, comfort.&nbsp;
</p>
<p>They dazzled the world with ideas of "The Dream," all while doing everything in their power to assure that they would have while everyone else has not.
</p>
<p>The gods told stories, wove tales, captured hearts and minds. They built their power, their wealth, and they left everyone else in the dust. They still require the same sacrifices and devotion, but they ask time instead of blood. They ask attention rather than labor.&nbsp;
</p>
<p>They want for nothing and still they want more.
</p>
<p><strong>Now is the time for all of that to change</strong>. Your community, your people will assert themselves, will bring down the gods. Their strongholds will fall and all they have claimed for their own will be given to those from whom it was stolen.
</p>
<p>The Twilight of the Gods is upon the nine realms. Their fall will come at your hands.
</p>
<h3>A New Edda, Reforged&nbsp;</h3>
<p>The gods have built their corporations on the backs and bones of humans and giants alike. Across the City, each of the realms groans under the weight of their rule. They keep most people placated with trinkets, ads, and a steady diet of games and other consumable media.&nbsp;</p>
<p>You are not most people.&nbsp;</p>
<p>You and those in your neighborhood know the time of the gods is over. You are going to be the cold winds of a neon Fimbulwinter that ushers out the old world and brings in the new.&nbsp;&nbsp;</p>
<p>In this game, you can play anyone, be&nbsp;anyone who is part of the fight against the gods. Begin play with one set of characters, change focus to a different group, and tell the story of taking down the gods from any angle you choose.    This is a game about the whole of the people who will topple the gods.<br></p>
<h3>The System</h3>
<p>Iron Edda Reforged&nbsp;is powered by an all-new system designed by Tracy Barnett and playtested by Bee Zelda, Alex Flanigan, and Jeff Stormer. Characters are detailed, vibrant, and easy to make. The structure of play allows the players to change focus characters whenever they wish.&nbsp;
</p>
<p>By moving perspectives from one group of characters to another, any group can tell the same kinds of stories that we see in other forms of media. Changing characters and perspectives allows for the telling of the story as a whole, not just the experience of a small group of people.&nbsp;
</p>
<p><strong>Characters</strong>&nbsp;are made by choosing a&nbsp;<strong>warrior</strong>&nbsp;<strong>clan</strong>&nbsp;and assigning three details, which are short, descriptive, true phrases. Each detail has a rating,&nbsp;<strong>excellent</strong>,&nbsp;<strong>good</strong>, or&nbsp;<strong>fair</strong>. When a character takes a risky action, the number of d6s they roll depends on the detail they're using. If they roll poorly, they can spend a&nbsp;<strong>control</strong>&nbsp;<strong>point</strong>&nbsp;to re-roll their misses. To get more control points, players can choose for their character to fail a roll, narrating the outcome.
</p>
<p>Each warrior clan comes with a focus and a set of powers which can be used&nbsp;<strong>at-need</strong>,&nbsp;<strong>per scene</strong>, or&nbsp;<strong>per session</strong>. Jotunheim includes one set of powers for each of the ten warrior clans. Subsequent seasons will include different power sets that can be mixed and matched among seasons.
</p>
<p>When a character runs into trouble, they get&nbsp;<strong>glitch</strong>&nbsp;<strong>dice</strong>&nbsp;that they have to include in their die pool when they take their next action. &nbsp;When glitch dice hit, things go sideways for the character. Setbacks, advantages for the opposition, injury, or even death are all on the table if they're appropriate for the narrative.</p>
<p><strong>Want to hear how it developed? <a href="https://open.spotify.com/show/6ij3enGjfblHqLuvTzwiMk?si=2b6dff1e0b744aed" rel="nofollow noopener" referrerpolicy="origin">Check out the Puppet Strings podcast on the One Shot Network!</a></strong><br></p>
<h3>Alpha Release</h3>
<p>This version of&nbsp;Iron Edda Reforged is an alpha release. Anyone who purchases will get the beta as well as any subsequent updates, including the final.&nbsp;</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM0MDM4Ny83ODAxMDQ2LnBuZw==/original/sljGcG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM0MDM4Ny83ODAxMDQ4LnBuZw==/original/4Fgu1E.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM0MDM4Ny83ODAxMDQ5LnBuZw==/original/wt6JeJ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM0MDM4Ny83ODAxMDUxLnBuZw==/original/wEMH%2F6.png]]
<p><img src="https://img.itch.zone/aW1nLzQ0ODgwNTcucG5n/original/xVKSkV.png" loading="lazy"><em><br></em></p>
<p><strong><em>VIRUS-19 has ravaged the world!</em></strong></p>
<p><strong>Take control of a mindless citizen and live through a 7-day quarantine inside of Lockdown City.<br></strong></p>
<p><strong>Isolation Story</strong> is a <strong>LIFE-SIM</strong> style game where you buy supplies, avoid people, and manage your SICKNESS using the new GOV PHONE.<br></p>
<p>Drink water, wash your hands, and use Medical Supplies to keep the SICKNESS at bay.</p>
<p>Can you endure 7 days of Isolation inside of LOCKDOWN CITY? The game where speaking to people can make you sick!
</p>
<p>Among other things...</p>
<ul><li>Manage your FOOD, SICKNESS, and HAPPINESS to survive</li></ul>
<ul><li>Meet and interact with the other residents of LOCKDOWN CITY</li></ul>
<ul><li>Explore quirky subplots</li></ul>
<ul><li>Get into trouble with the authorities</li></ul>
<ul><li>Collect and battle USB-MON</li></ul>
<ul><li>+ More!</li></ul>
<figure><img src="https://img.itch.zone/aW1nLzQ0ODgyNTcuZ2lm/original/8B363v.gif" loading="lazy"><br><br></figure>
<p><strong></strong></p>
<p><strong>GAME INCLUDES:</strong></p>
<ul><li>NORMAL MODE: Survive 7 days of lockdown by working from home, shopping for supplies &amp; more</li></ul>
<ul><li>ISOLATION MODE: Complete the game without being able to leave your apartment</li></ul>
<ul><li>ENDLESS MODE: Play endlessly!</li></ul>
<ul><li>LOCKDOWN MODE: Unlocked by completing a certain amount of life achievements</li></ul>
<p>The game is compatible with most PC controllers.<br>A Controller is recommended for the smoothest play experience.</p>
<p>Releasing on the Nintendo Switch December 22, 2020.</p>
<div class=""><iframe width="500" height="281" src="https://www.youtube.com/embed/id9xniPtXx4" frameborder="0" allowfullscreen=""></iframe></div>
<p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/id9xniPtXx4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjMyMjYwLzQ0ODgxMDYuanBn/original/lwD27o.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjMyMjYwLzQ0ODgxMDUuanBn/original/XWhT4j.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjMyMjYwLzQ0ODgxMDQuanBn/original/jDYIKg.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjMyMjYwLzQ0ODgxMDcuanBn/original/svyUfq.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjMyMjYwLzQ0ODgxMDIuanBn/original/238f%2FQ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjMyMjYwLzQ0ODgxMDMuanBn/original/6B21Iq.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjMyMjYwLzQ1MTUyMzEuanBn/original/1B2EXV.jpg]]
<p>'It's Six Random Characters and a Single Floor Dungeon, That's the Whole Game' is a first person dungeon crawler. You start with a team of 6 random characters, and try to make your way through a single labyrinth. Each character has a Class and Race that influence them at the start, and you can find things along the way to stay strong as you try and reach the exit. There are 105 classes and 28 races, but only 4 races per class for a total of 420 characters (each race used 15 times).<br></p>
<p>Some classes fill a similar niche, such as the Cleric, Healer, and High Priest all being Devotion-focused healing classes. They differ in their unique skills, such as the Cleric's passive that increases their Devotion stat as a battle goes on, the Healer's 'Simple Labor' skill that lets them weakly heal someone without using up their turn, or the High Priest's 'Desperation' skill that fully heals an ally while stunning themself.</p>
<p>Races range from the typical like Dwarves (+30% Hp, Armor; -30% Speed, Evasions) to the less common like the flashy Kitsune (+30% STR/AGI/LOG/DEV/SPD; three times as likely to be targeted by enemy attacks) to the unusual like Slimes (Regens 10% Hp &amp; Mp each turn, +100% Speed, can acts twice each turn; cannot use any Equipment).</p>
<p>There are Toilets to scavenge equipment from, Computers to print out more Skill Licenses from, and Vending Machines to buy consumables from. There are also monsters, and a single door. Do your best to make it to the exit!</p>
<p>There is no persistent progress or saving; each run is its own thing. Once you beat the boss or all party members die, that's the end.</p>
<p>This is not a story-rich game or one where much information is given at all. This is not a roguelike where you can get a "God-run" and everything goes great. This is a game where you and your group is lost in a dungeon, and there is no one and nothing to save you but yourself.</p>
<p>While each dungeon is just one floor, it's expansive enough to make getting lost easy. A single run shouldn't take more than 30 minutes.</p>
<p><br></p>
<p>The demo only has a single map and layout, but is otherwise the same experience. There's also a free Mac build, since I know some people play my games on Macs but since the Catalina update I can't guarantee it works on those operating systems.</p>
<p><br></p>
<p><strong>CREDITS&nbsp;</strong>
</p>
<p>Coding:&nbsp;Yanfly, Cutievirus, Damien Crawford</p>
<p>Music: bitter sweet entertainment, Degica
</p>
<p>Engine: Enterbrain, KADOKAWA</p>
<p>Art: LuckyCassette, Damien Crawford</p>
<p>Game Font: Manaspace by Codeman38
</p>
<p>Writing, Design, Etc.: Damien Crawford<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzg0MzE1LzQzODkxMjgucG5n/original/7lDqaq.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzg0MzE1LzQzODkxNDIucG5n/original/4kfYSp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzg0MzE1LzQzODkxMzYucG5n/original/JlcJeP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzg0MzE1LzQzODkxMzcucG5n/original/tLbudx.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzg0MzE1LzQzODkxNzIucG5n/original/%2B1EsPv.png]]
<p>Made for Global Game Jam 2019 – What Home Means to You</p>
<p>Graphic design and layout by Vee Hendro (<a href="https://veerpgdesigns.com/" rel="nofollow noopener" referrerpolicy="origin">https://veerpgdesigns.com/</a>)</p>
<p><br></p>
<p>You are fellow travelers on a perilous journey trying to make your way home. The goal of the game is to make it back safely. On your journey, you will encounter various challenges using a blackjack-driven card system, and reflect on what drives you on your journey home.
  </p>
<p>This is a GM-less/GM-lite collaborative story game for 2-5 players. A game should take about 1-2 hours, and you will need a standard deck of playing cards, writing implements and paper or index cards to play.
  </p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzYwOTkwLzI3MjQ1NTkucG5n/original/a%2Fomcq.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzYwOTkwLzI3MjQ1NjAucG5n/original/kgzQs7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzYwOTkwLzI3MjQ1NjEucG5n/original/Gc9zDx.png]]
<h1>A game by python-b5 and Sam Gorman</h1>
<p>Jabberwocky is a game inspired by the 2D Zelda titles, based on the poem "Jabberwocky" by Lewis Carroll.</p>
<p>You are a young knight charged with saving the kingdom from a terrifying monster. You must adventure through the sprawling overworld, solve puzzles, and fight bosses on your journey. While you're playing, keep an&nbsp;eye out for secret tokens!</p>
<p>So good luck, brave knight, on your quest to slay the Jabberwock!</p>
<p><br></p>
<h1>Controls</h1>
<h2>Keyboard</h2>
<p>- arrow keys to move</p>
<p>- shift to run / skip text</p>
<p>- Z to interact</p>
<p>- X to attack</p>
<p>- F4 to toggle fullscreen<br></p>
<h2>Gamepad</h2>
<p>- left joystick / D-pad to move</p>
<p>- RT to run / skip text</p>
<p>- A to interact</p>
<p>- X to attack</p>
<p><br></p>
<p><small></small></p>
<p><small></small></p>
<p><small></small></p>
<p><small></small></p>
<p><small></small></p>
<p><small></small></p>
<p><small></small></p>
<p><small></small></p>
<p><small></small></p>
<p><small></small></p>
<p><small></small></p>
<p><small></small></p>
<p><small></small></p>
<p><small></small></p>
<p><small></small></p>
<p><small></small></p>
<p><small></small></p>
<p><small></small></p>
<p><small></small></p><small>
<p>Programming / level design by python-b5</p>
<p>Art / level design by Sam Gorman</p>
<p>Music by&nbsp;<a href="https://visager.bandcamp.com/" rel="nofollow noopener" referrerpolicy="origin">Visager</a></p>
</small><p><small><small></small><br></small><br></p><p><small></small></p>
<p><small></small></p>
<p><small></small></p>
<p><small></small></p>
<p><small></small></p>
<p><small></small></p>
<p><small></small></p>
<p><small></small></p>
<p><small></small></p>
<p><small></small></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDQxODQ0LzI5NDkwMzEuanBn/original/kZW35L.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQxODQ0LzI5NDkwMzMuanBn/original/Lt0d2R.jpg]]
<p><img src="https://img.itch.zone/aW1nLzM1ODk5ODMuZ2lm/original/a6qCqY.gif" loading="lazy"></p>
<h2>Impress the Gods!</h2>
<p><em>Jotun</em>&nbsp;is a hand-drawn action-exploration game set in Norse mythology.<br><br>In&nbsp;<em>Jotun</em>, you play Thora, a Viking warrior who died an inglorious death and must prove herself to the Gods to enter Valhalla.<br><br>Explore vast regions of Norse Purgatory to find runes to unleash the jotun, giant Norse elementals. Fight them using only your massive two-handed axe, the blessings of the Gods and your skills!<br><br>Jotun: Valhalla Edition features Valhalla Mode, the ultimate battle against even fiercer versions of the Jotun! A true challenge for those who wish to impress the Gods!<br></p>
<h2>Features</h2>
<ul><li>Experience beautiful hand-drawn animation</li><li>Fight five epic jotuns, giant Norse elementals</li><li>Explore nine vast and mysterious levels filled with Viking mythology</li><li>Learn about Thora's life and death in an overarching story</li><li>Summon powers bestowed upon you by the Viking Gods</li><li>Hear authentic Icelandic voice-overs</li><li>Listen to an amazing original soundtrack, specifically composed for every gameplay moment by Max LL</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/hFC0P9E4r1w" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjY1MDIwLzM1OTAwNDgucG5n/original/4W0YVQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY1MDIwLzM1OTAwNDkucG5n/original/c1hhtB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY1MDIwLzM1OTAwNTAucG5n/original/L51371.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY1MDIwLzM1OTAwNTEucG5n/original/rv321Q.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY1MDIwLzM1OTAwNTIucG5n/original/C8t%2BAP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY1MDIwLzM1OTAwNTMucG5n/original/dGcmUA.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY1MDIwLzM1OTAwNTQucG5n/original/46l4gV.png]]
<p>JRNL is a tool built for easy daily journaling. When you open JRNL each day&nbsp;and write a journal entry, the entry gets saved and that day's square is filled in&nbsp;on the calendar. Previous days' entries can be viewed by clicking on their corresponding squares on the calendar.&nbsp;<br></p>
<p></p>
<h1>Features</h1>
<p>While JRNL is intended to be simple and easy to use, it still provides several advanced features:&nbsp;</p>
<ul><li><strong>Daily Notifications:</strong> Set a time for JRNL to remind you to write in your journal.</li><li><strong>Auto-Save</strong>: Automatically save your entries after 10 seconds of inactivity.</li><li><strong>Full-Year Export:&nbsp;</strong>Export a year's worth of journal entries into a single,&nbsp;archivable HTML file.</li><li><strong>Read-Only Past Entries:&nbsp;</strong>By default, entries can only be edited on the day that they are created.</li><li><strong>Themes:&nbsp;</strong>Change the look of JRNL&nbsp;with built-in color themes.</li><li><strong>Smart Text Editing:&nbsp;</strong>Entries are edited using a rich-text editor, allowing for text formatting (bold, italics) and the ability to include&nbsp;links and images.</li></ul>
<p>All of these features can be enabled/disabled or customized through the settings menu or in-depth via the config file.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjI2Nzc2LzgzNTAyNjAuZ2lm/original/fsKFpi.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjI2Nzc2LzgzNTAzMjQuZ2lm/original/4E9wTH.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjI2Nzc2LzgzNTAyNjEucG5n/original/LUrzfQ.png]]
<p><span class="">Jupitron</span>, foster child of the arcade era, brings you this action-packed compilation including never released games. You may had the chance to play some of his over 40 published games, but not these. And if you miss this opportunity you may never be able to!<span class=""><em><br></em></span>Get your hands on these exclusive 13 games:<br><br>- Ashigaru<br>- Cingularity<br>- Don´t Code<br>- Iron Defender<br>- MESS<br>- NEO Guardian<br>- Psychobruce<br>- Reverse<br>- Sk3letroll<br>- Ten<br>- Survival of the Undead<br>- Telepulse<br>- Void.Exe<br><span class=""><em><br></em></span>He painted the sprites. He created the sound effects. He made the music. This one-man orchestra can teleport you to ancient Japan to defend yourself from evil ninjas with a katana, and 5 minutes later put you in the front-line of a frantic defense against an almighty alien colossus. Your brain will crave when the laws &amp; roles of Pong get mixed up a little bit or while hundreds of blinking coins sum up to your score in Telepulse.<span class=""><em><br></em></span>Hours of arcade fun. With 3 dollars you will get more endorphine flow than with that sugary latte you buy every morning. <span></span></p>
<p><br></p>
<p>Cover art by Bruno Reale</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/6vwris6_sVc" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzg4ODkvMTY5NTcwLmpwZw==/original/Hf1EDb.jpg]]
<p><u><em>Cover art by Goly Andrade!</em></u></p>
<p>Just another compilation of games, from around my second year making games.</p>
<blockquote>Includes 18 games:<br><br>- Recasquares<br>- Eyebleed hypnosis<br>- Psylove 2600<br>- Genkido<br>- Recoil<br>- Deathbutton<br>- Reverse<br>- Poca's Night Golf<br>- Survival of the Undead<br>- Windows Ninja<br>- Left&amp;Right<br>- Advent**beep**<br>- Stev**beep**<br>- Benny n' Lynne<br>- Salvation Y2K<br>- Vatnou<br>- aRCANE<br>- Fireskulls</blockquote>
<p>I've shared really incredible moments, on events, in place and online game jams (looking at you Ludum dare) so hope you can enjoy as I've enjoyed each moment I've spent making every one of this games (there's part of some of the most talented people I've meet in some of these games).<br></p>
<p>Almost each of this games is avalaible on Newgrounds as well but there's a sense of collectible with downloading stuff that recalls the Napster era with a 56k modem (and has some bonus games &amp; stuff as well).</p>
<p>Thank you all for playing, hope you enjoy.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/BVZ-q0sZ0e8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI4MDcxLzU4OTQzMi5qcGc=/original/Gj%2BR4u.jpg]]
<p><img src="https://img.itch.zone/aW1nLzE2NDI5NTMucG5n/original/M9aua%2F.png" loading="lazy"><em>
</em></p>
<p><em><em>Kaiju Big Battel: Fighto Fantasy is 16-bit styled RPG featuring turn-based combat, plenty of exploration, and a funky soundtrack to pump you up. This is an officially licensed game based on the live-action monster wrestling group Kaiju Big Battel, who have been performing their Godzilla-meets-WWE act for over 20 years.</em></em></p>
<p><em><em>Designed for Kaiju fans and newcomers alike, Fighto Fantasy takes players on a quest across time and space as they work to undo damage caused by the evil Dr. Cube as he rampages through history in search of fame and glory. With seven main playable heroes (and a secret one to unlock), players explore six time periods and punch out dozens of deadly monsters.</em><img src="https://img.itch.zone/aW1nLzE2NDI5NTQucG5n/original/6ZfZqZ.png" loading="lazy"></em></p>
<p><em><em><em>All the world is watching as the Kaiju Big Battel Title Fight is about to begin: The diabolical Dr. Cube vs. the patriotic pugilist, American Beetle! Things take a sudden turn when Cube pulls out a secret weapon that rips open portals into history. Now it's up to the Kaiju Heroes to pursue Cube across the centuries, from Egypt to Rome to Russia and beyond! Is the mad doctor pursuing dangerous artifacts lost to time, or does he just want to deface famous landmarks with his own ugly mug?</em></em></em><img src="https://img.itch.zone/aW1nLzE2NDI5NTUucG5n/original/KqGFxC.png" loading="lazy"><br></p>
<p><em><em><em></em></em></em></p>
<p><em><em><em></em></em></em></p>
<p><em><em><em></em></em></em></p>
<p><em><em><em></em></em></em></p><em><em><em>
<p><em>⚫ Combat: No random encounters here; touch enemy NPCs on the map to trigger turn-based battles. Each of the seven main heroes has their own strengths and weaknesses.<br>⚫ Side stories: When you're not chasing Dr. Cube through time, take a minute to help out some locals. Slay a musclebound mummy, rescue lost Kaiju heroes, adopt cats!<br>⚫ Map abilities: Each hero has a unique ability to interact with environmental objects, unlocking hidden paths and secret treasures.<br>⚫ Difficulty selection: Easy Mode for a relaxed experience, Normal Mode for players who want some tense fights, and Hard Mode for players looking for more deadly dangers.<br>⚫ 12+ hours of RPG adventure.</em></p>
<figure><em><img src="https://img.itch.zone/aW1nLzE2NDI5NTYucG5n/original/mn95Ea.png" loading="lazy"><br></em></figure>
</em><p><em></em><br></p><p><em></em><br></p>
<p><em></em><br></p>
<p><em></em></p>
<p><em><em><em><em>Super Walrus Games has been making independent games for over 15 years, starting with the release of Walthros in 2002. Fighto Fantasy is written and designed by Super Walrus Games boss Paul Harrington, with graphics by Soda Piggy (W. James Pandelis), music by Glock &amp; mr8bit, additional graphics by Zack Corcoran, and minigames by James Paige and Richard "Spoonweaver" Upchurch.</em></em></em></em></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p></em></em>

<iframe width="720" height="450" src="https://www.youtube.com/embed/UnVY4Q3nZT0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzMxODY5LzE2NDI5NzQuanBn/original/yulTNK.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzMxODY5LzE2NDI5NzUuanBn/original/ADyKRH.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzMxODY5LzE2NDI5NzYuanBn/original/0hMZN0.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzMxODY5LzE2NDI5NzkuanBn/original/llZiFF.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzMxODY5LzE2NDI5ODAuanBn/original/byGuVh.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzMxODY5LzE2NDI5ODEuanBn/original/3H4pBh.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzMxODY5LzE2NDI5ODIuanBn/original/hkO0RV.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzMxODY5LzE2NDI5ODMuanBn/original/o3w4A3.jpg]]

<h2><strong>!! i'm hosting a multimedia jam called the <a href="https://itch.io/jam/transrage" target="_blank">TRANS FUCKING RAGE JAM</a>. it runs from march 10th to april 10th.&nbsp;join <a href="https://itch.io/jam/transrage" target="_blank">here</a>. spread the word <a href="https://twitter.com/stargazersasha/status/1501395504818655233?s=20&amp;t=xh7UsZ8zMUXq3SFgoiwaRQ" target="_blank" rel="nofollow noopener" referrerpolicy="origin">here</a>. !!</strong></h2>
<p><em>We can’t go back to who we were before, so light a candle and follow me. Who knows what we’ll find in that darkness?</em><br></p>
<p>KENZIE’S PROJECT is a perilous adventure of clever ambition and weird academia. Play as science weirdos and literature freaks, academics haunted by our knowledge — racing to complete our projects before the world catches up to us.
</p>
<p>This is a three-player tabletop roleplaying game. You'll need exactly three players, some small objects to represent tokens, and three to five hours.<br></p>
<p><em>[<strong>Content warnings </strong>for this game: school anxieties; unreality; themes of manipulation, death and dying; mentions of self harm]<br></em></p>
<p><strong>testimonials<br></strong></p>
<p>
</p>
<ul><li><em>"Fantastic, downright chilling... So wonderful I want to not read it again and let playing bring out all the things I've missed."</em><em><br>—</em> <a href="https://usducktape.itch.io/">Duck</a></li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIyNTIwNi83MjEyNDIyLnBuZw==/original/D7AUNV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIyNTIwNi83MjEzMzk5LnBuZw==/original/OXhy2d.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIyNTIwNi83MjExNjU2LnBuZw==/original/xlCiH3.png]]
<p>KIDS allows you to move with and against crowds until everyone is gone.</p>
<p>KIDS is a short interactive animation drawn by Michael Frei and coded by Mario von Rickenbach, their second collaboration after the award-winning project <a href="https://plugplay.ch" target="_blank" rel="nofollow noopener" referrerpolicy="origin">PLUG &amp; PLAY</a><span></span>.<br></p>
<p>Play time: between 15 – 30 minutes.</p>
<p>Website:&nbsp;<a href="https://playkids.ch" rel="nofollow noopener" referrerpolicy="origin">https://playkids.ch</a></p>
<p>KIDS is co-produced by Playables, SRG SSR and Arte. The game is published in collaboration with Double Fine Presents for mobile devices and computers.<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/GAyvZ22AxNw" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDI4MTM5LzIxMzk3NDkucG5n/original/LsElUN.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDI4MTM5LzIxMzk3NDcucG5n/original/CIU04O.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDI4MTM5LzIxMzk3NDIucG5n/original/Ffo1lE.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDI4MTM5LzIxMzk3NDMucG5n/original/MQpT4U.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDI4MTM5LzIxMzk3NTAucG5n/original/M0QkJx.png]]
<p><strong>Kill the Superweapon</strong>&nbsp;is a 3D Twin-Stick Action game. The game uses a&nbsp;<strong>diorama-style perspective</strong>, allowing for twin-stick shooting, jumping, and 3D environments.<br><br>In each of the game's levels, you must navigate a facility housing one of the bio-mehcnaically modified super-soldiers known as&nbsp;<strong>Superweapons</strong>. You must search the facilities to find special ammunition that will let you take down the Superweapon. However, the Superweapons are not content to just wait around for you. They will&nbsp;<strong>roam from room to room</strong>&nbsp;in pursuit of the player.<br></p>
<h2>Story</h2>
<p><strong>Samantha Kill</strong>&nbsp;is on a mission to take down the weapons manufacturer&nbsp;<strong>Abaddon Inc.</strong>&nbsp;They are developing a series of Superweapons, bio-mechanically altered Supersoldiers who will be the weapons of the future. They plan to bring about World War III, and sell their Superweapons to all sides. Samantha Kill is armed with the&nbsp;<strong>Total Ablation Beam</strong>, an experimental weapon stolen from Abaddon Inc., and the only thing which can harm the Superweapons. She must break into Abaddon's labs, find batteries to charge up the beam, and take out the Superweapons. But, be warned, the Superweapons are not content to wait around for Samantha to find them. They'll roam the level in pursuit of our hero.</p><p>Kill the Superweapon is also available on Steam: <a href="http://store.steampowered.com/app/758070/Kill_the_Superweapon/" rel="nofollow noopener" referrerpolicy="origin">http://store.steampowered.com/app/758070/Kill_the_Superweapon/</a><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjMxNzQxLzEwOTg3MDgucG5n/original/ULQhJH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjMxNzQxLzEwOTg3MTIucG5n/original/g2Uw7M.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjMxNzQxLzEwOTg3MDkucG5n/original/BG8Zwq.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjMxNzQxLzEwOTg3MTEucG5n/original/24ljEM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjMxNzQxLzEwOTg3MTAucG5n/original/UhEEFf.png]]
<h1>The Prophesy:</h1>
<p>The Sea, <strong>King Llyr</strong>, has died. His family gather in the great hall to hear his will be known, spoken by his spouse and steward, Penarddun. It is as many suspected, and as a few feared: All the lands of Prydein, its mountains and sheep, all its farmers and guardsmen, and all the powers of statehood are to be inherited solely by the King’s youngest born — the teenaged princeling Branwen — rather than being divided equally...</p>
<p>The reason for this sudden change in tradition? Branwen was prophesied to become the next King by his witch-child Manawydan, when they said:</p>
<blockquote>One born of flame and soot:<br>Who will befriend the Fair-Hound in the moonlit valley,<br>And will come of age upon the night of their Father’s natural passing,<br>And thus, before daybreak, will inherit all the world of Men?</blockquote>
<p>So now each Lordling must choose: <strong>Will you follow your father’s wishes and swear fealty to Branwen, or revolt and fight against the tide of destiny and take what you think is rightfully your, or perhaps you will find another way?</strong></p>
<h2><em>The game at a glance:<br></em></h2>
<ul><li><em>A print-n'-play roleplaying game about a family of giants, their feuds, and a prophesy that may spell doom.<br></em></li><li><em>Inspired by Welsh mythology! Play as characters from the Mabinogion.<br></em></li><li><em>Each player needs only a handful of six-sided dice&nbsp; (D6s), a pencil,  a good sense of wonderment, and a print-out of their character sheet.<br></em></li><li><em>Not </em>inherently<em> built as a 'player vs. player' type game, but ending everything in a duel or
starting a civil war are definitely some possible outcomes of the scenario.<br></em></li><li><em>It can be played
multiple times, and each time may be different. </em><em><br></em></li><li><em>The system uses pool-based success counting, and draws on factors from different sources to adjust difficulty. (See screenshots, right / below).<br></em></li><li><em> Licensed under <strong>CC BY-SA</strong>, if you want to hack it.</em></li></ul>
<h2>The&nbsp;Cast:</h2>
<ul><li><strong>Fran:</strong> Gallant but Austere. A great warrior and poet. Feels robbed by the unorthodox changes made by the
prophesy, and wants the will to be rescinded. Thinks
Manawydan is a fraud. Has never trusted Dormadd.</li></ul>
<ul><li><strong>Manawydan</strong>: Apprehensive but Excited. Wants their fortune to come true peacefully. Doesn’t have total control over their
magic. Wants the best for the family, but has had some
conflicts with them over the years.</li></ul>
<ul><li><strong>Nisyn</strong>: Calm and Inquisitive. Will follow the prophesy only if it’s true, but wonders about its legitimacy and the timing
of Manawydan’s claims. Wants answers. Offers advice to
Branwen, but only to serve their own interests.</li></ul>
<ul><li><strong>Efnisyn:&nbsp;</strong>Brash and Ambitious. A bit of a trickster. Wants to be King instead of Branwen, and will try anything to prove
they are worthy. Thinks they may be able to twist
Manawydan’s words to their favour.</li></ul>
<ul><li><strong>Branwen:&nbsp;</strong>Kindhearted, but a bit Naïve. Saddened by the death of the King, and a little unsure about taking on this
burden, but wants to make him proud. Doesn’t like all
the sudden attention, though. Keeps Dormadd close.</li></ul>
<ul><li><strong>Dormadd</strong>: Resembling of a handsome wolf at first, but perhaps a little rounder. <em>Truly, the best of dogs</em>. Believes they
were sent by the Silver Wheel to protect the prophesied
King with their life, should it come to that.</li></ul>
<h3>Explore Celtic Myths &amp; Folklore:</h3>
<p>The game is set in the glass hall of the&nbsp; Castle of the Winds, which floats in the cliffs&nbsp; above Dinas Olai, the city of light, the capital&nbsp; of Prydein, in the misty mountains of Eryri.
  </p>
<p>These names and places are all inspired by stories from the Mabinogi and the Triads, in a place&nbsp; and a time before these fair lands were&nbsp; touched by Roman hands. Familiarity with&nbsp; bronze-age history or Brythonic folklore is&nbsp;not required to play though. If you’re more&nbsp; familiar with Norse Mythology, then you’re&nbsp; part-way on the right track. The names are&nbsp; different, but the context is similar.<br></p>
<p>
</p>
<p>A full pronunciation guide and a family tree of the celtic gods are also provided!<br>
</p>
<h4>An Improvisational Roleplaying Game (For 3-7 Players):</h4>
<p><em>This is a<strong> 25 page</strong> demo scenario for a bigger game called AGORA (not yet released). It can be played in 3-4 hours, or continued over several sessions. Familiarity with the full rules is not required to play.</em><strong><br></strong></p>
<p>(<strong>Potential) Content Warnings:&nbsp;</strong>Family tragedy, Violence, and Conspiracy. Alcohol, Black-Magic, and Animal Abuse.</p>
<figure><img src="https://img.itch.zone/aW1nLzgzMDY5MjAucG5n/original/VL4PhD.png" loading="lazy"><br></figure>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQxNzczNi84MzU3NDg2LmpwZw==/original/r7zcRS.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxNzczNi84MzU3NDg4LmpwZw==/original/aYsKxb.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxNzczNi84MzU3NDg5LmpwZw==/original/F7SYam.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxNzczNi84MzI2NDgxLmpwZw==/original/J3YDqX.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxNzczNi84MzI2NDY5LnBuZw==/original/CnDeMj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxNzczNi84MzI2NDcwLnBuZw==/original/b71g5f.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxNzczNi84MzMzMTE4LnBuZw==/original/WJHdi6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQxNzczNi84Mjk4NjM0LmpwZw==/original/NxS54x.jpg]]
<p><strong>Kingdom Two Crowns</strong> is a side-scrolling micro strategy game with a minimalist feel wrapped in a beautiful, modern pixel art aesthetic. Play the role of a monarch atop their steed and recruit loyal subjects, build your kingdom and protect it from the greedy creatures looking to steal your coins and crown. 
</p>
<p>In the brand-new campaign mode, monarchs must now work to build a kingdom that stands over time until finding a way to defeat the <em>Greed </em> for good. Explore the environments to discover new mounts and secrets hidden in the deep. </p>
<p>But you don’t have to rule alone! Introducing a cooperative play experience that is totally unique to Kingdom Two Crowns, monarchs can now choose between a classic solo experience or seek the assistance of a friend, working together locally or online, dropping in or out at will.</p>
<p><img src="https://img.itch.zone/aW1nLzgzMTM3NTkuZ2lm/original/weWGNL.gif" loading="lazy"><br></p>
<p>In addition to the traditional medieval setting, Kingdom Two Crowns also includes: </p>
<p>👑 <strong>Dead Lands<br></strong>Enter the dark lands of Kingdom. Play as unique monarchs, including the Shardbinder Miriam, with powerful traits from the gothic horror action-RPG Bloodstained. Ride the gigantic beetle steed to lay out traps, the eerie undead mount that summons barriers impeding the progress of the Greed, and from Bloodstained the mythic demon horse “Gaming” with its powerful charge attack. Building your Kingdom has never been spookier!</p>
<p>👑 <strong>Shogun<br></strong>Journey to lands inspired by the architecture and culture of feudal Japan. Play as the mighty Shogun or Onna-bugeisha, enlist the support of the ninja, lead your soldiers to battle atop the mythological Kirin, and form new strategies as you brave the Greed hiding in the thick bamboo forests.<br></p>
<p>A challenge awaits all who seek it here, whether you are a first-time ruler or a long-time fan. So be brave, great monarchs, for in the end Two Crowns shall reign stronger than one!</p>
<figure><img src="https://img.itch.zone/aW1nLzgzMTMzNzMuZ2lm/original/xNCbVr.gif" loading="lazy"><br><br>Please note that the itch.io version of Kingdom Two Crowns does not grant access to online multiplayer or the possibility to unlock the Norse Lands DLC. Both of those features are available via Steam.<br></figure>

<iframe width="720" height="450" src="https://www.youtube.com/embed/GnqjjY38anQ" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTY1NS84MzEzMjI0LmpwZw==/original/ZNoVIj.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTY1NS84MzEzMjI1LmpwZw==/original/zysoyg.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTY1NS84MzEzMjI2LmpwZw==/original/oZI9Jz.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTY1NS84MzEzMjI3LmpwZw==/original/Xilvqz.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTY1NS84MzEzMjI4LmpwZw==/original/%2FEYttg.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTY1NS84MzEzMjI5LmpwZw==/original/lFxw0d.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTY1NS84MzEzMjMwLmpwZw==/original/vfFy6J.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTY1NS84MzEzMjMxLmpwZw==/original/0gxfry.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTY1NS84MzEzMjMyLmpwZw==/original/uYNm6M.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTY1NS84MzEzMjMzLmpwZw==/original/jdMAJw.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTY1NS84MzEzMjM0LmpwZw==/original/z%2F5K8I.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTY1NS84MzEzMjM1LmpwZw==/original/UUSIDW.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNTY1NS84MzEzMjM2LmpwZw==/original/MnEaMC.jpg]]
<p>The blind and disgraced rhythm-warrior Klang gets a second shot at life when he's "blessed" with a new pair of eyes by his former enemy: The otherworldly, all-seeing deity, A-Eye. Sharing the desire for revenge against Soundlord Sonus, they form an uneasy alliance to accomplish their mutual goal.&nbsp;</p>
<p><strong>ALSO AVAILABLE ON STEAM, SWITCH, XBOX ONE &amp; SERIES X|S, PS4 &amp; PS5!<br></strong><em>Steam version now supports Cloud Saves!</em></p>
<p><strong>SUPPORT THE COMPOSERS!
</strong><a href="https://blindedm.com/klang-game" target="_blank" rel="nofollow noopener" referrerpolicy="origin">https://blindedm.com/klang-game</a>
</p>
<p><u>CONTROLS
<br></u>Mouse &amp; Keyboard:
Point and click, WASD can be used for dashing.
Esc/Backspace/Middle mouse button to pause game.
</p>
<p>Gamepad:
Aim from Klang's position with left stick, attack with left mouse button
</p>
<p><u>CREDITS
<br></u><strong>Created by:&nbsp;</strong>Tinimations
<strong>Lead audio:&nbsp;</strong>bLiNd
<strong>Guest artists for the demo:&nbsp;</strong>City Girl, James Landino, Steven Silo
<strong>
Features of the full version of Klang 2:</strong>
</p>
<ul><li>30 levels of intense EDM-Action. Playable at both normal and fast speed for extra challenge.
</li><li>Semi-procedural combat system ensuring the same track never plays exactly the same.
</li><li>Several boss types gradually changing the rules of engagement.
</li><li>Music by the legendary composer bLiNd, and other talented artists such as James Landino, Arcien, Nhato, Steven Silo, City Girl, cYsmix and more!
</li><li>Techno-greek aesthetic is inspired by synthwave, musical symbolism and greek sculpture.
</li><li>Playable with numerous control inputs such as: Mouse, gamepad, drawing tablet and touch.
</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/Qq2NQsF54eo" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNDE3NC84MzI4NDY2LnBuZw==/original/BrGtUF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNDE3NC84MzI4NDY4LnBuZw==/original/C%2FPiUV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNDE3NC84MzI4NDY3LnBuZw==/original/n86Ehh.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNDE3NC84MzI4NDY5LnBuZw==/original/nqxSgK.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNDE3NC84MzI4NDY1LnBuZw==/original/ETMqpn.png]]
<p><img src="https://img.itch.zone/aW1nLzMzNzcyMzMuZ2lm/original/c6aaTi.gif" loading="lazy"></p>
<p><em>Knight Bewitched 2</em> is a yuri-style jRPG featuring a group of heroes and mercenaries as they work together to restore a lost kingdom and face a new threat in the world of Ambrose.<br></p>
<p><img src="https://img.itch.zone/aW1nLzMzNzcyNDQucG5n/original/bNPN9h.png" loading="lazy"><br></p>
<ul><li>Turn-based jRPG gameplay</li><li>SNES-style 16-bit pixel graphics</li><li>Adjustable difficulty - play on Casual for a story-driven experience or Heroic for a real challenge</li><li>Play with on-screen enemies for more control or classic random encounters</li><li>Face rare and mighty Alpha Beasts for treasure and glory</li><li>Find unique Skill Enhancers hidden across the Ambrose Underworld</li><li>Game length: ~12+ hours</li></ul>
<p><img src="https://img.itch.zone/aW1nLzMzNzcyNDcucG5n/original/2AsJjR.png" loading="lazy"><br></p>
<p>The death of <em>Typhus the World-Breaker</em> brought peace to the world of Ambrose--temporarily.</p>
<p>Three months after the events of <em>Knight Bewitched</em>, mercenaries Rae and Alex are hired by the Deepforge Expedition to explore the ruins of an ancient Halonian temple. Beneath the temple is an entrance to the Ambrose Underworld and the expedition's target, the lost fortress Deepforge I.</p>
<p>Though Deepforge I is successfully reclaimed, questions arise after the discovery of a mysterious cult embedded within the expedition. Now Rae and Alex, alongside heroes Ruth, Gwen and other allies, must investigate and discover the truth behind the cult and the Deepforge Expedition before it's too late.</p>
<p><em>Knight Bewitched 2</em>&nbsp;is a stand-alone game, but it helps to have played the first&nbsp;<em>Knight Bewitched</em>&nbsp;for context and character backstory.&nbsp;<em>Knight Bewitched 2</em>&nbsp;is the second entry in the&nbsp;<em>Knights of Ambrose Saga.</em><br></p>
<p>All game sales on Itch.io go directly toward funding my future projects. Thank you for your contribution!<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/dAgm-u00Q-E" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjMyNDgzLzMzNzczMTAucG5n/original/NHPTah.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjMyNDgzLzM3OTY3MDkucG5n/original/67YcDG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjMyNDgzLzMzNzczMDcucG5n/original/4aMn93.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjMyNDgzLzM3OTY3MTAucG5n/original/CvmDvz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjMyNDgzLzMzNzczMDgucG5n/original/n%2FqFfE.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjMyNDgzLzMzNzczMTEucG5n/original/Jp5oE9.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjMyNDgzLzMzNzczMDYucG5n/original/Wh%2Brq6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjMyNDgzLzMzNzczMTIucG5n/original/K6J1uZ.png]]
<p><em>Knight Bewitched: Enhanced Edition</em> is a turn-based jRPG that follows the love story of innocent witch Gwen and Ruth, the stalwart knight tasked to slay her.</p>
<h3>Features:</h3>
<ul> <li>Genre: Casual yuri jRPG
 </li><li>Three difficulty modes: Play on Casual for a story-focused experience or Hard for jRPG veterans
 </li><li>SNES-style retro pixel graphics
 </li><li>Turn-based jRPG gameplay
 </li><li>Game length: ~12-20 hours
 </li><li>Platforms: PC (Steam, Itch, Aldorlea)</li></ul>
<h3>Enhanced Edition features:</h3>
<ul> <li>Quality-of-life features such as 8-directional movement, auto-saving, an auto-battle option and UI enhancements
 </li><li>A new charm-crafting system
 </li><li>An (almost) completely re-written script
 </li><li>New locations and many revamped older locations
 </li><li>Many brand new enemies, bosses, items, weapons and armors
 </li><li>An in-game encyclopedia to track the above new things
 </li><li>Challenging Alpha Beasts and new secret areas
 </li><li>New content with new cutscenes</li></ul>
<h3>Story</h3>
<p>After slaying the dragon Typhus the Younger, fearless knight Ruth and her companions are given a new quest: to hunt down Gwen, a witch accused of poisoning the townsfolk of Northshire.<br> &nbsp;<br> While on the hunt, Ruth collapses from illness and is nursed back to health by none other than the very same witch. Unable to slay the innocent woman who saved her life, Ruth is jailed on suspicion of bewitchment and is later saved by her comrades.<br> &nbsp;<br> When an old threat to the world of Ambrose re-emerges, Ruth seeks out Gwen for aid alongside her elvish squire Stray and mysterious rogue Uno. As their journey progresses, a flame slowly ignites between the hearts of Ruth and Gwen...</p>
<p><em>Knight Bewitched&nbsp;</em>is a stand-alone game and the first entry in the&nbsp;<em>Knights of Ambrose Saga, </em>which includes&nbsp;<em>Knight Bewitched 2&nbsp;</em>and&nbsp;<em>Celestial Hearts</em>.<br></p>
<p>All game sales on Itch.io go directly toward funding my future projects. Thank you for your contribution!<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/hBrAtLB-RLI" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDQ0MjM2LzY2Mjk3MTkucG5n/original/rfeHp0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQ0MjM2LzY2Mjk3MjAucG5n/original/LTRdEV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQ0MjM2LzY2Mjk3MjIucG5n/original/2EQlo1.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQ0MjM2LzY2Mjk3MjEucG5n/original/78UihV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQ0MjM2LzY2Mjk3MjMucG5n/original/El8l92.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQ0MjM2LzY2Mjk3MjQucG5n/original/%2B8%2FTcZ.png]]
<p><strong>KOBUILD WITH KOBOLDS&nbsp;</strong></p>
<p>Kobrave the unknown, kobuild some buildings and realise the potential kobrilliance in your kobrain!</p>
<p>Be KOBRAVE and find resources and KOBUILD a civilisation from scratch. All you need is a handful of dice and a pencil.&nbsp;</p>

[img width=500 [https://img.itch.zone/aW1nLzc4MDIwMjkucG5n/original/PskvKS.png]]
<p><span class="" lang="EN-US"><span class="">Knowledge is p</span></span><span class="" lang="EN-US"><span class="">ower</span></span><span class="" lang="EN-US"><span class="">. By a</span></span><span class="" lang="EN-US"><span class="">&nbsp;sudden</span></span><span class="" lang="EN-US"><span class=""> circumstance,&nbsp;</span></span><span class="" lang="EN-US"><span class="">everything you read and learn</span></span><span class="" lang="EN-US"><span class=""> becomes true in front of your eyes</span></span><span class="" lang="EN-US"><span class="">.</span></span><span class="" lang="EN-US"><span class=""> </span></span><span class="" lang="EN-US"><span class="">When </span></span><span class="" lang="EN-US"><span class="">a gruesome</span></span><span class="" lang="EN-US"><span class=""> </span></span><span class="" lang="EN-US"><span class="">verse</span></span><span class="" lang="EN-US"><span class=""> written</span></span><span class="" lang="EN-US"><span class=""> on</span></span><span class="" lang="EN-US"><span class=""> </span></span><span class="" lang="EN-US"><span class="">a wall </span></span><span class="" lang="EN-US"><span class="">in blood</span></span><span class="" lang="EN-US"><span class=""> </span></span><span class="" lang="EN-US"><span class="">turns into</span></span><span class="" lang="EN-US"><span class=""> reality, do you want to keep reading?</span></span><span class="" lang="EN-US"><span class=""> </span></span><span class="" lang="EN-US"><span class="">Knowledge is painful.</span></span><span class="" lang="EN-US"><span class=""><br></span></span></p>
<p><span class="" lang="EN-US"><span class="">Korpus is a first-person horror game in which you have been sent to evaluate an abandoned house in Eastern Europe as a real estate agent. Uncover the houses past as you learn what horrors it hides. </span></span><span class=""> </span></p>
<p><span class="" lang="EN-US"><span class="">Features</span></span><span class="">&nbsp;</span><span class="" lang="EN-US"><span class=""></span></span><span class="">&nbsp;</span></p>
<ul><li><span class="" lang="EN-US"><span class="">The house changes based on the things you know. You just learned that the dark hallway has one more door in it and a vengeful ghost is coming after you? There is now.&nbsp;</span></span><span class="">&nbsp;</span></li><li><span class="" lang="EN-US"><span class="">The game is an unconventional horror game perceived from the first perspective. There is no combat – all the monsters must be dealt with indirect means, either by avoiding, hiding or something cleverer.</span></span><span class="">&nbsp;<br></span></li><li><span class="">The ghosts lurking in the dark corners of the house work<br> in different ways. Some are hostile, some or not, but only one thing is
 clear: they will not make your journey to the source of the madness any
 easier.<br></span></li><li><span class="">In order to solve the secrets of the house, you need to figure out how the
 house works. Is one specific bookshelf in your way and need it to 
disappear? Read a note that contradicts its existence.</span></li></ul>
<p><span style="color: inherit; font-size: inherit">ATTENTION: The game requires .NET 3.5 framework to work properly.</span></p>
<p>Patch notes:</p>
<p>Hotfix #1:</p>
<ul><li>Fixed a bug with the save file in the later parts in the game</li><li>Adjusted enemy spawns and values</li><li>A little something secret</li></ul>
<p>Hotfix #2:</p>
<ul><li>A major adjustment to the difficulty of the maze section</li></ul>
<p>Hotfix #3:</p>
<ul><li>Improvements to monster AI</li></ul>
<p>Hotfix #4:</p>
<ul><li>Altered the ending to give the story more context</li><li>Minor changes to notes</li><li>Fixed an issue where the player would sometimes fall through the floor when loading into the house</li><li>Fixed various visual errors</li></ul>
<p><span></span></p>
<p><span class="" lang="EN-US"></span><span class="" lang="EN-US"><span class=""></span></span><span class=""> </span></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/y5q8XZKke-Y" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTM4MzkyLzI5MDQ2MjkucG5n/original/K4PxEM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTM4MzkyLzI5MDQ2MjgucG5n/original/DxgWOe.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTM4MzkyLzI5MDQ2MzAucG5n/original/G%2Bqth0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTM4MzkyLzI5MDQ2MzEucG5n/original/%2BeI1m9.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTM4MzkyLzI5MDQ2MzIucG5n/original/U13gTH.png]]
<h4><em>Deep in the Berrenmoot Swamps stands a ruin, forgotten by most. Inside lives a creature with an insatiable appetite and its loving mother, who cares for naught else besides her precious child.</em></h4>
<hr>
<h4>Included in the handcrafted Collected Edition of DURF,  available <a href="https://lfosr.com/product/durf-collected-edition/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">here</a>!</h4>
<p>Lair of the Gobbler is a dungeon module for a party of low Hit Die adventurers (1-2 HD). It is written for <a href="https://emielboven.itch.io/durf" target="_blank">DURF</a> but can easily be adapted for other old school inspired TTRPGs.</p>
<p>This module is now also available in Italian, thanks to <strong>Francesco Catenacci</strong>!<br></p>
<p>Need some characters to play? Check out this <a href="https://perchance.org/durf-pc-generator" target="_blank" rel="nofollow noopener" referrerpolicy="origin">random character generator</a>!<br></p>
<p><img src="https://img.itch.zone/aW1nLzcwMjc1MTEucG5n/original/nQoRv9.png" loading="lazy"><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIwNDM5OC83MDI3NDA3LnBuZw==/original/15ig%2FR.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwNDM5OC83MDI3Mzk2LnBuZw==/original/DQA7RI.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwNDM5OC83MDMwMzU0LnBuZw==/original/vyXcGb.png]]
<h2>Landlord of the Woods</h2>
<p><br>you're 25.</p>
<p>you feel like all of your peers are ahead of you in life.</p>
<p>you apply for a new job to try to find some sort of meaning. your new career is filled with physics-based puzzles, hand drawn art &amp; a tender little story.</p>
<p>make a soup, do science and organize pointless things.</p>
<p><br>Landlord of the Woods&nbsp;is a cute lil point &amp; click game that takes about an hour to play through.<br>my name is madison karrh and I made this little game - i absolutely adore that you would play something a stranger made.</p>
<figure><br><img src="https://img.itch.zone/aW1nLzU0NDc1NDcuZ2lm/original/KpTnGj.gif" loading="lazy"></figure>

<iframe width="720" height="450" src="https://www.youtube.com/embed/0eV1qdHfzy0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTYwMzQ4LzU0NDc0NjIuanBn/original/j%2ByEJd.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTYwMzQ4LzU0NDc0NjAuanBn/original/VlD2j%2F.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTYwMzQ4LzU0NDc0NTkuanBn/original/hOJ8in.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTYwMzQ4LzU0NDc0NTUuanBn/original/t%2F873%2F.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTYwMzQ4LzU0NDc0NTQuanBn/original/tpJix0.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTYwMzQ4LzU0NDc0NjEuanBn/original/Uu12jq.jpg]]
<p>Just your basic pong game but with lasers and power ups and explosions and stuff like that. Play against the computer, or against another local human. <br></p>
<p>10 different game modes are included!</p>
<p><br></p>
<p>Note: I made a build for MacOS, but it is extremely untested. No promises that it'll work, but if you try it, let me know how it goes.<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/Lb8ovW5D20k" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzE2MTExLzIxMTMzODMucG5n/original/OTmj1F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzE2MTExLzIxMTMzODQucG5n/original/O7QsYB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzE2MTExLzIxMTMzODUucG5n/original/o9owZ%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzE2MTExLzIxMTMzODYucG5n/original/Tk3O3%2B.png]]
<p>The last of humanity are fleeing across space, pursued by the implacable inhuman adversary that destroyed their civilisation. They're outnumbered and outgunned. Supplies are running low. The actions of a brave few could be all that stands between humanity and extinction.</p>
<p>Welcome to the&nbsp;<strong><span class="">Last Fleet</span>.</strong></p>
<p><strong>Last Fleet</strong> is a PBTA tabletop roleplaying game where you play brave pilots, officers, engineers, politicians and journalists struggling to hold the human race - and themselves - together under unbelievable pressure. The game focuses on action, intrigue and drama in this high-stakes situation. You'll fight space battles, search for enemy infiltrators, tackle supply shortages and navigate faction politics. You'll strive against your own self-doubt and sometimes crack under the stress.</p>
<p>The game provides support to create your own evocative setting, or you can play out of the box as the survivors of the Interplanetary Commonwealth. This fractious alliance of planets was wiped out by the Corax - an extradimensional fungus network that dwells in the tenebrium, the same medium that FTL ships travel through. The Corax attack through spatial rifts, launching spore ships to harry the fleet. Victims are paralysed and have their genetic and neural patterns harvested: everything you know, the Corax now know. And worse, your former friends may see you again, reincarnated as a Corax avatar.</p>
<p><strong>Testimonials<br></strong></p>
<p><em>"I had the good fortune to get in on a playtest of Last Fleet, and Joshua has delivered a satisfying and crunchy deep dive into the action, emotion, and escalating paranoia that make up the life of a Rag-Tag (space) Fugitive on the run from a mysterious, implacable, existential alien threat. I'm very much looking forward to having it on my tables to put into the eager hands of prospective CAGs, politicians, and shady operators."</em></p>
<p><em>- Jim Crocker, jimlikesgames.com</em></p>
<p><em>"From the very first session of Last Fleet, our group felt hunted! The tension that arises from just the premise of the game alone--humanity fleeing an implacable enemy--really fueled not just every action scene, but, especially, the interpersonal scenes as our characters reached out, broke down, let loose, and tried to maintain their humanity at the edge of annihilation."</em></p>
<p><em>-Zach Bain, playtester</em></p>
<p><em>"The beauty of Last Fleet is that you're going to want to put your characters under pressure -- the roleplaying that spins out is just so juicy. It's extremely clever, extremely fun design."</em></p>
<p><em>-Nick Bate, playtester</em></p>
<p><em>"Black Armada is part of a new generation of PbtA designers who are tackling new concepts in new genres with new ideas. Last Fleet is aimed at replicating some of my favorite fiction, and I'm excited to see Josh exploring concepts of authority, tension, and political pressure through that lens. I can't wait to see the finished game!"</em></p>
<p><em><span class="">-Mark</span>&nbsp;<span class="">Diaz Truman, Magpie Games</span></em></p>
<p><strong>Join the Fleet</strong></p>
<p>The playbooks each represent a particular personality, approach or set of issues you want to explore. There are twelve:</p>
<ul><li>&nbsp;<span class="">Aries</span>, a hot-headed character who rushes in where angels fear to tread, and is unafraid to speak their mind.</li><li>&nbsp;<span class="">Taurus</span>, a tough, selfless and principled character who does what’s needed no matter how much punishment is thrown at them.</li><li>&nbsp;<span class="">Gemini</span>, a charismatic communicator who pursues their own agenda that might not be completely in line with the fleet’s interests.</li><li>&nbsp;<span class="">Cancer</span>, an experienced leader who cares deeply for their comrades, but may be a little too willing to overlook their problems.</li><li>&nbsp;<span class="">Leo</span>, a magnetic individual who people want to follow. Where will they lead them?</li><li>&nbsp;<span class="">Virgo</span>, a serious professional who prides themselves on being the best, but may put themselves under too much pressure at time.</li><li>&nbsp;<span class="">Libra</span>, a skilled diplomat and negotiator who may be looked to for leadership.</li><li>&nbsp;<span class="">Scorpio</span>, a secretive manipulator whose motives are in doubt – including by themselves.</li><li>&nbsp;<span class="">Sagittarius</span>, a relentlessly curious person who might be an explorer, engineer or spy, or perhaps all three.</li><li>&nbsp;<span class="">Capricorn</span>, an uncompromising tactician who is willing to take risks to defeat the enemy. Will they take things too far?</li><li>&nbsp;<span class="">Aquarius</span>, a perceptive investigator who does not shrink from confronting the truth, no matter how painful it might be.</li><li>&nbsp;<span class="">Pisces</span>, an otherworldly person with strange abilities that allow them to see things others do not.</li></ul>
<p>In addition to your playbook, you can choose a role within the fleet. You can play a military officer, pilot or marine, engineer or scientist, journalist or civilian leader. Each comes with its own special move.</p>
<p><strong>PBTA</strong></p>
<p>
</p>
<p>Last Fleet is based on the excellent Powered by the Apocalypse framework pioneered by Apocalypse World. In this case, that means it uses a simple 2d6 based system, with &nbsp;prompts for interesting, dramatic outcomes from every roll; characters are organised into playbooks that provide everything you need on a single piece of paper; and GM advice is codified into clear principles that tell you not just how the mechanics work but how to get the best from the game.</p>
<p><strong>Under Pressure</strong></p>
<p>The game's mechanics push forward the central theme of pressure: pressure on your characters, pressure on the fleet, pressure on humanity. You can win almost any conflict if you're willing to pay the consequences, by racking up more pressure on your character that ultimately pushes them to&nbsp;<span class="">Breaking Point</span>. That's when your character goes off the rails, lashing out at their friends or hurling themselves into certain doom.</p>
<p>The only way to keep the pressure under control is by indulging your vices and risking losing control, or by building relationships that matter with other characters. Neither route is risk-free. When you're not putting your life on the line, you're putting your heart on the line.</p>
<p><strong><em>Last Fleet</em>&nbsp;downloads</strong></p>
<p><a href="http://blackarmada.com/last-fleet-downloads/" rel="nofollow noopener" referrerpolicy="origin">Scenarios, handouts and other resources for Last FLeet.</a></p>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODkyMzQzLzUwMzUwMzYucG5n/original/2mHpp0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODkyMzQzLzUwMzUwMDQucG5n/original/CjCfee.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODkyMzQzLzUwMzUwMDYucG5n/original/BTlTar.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODkyMzQzLzUwMzUwMDUucG5n/original/C%2Bicjn.png]]
<p> 
      Last Knight is over-the-top non-stop jousting action in a beautiful brutal fantasy world! 
        It comes with bucketloads of content and is inspired by outstanding third-person platformers like Crash Bandicoot. 
        It uses the Unreal Engine to bring it all to live... </p>
<p><strong>Key Features:</strong>  	            
              </p>
<ul>
<li><strong>OVER-THE-TOP JOUSTING!</strong> -
 Countless enemies had been shot, hacked and slashed in the history of 
games. Now it is time to ram a wooden lance in some gut, send your foes 
flying, and watch them bite the dust! Body parts ripping off, ragdoll 
horse physics, and destructive environments included. </li></ul>
<ul><li><strong>A BEAUTIFUL BRUTAL WORLD</strong> –
 Dive into a magical fantasy world full of treasures and adventures! 
Don't be fooled by the cartoony looks: here, simply bumping into a silly
 wooden fence spells a sudden end to your hero's life. If you fancy 
dying in a more heroic way, how about getting swallowed by a giant toad,
 falling into a lava pit, exploding from eating too much turkey, getting
 impaled by a Hitler Snowman, or just getting lit on fire by a dragon! </li></ul>
<ul><li><strong>BUCKETLOADS OF CONTENT</strong> –
 Divided into three major parts - the Story Mode, the Endless Journey 
Mode and the Rogue Rider Mode - this game has a lot to offer and there 
is always something new to accomplish, find, or unlock. Power-ups, 
characters, view modes, mutators, quests, game mode variations, randomly
 generated hats, you name it! Did you ever wish to be a skeleton king 
with a fancy wig riding over rainbows on a flower-pooping pink unicorn? 
It's all up to you in this game! </li></ul>
<ul><li><strong>INSPIRED BY CRASH BANDICOOT</strong> –
 Good third-person platformers were always hard to find on PC, when 
consoles sport countless shining examples: the first Crash Bandicoot 
titles, Spyro, Ratchet &amp; Clank, and Super Mario were all a big 
inspiration for Last Knight. This game kicks it up a notch with non-stop
 jousting action, no-health instant death, procedurally-generated 
worlds, as well as custom-crafted levels with Knightmare levels 
in-between. To top it off, the new Rogue Rider Mode pushes it all into a
 rogue-like direction, and if you don't like third-person view, try 
playing in first-person mode! </li></ul><p>Follow Toco Games on Twitter: <a href="https://twitter.com/TocoGamescom" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/TocoGamescom</a><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/pQhBR_X7YbA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjcwLzEwNzkucG5n/original/ItbqkI.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjcwLzEwODAucG5n/original/tJue1L.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjcwLzEwODEucG5n/original/0bExCd.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjcwLzEwODIucG5n/original/p2ilBU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjcwLzEwODMucG5n/original/7kpRj3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjcwLzE2NzkzLnBuZw==/original/SJPm9u.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjcwLzE2Nzk0LnBuZw==/original/UhkkFU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjcwLzE2Nzk1LnBuZw==/original/gLewsN.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjcwLzE2Nzk2LnBuZw==/original/BuyBuq.png]]
<p>Play as Lawn Buster, and trim the grass in&nbsp;randomly-generated lawns while following an increasingly complex series of rules and priorities.</p>
<p>This game takes about 10 minutes to complete, and there are 5 different endings based on your decisions.</p>
<p>There is a cow named "Belinda".</p>
<p>Development, design, and music by Chris "Turd&nbsp;Boomerang" Armstrong.</p>
<p>Art by <a href="https://kenney.itch.io/" target="_blank">Kenney</a></p>
<p>This game was developed for&nbsp;<a href="https://itch.io/profile/necrosoftgames" target="_blank">Necrosoft Games'</a> charity bundle to benefit the citizens of Ukraine.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQyMjQ4NC84Mjg4OTY4LnBuZw==/original/8CjScX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyMjQ4NC84Mjg4OTcxLnBuZw==/original/2GcyXH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyMjQ4NC84Mjg4OTY5LnBuZw==/original/FVUIfD.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyMjQ4NC84Mjg4OTcyLnBuZw==/original/rkyRnk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyMjQ4NC84Mjg4OTcwLnBuZw==/original/9pU2u0.png]]
<p>
	<em><strong>LAZA KNITEZ!!</strong></em> is a fast-paced jousting deathmatch game for up to 4 players. Teleport to the neon-lit ALL CAPS technofuture and challenge your friends to mind-blowing hypercombat. Fire your laser-lance from a distance, get up close and personal to empale your foes and use 7 different power-ups to your tactical advantage.</p><p><a href="https://kotaku.com/after-being-98-off-for-5-years-this-indie-game-is-goi-1839102909" rel="nofollow noopener" referrerpolicy="origin">Read about why the game is 100$&nbsp;in this article</a></p>
<p>
	<a href="https://joon.be/glitchnap/press/LAZA_KNITEZ/images/b-intro.gif" data-image_lightbox="true" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzM2MDg1MzQuZ2lm/original/jIm09U.gif" loading="lazy"></a></p>
<figure><a href="https://joon.be/glitchnap/press/LAZA_KNITEZ/images/b-intro.gif" data-image_lightbox="true" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzM2MDg1MzYuZ2lm/original/v2q4tR.gif" loading="lazy"></a></figure>
<p><strong>CREDITS</strong></p>
<ul><li>Design &amp; Development: <a href="http://www.glitchnap.com" style="background-color: initial" rel="nofollow noopener" referrerpolicy="origin">Glitchnap</a></li><li>Art: <a href="http://dominikjohann.de/" style="background-color: initial" rel="nofollow noopener" referrerpolicy="origin">Dominik Johann</a></li><li>Sound: <a href="http://salkinitzor.bandcamp.com/" style="background-color: initial" rel="nofollow noopener" referrerpolicy="origin">Niklas Ström</a></li><li>Additional help by Nifflas, YAC, HaxeFlixel</li></ul>
<p><a href="http://salkinitzor.bandcamp.com/" rel="nofollow noopener" referrerpolicy="origin"></a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/zOUFKyK1aMA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE2ODgvMzY2MzEucG5n/original/2gdahl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE2ODgvMzY2MzIucG5n/original/Tqbla3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE2ODgvMzY2MzMucG5n/original/zembZD.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE2ODgvMzY2MzQucG5n/original/pvYOF8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE2ODgvMzY2MzUucG5n/original/jyMZAj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE2ODgvMzY2MzYucG5n/original/cvSMAV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE2ODgvMzczODMucG5n/original/BYRbud.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE2ODgvMzczODYucG5n/original/fbKhV8.png]]
<p><em><strong>Learn Japanese To Survive! Hiragana Battle</strong></em> is an educational game that is the ideal introductory course to the Japanese language!</p>
<p>You're reading this page now because you have more than a passing interest in learning Japanese. Maybe you've tried learning it before, but never had any luck? That's completely normal, so don't worry! Learning a language can be daunting. And with a language like Japanese, full of strange and wonderful written characters, you might not even know where to start.</p>
<p>You need a learning tool that's going to keep you interested, challenge you at the right pace, and most importantly, keep you coming back for more.</p>
<p>That's why <em><strong>Learn Japanese To Survive! Hiragana Battle</strong></em> was made! This isn't just educational software – this is a full-blown RPG specifically designed to keep you engaged. By playing along, you're going to be introduced to the Japanese language like never before.</p>
<p>Learn how to read and write Japanese characters (Hiragana) at a steady pace. There's a new set of characters to learn each chapter, and your revision takes place on the battlefield! If your knowledge is up to scratch, you'll claim victory in exciting strategic battles. If you're falling behind, you have the opportunity to revisit specific chapters and brush up on your knowledge.</p>
<p>As a bonus, you'll also learn common Japanese words and phrases and important grammar points!</p>
<p><u><strong>What is Hiragana?</strong></u></p>
<p>Hiragana is the basic writing system used in Japanese. Japanese actually combines 3 different sets of characters to form written works – Hiragana, Katakana and Kanji. This game focuses solely on Hiragana, the foundation. By learning Hiragana, you can write and pronounce nearly any Japanese word. </p>
<p><u>Features: </u></p>
<ul><li>An exciting story based on the concept of learning Japanese. As the characters in the story learn Hiragana, you learn along with them! </li><li>Learn every single Hiragana character, with detailed instructions on how to read and write each character. </li><li>Visual animations displaying how to write each character. </li><li>Audio speech examples demonstrate how to pronounce each character. </li><li>Exciting gameplay with familiar RPG elements – collect items, complete quests, engage in battles! </li><li>Earn experience points and level up your characters. </li><li>Revise completed lessons to brush up on your knowledge. </li><li>In-game quizzes to test what you're learning.</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/vZh4F66NtJ0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTUwNjYvMjQ2MzM0LmpwZw==/original/ABOW97.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTUwNjYvMjQ2MzM4LmpwZw==/original/NzObaP.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTUwNjYvMjQ2MzM1LmpwZw==/original/AJH24z.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTUwNjYvMjQ2MzM3LmpwZw==/original/u0ce%2BL.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTUwNjYvMjQ2MzM2LmpwZw==/original/gQ2LYO.jpg]]
<p><strong>Learn Japanese To Survive! Kanji Combat</strong>&nbsp;is an educational game, designed to be the ideal introductory course to the Japanese language! It's the third game in a smash-hit series, following Hiragana Battle and Katakana War - but you don't need to have played those!<br><br>This new game teaches you a separate part of Japanese: the Kanji writing system. Everything you need to start learning Japanese is contained within the game!<br><br>Japanese is a language that can be very daunting to begin learning. It contains a unique alphabet of intricate symbols that can be very confusing to newcomers. How do you write these symbols? How do you even pronounce them?! If you're asking yourself these questions, don't worry - that's completely normal!<br><br><strong>Learn Japanese To Survive! Kanji Combat</strong>&nbsp;is your ticket to easy Japanese learning!&nbsp;<br><br>Learn over 200 Kanji characters! With this knowledge under your belt, you can begin reading and writing Japanese!<br><br>At the start of each of the game's chapters, you'll learn a new set of Kanji characters. Following that, you're free to go on adventures and explore. You'll encounter dangerous enemies that have taken the shape of Kanji. To defeat them, you'll need to correctly translate them! If you give the wrong answer, your attack will be reflected and used against you. It's a learn &amp; live situation!<br><br>Much like the other games in this series, you will also have the opportunity to learn some Japanese vocabulary! You'll see how words are constructed using Kanji, and learn the translations of useful words and phrases.<br></p>
<p><strong>Features:</strong></p>
<ul><li>Learn over 200 Kanji characters, with detailed instructions on how to read and write each character.</li><li>Learn useful mnemonic techniques to recognise each Kanji.</li><li>Audio speech examples from native Japanese speakers demonstrate how to pronounce each Kanji character.</li><li>Follow along with the exciting story that will see you travel to Japan to defend the country from shape-shifting monsters!</li><li>Exciting gameplay with familiar RPG elements - collect items, complete quests, engage in batles!</li><li>Build a new town from the ground up. Customise your town with different features!</li><li>Form new friendships and get to know each of your companions with unlockable story sequences.</li><li>Earn experience points and level up your characters.</li><li>Review completed lessons to brush up on your knowledge.</li><li>In-game quizzes test what you're learning.</li><li>Original soundtrack, including opening and closing themes with vocals!</li></ul>
<p><strong>Ready to learn Japanese? You bet you are!</strong></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/SoFdcCD0UZA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjg1MjYwLzEzODgzODMuanBn/original/p%2BsSMt.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjg1MjYwLzEzODgzODQuanBn/original/z8IAre.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjg1MjYwLzEzODgzODcuanBn/original/eT8v%2F2.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjg1MjYwLzEzODgzODYuanBn/original/dnLvpm.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjg1MjYwLzEzODgzODUuanBn/original/1t3gDp.jpg]]
<p>Leggite Luta Livre is an arcade beat-em-up for the Nintendo Entertainment System.</p>
<p>One hundred solar cycles have passed since the three-front revolution on Irata that overturned settler rule and led to a new era of peace and prosperity for all the native creatures of the planet.
</p>
<p>In this time, some of the former colonists who remained on Irata have settled down. The Leggites developed martial arts and now live in peace with the local fauna. But the spheroids have turned to organized crime.&nbsp;</p>
<p>Their boss, Chunga, uses violent thugs to control his territory and keep a boot on the neck of the local population. Chunga thought he was untouchable. And he might have been.</p>
<p>But then he decided to mess with Leggette and her family.</p>
<p>This game features <strong>five missions</strong>. Players have a dynamic set of moves that include a standard kick, a jump kick, and a roll maneuver that can be combined in unique ways to create engaging combat encounters. Players can also pick up two projectile items that further extend combat choices.</p>
<p>There are <strong>nine&nbsp;</strong>unique boss battles, multiple enemy types, and an entire alien world to explore and liberate. You are Leggette. Your child has been kidnapped by an evil mob boss. It's time to clean up the streets of Irata.</p>
<p>*Note:&nbsp;While a 2-player mode is selectable from the title screen, that mode is not currently in the game. This will be added in a future update.</p>
<p>*&nbsp;* *</p>
<p>Controls&nbsp;</p>
<p>Note:&nbsp;Leggite Luta Livre is&nbsp;best played with a controller.</p>
<p>Directional Pad&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; - Move Up, Down, Left, and Right</p>
<p>Select&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- Change Menu Selection (Title Screen)</p>
<p>Start&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- Begin Game /&nbsp; Pause</p>
<p>B&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; - Standard Kick and Projectile Attack</p>
<p>A&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- Jump Kick /&nbsp;Skip Cutscene</p>
<p>Hold Left/Right + A&nbsp; &nbsp; &nbsp;- Roll Left or Right (a must for game mastery)</p>
<p>* *&nbsp;*</p>
<p><strong>Leggite Luta Livre</strong> is the <strong>fourth</strong> game in the MULEniverse series, which narratively extends the work of Danielle Bunten Berry's MULE economic simulator game.</p>
<p>The MULEniverse games include:</p>
<p>1.&nbsp;<a href="https://johnvanderhoef.itch.io/wampus" target="_blank">Wampus</a></p>
<p>2.&nbsp;<a href="https://johnvanderhoef.itch.io/wart-worm-wingding" target="_blank">Wart Worm Wingding</a></p>
<p>3.&nbsp;<a href="https://johnvanderhoef.itch.io/bat-lizard-bonanza" target="_blank">Bat Lizard Bonanza</a></p>
<p>4. Leggite Luta Livre</p>
<p>5.&nbsp;<a href="https://johnvanderhoef.itch.io/nemulesis" target="_blank">neMULEsis</a><br></p>
<p>* * *</p>
<p>Music and sfx by Jordan Davis.</p>
<p>* *&nbsp;*</p>
<p>FOR THE BEST EXPERIENCE:&nbsp;I&nbsp;recommend getting an original NES&nbsp;controller and a USB adapter for it. You can find one&nbsp;<a href="https://www.retrousb.com/product_info.php?cPath=21&amp;products_id=158" rel="nofollow noopener" referrerpolicy="origin">here</a>&nbsp;or&nbsp;<a href="https://www.amazon.com/Tomee-NES-USB-Controller-Adapter-pc/dp/B00HM3QCN2/ref=sr_1_3?ie=UTF8&amp;qid=1549047471&amp;sr=8-3&amp;keywords=NES+controller+usb+adapter" rel="nofollow noopener" referrerpolicy="origin">here</a>. You can also use any gamepad for a similar experience.</p>
<p>For really enterprising types, this game is fully playable on an actual NES. You can use either an&nbsp;<a href="https://www.amazon.com/s?k=everdrive+n8&amp;hvadid=234353538216&amp;hvdev=c&amp;hvlocphy=9031087&amp;hvnetw=g&amp;hvpos=1t1&amp;hvqmt=e&amp;hvrand=9017374272736160785&amp;hvtargid=aud-647846986281%3Akwd-303890194056&amp;tag=googhydr-20&amp;ref=pd_sl_glpmwc1bx_e" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Everdrive</a>, a&nbsp;<a href="https://www.retrousb.com/product_info.php?products_id=34" target="_blank" rel="nofollow noopener" referrerpolicy="origin">PowerPak</a>, or flash an empty cart, as long as each has&nbsp;<strong>mapper 30</strong>&nbsp;support.</p>
<p>*&nbsp;*&nbsp;*</p>
<p>Leggite Luta Livre was made possible thanks to&nbsp;<a href="http://www.thenew8bitheroes.com/" rel="nofollow noopener" referrerpolicy="origin">NESMaker</a>, an engine developed to make NES development more accessible.</p>
<p>In order to play Leggite Luta Livre, you'll need an NES emulator. I recommend&nbsp;<a href="http://www.fceux.com/web/home.html" rel="nofollow noopener" referrerpolicy="origin">FCEUX</a>. Many emulators do not have mapper 30 support, which is the mapper NESMaker uses for its games.&nbsp;</p>
<p>Once you have FCEUX downloaded, start it up and&nbsp;open the Leggite_Luta_Livre_Demo.nes ROM. The game should work fine.</p>
<p><strong>FOR MAC USERS:</strong>&nbsp;Download&nbsp;<a href="https://openemu.org/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">OpenEMU</a>&nbsp;for Mac. When you open the program, right click on the Nintendo (NES) category on the left hand sidebar and select "Default Core."&nbsp;Then select FCEU.</p>
<p>* * *</p>
<p>More from this developer:&nbsp;<a href="https://johnvanderhoef.itch.io/" target="_blank">https://johnvanderhoef.itch.io</a></p>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/D4nhoZ5y9L4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTE4Njk5LzUxOTQzODUucG5n/original/40OlaO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE4Njk5LzUxOTQzNzcucG5n/original/F43rvN.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE4Njk5LzUxOTQzNzkucG5n/original/JfmGVU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE4Njk5LzUxOTQzODIucG5n/original/jqRhdh.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE4Njk5LzUxOTQzNzgucG5n/original/7XY6fQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE4Njk5LzUxOTQzODMucG5n/original/2EXiOu.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE4Njk5LzUxOTQzODQucG5n/original/sGuo1r.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE4Njk5LzUxOTQzODgucG5n/original/%2BAAIu%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE4Njk5LzUxOTQzOTIucG5n/original/vuyPF7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE4Njk5LzUxOTQzOTAucG5n/original/uIJONb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE4Njk5LzUxOTQzODkucG5n/original/L%2BPxNM.png]]
<p><strong>A New Hero Rises</strong><br></p>
<p>The Kingdom of ▜̴͈̔▕̴͜͝▯̴̳̈́░̷̪͗▚̷̪̆▒̸̣̓ is glitching. The evil Chairman of the Banker’s Guild has captured the Prince, opening the way for destruction at the hands of the Archangels. With the Hero eliminated, and the world horribly unraveling, reluctant tutor Lenna must step up to save the kingdom. But it won’t be easy--all she has to guide her is the voice of the deceased elder, and he seems to know more than he’s letting on...</p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzI0NjU1NTUucG5n/original/sWM%2Bt7.png" width="320" loading="lazy">
</p>
<p>Explore a dangerous island filled with dungeons, and defeat the eight archangels to bring order to a glitched-out kingdom in this top-down Zelda-like action-adventure game. Playable in 8-bit and 32-bit pixel art styles!</p>
<p><strong>Features</strong><br></p>
<ul><li><strong>Team up with a friend.</strong>&nbsp;Make peace with Shadow Lenna to enjoy the game in local co-op multiplayer!</li><li><strong>Play again (and again).</strong>&nbsp;With two graphical styles, multiple endings, multiple boss forms, and procedural generation, you won’t see everything in a single playthrough!</li><li><strong>Challenge yourself.</strong>&nbsp;Speed through the daily challenge dungeon with no sword, with only three hearts, or without taking a single hit. Show off a GIF of your playthrough on the connected leaderboard afterwards!</li><li><strong>Recruit companions.</strong>&nbsp;Will you choose Henrietta, the free-range chicken with a vendetta, or perhaps Gourdon, the sentient pumpkin? (4 to discover)</li></ul>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzI0NjU1MjcuZ2lm/original/P2NhGo.gif" loading="lazy"></p>
<figure>
<hr></figure>
<h3>System requirements</h3>
<ul>
	<li>Windows 10, Ubuntu 16.04+, or Mac OS 10.7.4 up to 10.14*</li>
	<li>4GB+ RAM</li>
	<li>Dual Core, 2GHz+ CPU</li>
</ul>
<p>* Mac OS 10.15 and later&nbsp;are not supported.</p>
<hr>
<h3>Links</h3>
<ul><li><a href="https://lennasinception.com" rel="nofollow noopener" referrerpolicy="origin">Lenna's Inception Website</a></li><li><a href="https://bytten-studio.com" rel="nofollow noopener" referrerpolicy="origin">Bytten Studio Website</a></li><li><a href="https://discord.gg/HUWjFX3" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">Discord Server</a></li><li>Twitter:&nbsp;<a href="https://twitter.com/ByttenStudio" rel="nofollow noopener" referrerpolicy="origin">@ByttenStudio</a>,&nbsp;<a href="https://twitter.com/tccoxon" rel="nofollow noopener" referrerpolicy="origin">@tccoxon</a>,&nbsp;<a href="https://twitter.com/SamuriFerret" rel="nofollow noopener" referrerpolicy="origin">@SamuriFerret</a></li><li>Reddit:&nbsp;<a href="https://reddit.com/r/lennasinception" rel="nofollow noopener" referrerpolicy="origin">r/LennasInception</a><span></span></li><li>Email:&nbsp;<a href="mailto:info@bytten-studio.com" rel="nofollow noopener" referrerpolicy="origin">info@bytten-studio.com</a><span></span></li></ul>
<p><a href="http://bytten-studio.com/devlog//legal/privacy/" rel="nofollow noopener" referrerpolicy="origin">Privacy Policy</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODE1LzI0NjU1MzAuanBn/original/V8n%2F09.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODE1LzI0NjU1MzEucG5n/original/pLmUDN.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODE1LzI0NjU1MzMucG5n/original/TeHM6Z.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODE1LzI0NjU1MzUucG5n/original/6EtbsP.png]]
<p>Lewi Davis is a young dragon, who has been raised into the world of alchemy. The problem is, she isn't very good at it.</p>
<p>So, she decides to join the clergy instead.</p>
<p>What could go wrong?</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjA4MjMzLzk3NTkxOS5wbmc=/original/t45PU8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjA4MjMzLzk3NTkyMC5wbmc=/original/0QjR%2B2.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjA4MjMzLzk3NTkyMS5qcGc=/original/WNIrW1.jpg]]
<p><a href="https://www.exaltedfuneral.com/products/liminal-horror-pdf" target="_blank" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">IN PRINT AT EXALTED FUNERAL!</a></p><p></p><p><a href="https://goblinarchives.itch.io/the-mall" target="_blank">The first official adventure (The Mall) is available here...It's The Thing, but set in a 199x mall.</a></p><p class="text-center">________________________________________________________________________</p>
<p><strong>Liminal Horror</strong>&nbsp;is a rules-lite, fail forward system that leverages creative problem solving in order to create memorable experiences at the table. Players act as investigators navigating a modern world full of terrible and unknowable things that hide in the spaces between, looking for a way in.</p>
<p>For fans of&nbsp;<strong>Junji Ito</strong>, cosmic horror,&nbsp;<strong>Call of&nbsp;</strong><strong>Cthulhu</strong>,&nbsp;<strong>Monster of the Week</strong>,&nbsp;<strong>Silent Legions</strong>&nbsp;but wanting rules-lite adaptable system.&nbsp;It is a&nbsp;modern cosmic horror hack of Yochai Gal's&nbsp;<a href="https://yochaigal.itch.io/cairn" style="font-size: inherit">Cairn</a>&nbsp;(<a href="https://chrismcdee.itch.io/" target="_blank" style="font-size: inherit">Into the Odd</a>&nbsp;+&nbsp;<a href="https://questingbeast.itch.io/knave" style="font-size: inherit">Knave</a>).&nbsp;</p>
<p class="text-center">________________________________________________________________________<br></p>
<p><strong>Gameplay</strong>:&nbsp;Fast and simple rules (the summary fits onto a single page).&nbsp;There are 3 stats (Strength, Dexterity, Control) and players makes saves when there is a risk of failure. Rolling equal to or under is a success. There are not rolls to hit (damage is dealt automatically).</p>
<p><span></span></p>
<p><strong>Stress &amp; Fallout:&nbsp;</strong>Play deals with themes of cosmic&nbsp;horror. This is represented&nbsp;mechanically by Stress and Fallout.&nbsp;Fallout is how characters are changed&nbsp;by the Old Powers. The design avoids&nbsp;using mental illness and trauma as&nbsp;game-play mechanics.</p>
<p><strong>Magic:&nbsp;</strong>Magic is dangerous, random, and chaotic. Liminal Horror adapts the Maze Rats magic system (thanks to the work of <a href="https://xenio-in-a-bottle.itch.io/" target="_blank" style="font-size: inherit">Xenio</a>).</p>
<p class="text-center">________________________________________________________________________<br></p>
<p>The cover illustration is ©️ 2021 <a href="https://twitter.com/zachhazard" target="_blank" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">Zach Hazard Vaupen</a>.&nbsp;</p>
<p>All text is licensed under&nbsp;<a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="nofollow noopener" referrerpolicy="origin">CC-BY-SA 4.0</a>.&nbsp; Interior images are public domain</p>
<p class="text-center">________________________________________________________________________</p>
<p><strong>Resources:&nbsp;</strong><strong>Liminal Horror</strong> is being designed to present the core game in as many modes as possible for Facilitators&nbsp;&amp; Players.&nbsp;</p>
<ul><li>Adventures for Liminal Horror:<ul><li><a href="https://goblinarchives.itch.io/the-mall" target="_blank">The Mall</a> (it's the Thing but set in a 90s mall)&nbsp;</li><li><a href="https://goblinarchives.itch.io/plague-of-frogs" target="_blank">Plague of Frogs</a>(included in Liminal Horror core text)</li><li><a href="https://goblinarchives.itch.io/adventure-conversions-for-liminal-horror" target="_blank">Adventure Conversions</a> for Liminal Horror</li></ul></li><li><a href="https://goblinarchives.itch.io/funnel-rules" target="_blank">Funnel Rules</a>&nbsp;</li><li><a href="https://goblinarchives.itch.io/voidcrawl" target="_blank">Voidcrawl Rules</a>&nbsp;for delving into the deep and unknown places.</li><li>Interested in making your own mystery? Use the google doc template to create (and publish) you own adventure. You can even sell it on itch! <a href="https://docs.google.com/document/d/1h2KVL4owTgfal60nbN-mRa6s4G8cDm147gWiV95vNfw/edit?usp=sharing" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Mystery Framework Google Doc</a>&nbsp;or <a href="https://drive.google.com/file/d/1dmfrjCKd3lPRWi0ZU1C8-p_K7TnM7rZa/view?usp=sharing" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Mystery Framework Template in Markdown</a></li><li><a href="https://goblinarchives.github.io/LiminalHorror/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Liminal Horror Official Website</a>. A fully searchable, updated version of the core text so players can access resources from their phone or computer. It also contains additional resources for Facilitators.</li><li><a href="https://www.exaltedfuneral.com/products/liminal-horror-pdf" target="_blank" rel="nofollow noopener" referrerpolicy="origin">IN PRINT AT EXALTED FUNERAL!</a></li><li><a href="https://goblinarchives.github.io/LiminalHorror/Facilitator%20Tools/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Facilitator Tools</a> (including a framework for writing your own mysteries)</li><li><a href="https://goblinarchives.github.io/LiminalHorror/Appendix%20N/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Appendix N</a>&nbsp;</li></ul>
<p class="text-center">&nbsp;________________________________________________________________________</p>
<p>Check out this fantastic playlist put together by Sam Leigh&nbsp;<a href="https://twitter.com/GoblinMixtape" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@GoblinMixtape</a>!</p>
<p><span></span></p>
<iframe src="https://open.spotify.com/embed/playlist/1p5o8QzTEg7MvCxoMQ9OWQ" width="100%" height="380" frameborder="0"></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA1MDI4NC82NDIyNTg0LmpwZw==/original/R6A2y%2F.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1MDI4NC82MDEyNjU1LmpwZw==/original/CysCKA.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1MDI4NC82NzE3ODQ1LnBuZw==/original/hLvP22.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1MDI4NC82NzE3ODQ0LnBuZw==/original/0Bxoie.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1MDI4NC82NzE3ODQzLnBuZw==/original/hRASX%2F.png]]
<<list-links "[tag[Linux]sort[title]]">>
<p>languages: english / 日本語</p>
<p class="text-center">・・・</p>
<p class="text-center"><strong>Quite the long year, wasn't it?</strong></p>
<p class="text-center">Feels like a lot happened and nothing happened all at the same time.</p>
<p class="text-center">It'll be good to get the year behind us, don't you think?</p>
<p class="text-center">Ah, sorry, I'm just rambling. We're almost there.<br></p>
<p class="text-center">・・・</p>
<p><strong>little boats of farewell</strong> is a 10-minute point-and-click adventure about bidding farewell to things you want to leave behind. Stroll along the River of Goodbyes, where people from all over come to release boats carrying their farewells.</p>
<p>Think about what you want to say goodbye to this year and let your own boat drift down the river.</p>
<p class="text-center">・・・</p>
<p>In <strong>little boats of farewell</strong>, there is the option to share a memory of your visit to the river with others who visit the river themselves. Please note that while your physical presence along with your boat is shared, what you bid farewell to is not.</p>
<p>There is also a printable card version of the boat if you would like to physically write down what you want to bid farewell to. Please download the zip file for the print template and printing instructions.</p>
<p class="text-center">・・・</p>
<p>Made by <a href="https://npckc.itch.io">npckc</a> with music by&nbsp;<a href="https://sdhizumi.bandcamp.com" rel="nofollow noopener" referrerpolicy="origin">sdhizumi</a>.</p>
<p>Support me on <a href="https://patreon.com/npckc" rel="nofollow noopener" referrerpolicy="origin">Patreon</a> for secret updates, a monthly digital postcard &amp;&nbsp;early access to my games.</p>
<p><a href="https://npckc.itch.io/little-boats-of-farewell#hide" class="custom-hide" name="hide"><img src="https://img.itch.zone/aW1nLzc3NjQzMDQucG5n/original/yiyOJW.png" loading="lazy"><img src="https://img.itch.zone/aW1nLzc3NjQzMTYucG5n/original/aRR9fA.png" loading="lazy"></a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMzMjc2My83NzUzNjQwLmdpZg==/original/JHOdsH.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMzMjc2My83NzUzNTMzLmdpZg==/original/XliNO1.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMzMjc2My83NzUzNTM3LmdpZg==/original/RT0vmN.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMzMjc2My83NzUzNTM1LmdpZg==/original/vzTys6.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMzMjc2My83NzUzNTM2LmdpZg==/original/vZ9M7S.gif]]
<h4>After suffering severe burns as a child, Arlasaire was taken in by House d'Magnia and now acts as the young heir's personal&nbsp;assassin.</h4>
<p>But this far North, <strong>death is only a temporary inconvenience </strong>-- so long as you eat well. Arlasaire must take care of herself as well as her family's enemies in this sweet hack-and-slash game!</p>
<h2><span class="">Explore a Dense, Cute Open World</span></h2>
<p><span class="">Nouveau Thuille is an adorable,&nbsp;8-bit-blended&nbsp;world full of lore, enemies, and good food. Learn everything from who lurks in the alleyways to who killed the last Emperor!</span></p>
<h2><span class="">A City of Mafia-like Neighbors to Meet</span></h2>
<p><span class="">Learn your neighbors' schedules to isolate and kill them!&nbsp;While the knights of House d'Aramitz seem the most frightening at first, House d'Romanach has the support of the people. And then there's House d'Fealtoire, whose daughters' wiles are known to seduce peoples of all preferences. Come meet them all!</span></p>
<h2><span class="">Sweetcakes &amp; Sweeter Stories</span></h2>
<p><span class="">Eat different foods, discover their effects, and outrun death another day--all the while, going through&nbsp;old songs or your neighbor's mail. The war with the South is looming and who knows what will give you a leg up in the battles to come?</span></p>
<p>-----</p>
<h2>About the Game Dev</h2>
<p>How's it going? My name is Belle, but I go by Amaiguri basically everywhere online. I make adoraBELLE things to touch people's hearts!&nbsp;I'm a college student studying Game Design--with a subfocus on narrative and systems. I made this game and its world in my spare time&nbsp;all by myself, more or less, but&nbsp;I'm not very good at programming... You should follow me on <a href="https://www.instagram.com/amaiguri/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Instagram</a> and get to know me more.&nbsp;If you have any questions or comments about this scrappy little experience, I'm happy to talk about my game endlessly--including lore questions, design questions, and bug-squashing!</p>
<p>-----</p>
<p><strong>Please Note</strong><strong>:&nbsp;</strong>This game contains references to many types of abusive relationships, between family members, lovers, and politicians and their people. It also contains some strong language, mild sexual references, and cartoon violence. Should you ever feel unsafe, please turn the game off and talk about your experiences with someone you trust.</p>
<p><span class=""></span></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/EoE49DO_G3A" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjY5NDE5LzM2NTI0MTYucG5n/original/kiYpCM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY5NDE5LzM2NTI0MTcucG5n/original/oYHgCN.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY5NDE5LzM2NTI0MTUucG5n/original/I2VDIC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY5NDE5LzM2NTI0MjAucG5n/original/DPx6bt.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY5NDE5LzM2NTI0MTgucG5n/original/%2B9r1z8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY5NDE5LzM2NTI0MTkucG5n/original/ajexAe.png]]
<h2 class="text-center"><img src="https://img.itch.zone/aW1nLzc1NTkyNzcucG5n/original/%2FFNg3C.png" alt="Little World of Fates - One-Page-Spread Edition" title="Little World of Fates - One-Page-Spread Edition" style="color: inherit; font-size: inherit" loading="lazy"></h2>
<h2><em>A Faction-building TTRPG about Politics, Betrayal, and Friendship!</em></h2>
<p><em>Little World of Fates (LWOF)</em> is a TTRPG about the building and maintaining of factions and influence in the universe of <em>Little Burned Maiden</em> and the larger World of Fates universe. Shortly after the consolidation of the greatest empire the world has ever seen, players will take on the roles of members and leaders of a newly rising faction within the world. However, the peace is tentative at best — many Northerners still hail the reawakened Emperor of Thuille, Demons have begun appearing throughout the world, and more people have been touched by the Abyss than ever. <strong>So, take your fate into your own hands in the World of Fates Official TTRPG!</strong><span></span></p>
<h3>Play as Heroes, Kings, Rebel Leaders, and More!</h3>
<p>Player Characters will take the role of Leaders and — with the moderation and adjudication of a Game Master (GM) — form Factions, gather Followers, and spread their Influence over the whole world. Will your Faction rise to power or break apart in the pressures of an everchanging world?</p>
<h3>Freeform Classless Character Development</h3>
<p>There are no classes in the&nbsp;<em>LWOF TTRPG:&nbsp;</em>Instead, build YOUR character to be who YOU want&nbsp;with the collection of 100+ Feats and Limitations. Your faction Leader can have any number of abilities or disabilities, be any gender, have any sexuality, and any appearance!</p>
<h3>Political Meetings,&nbsp;Masquerade Balls, Investigations, and Trials</h3>
<p>Some TTRPGS are about battles, wars, or&nbsp;heists&nbsp;—&nbsp;LWOF is at its best as a political fantasy! Pull a knife from your ballgown and point it at the throat of the handsome prince from another realm. Win the patent war on your luxury cheese&nbsp;at trial. Trace rumors of illicit abalone trade in the West.&nbsp;What tactics will your Faction use to gain Influence?</p>
<h3>A Diverse World Full of Stories to Explore!</h3>
<p>The World of Fates is a world shaped by the stories of its heroes — the stories that its people tell itself. &nbsp;Will you work to solidify the peace or work against it? What stories will you tell the world? What stories will it tell of you?</p>
<p><img src="https://img.itch.zone/aW1nLzc1NjM4ODMucG5n/original/Ofa3ly.png" loading="lazy"><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTEyMDE1OC83NTYzODc4LnBuZw==/original/RYGHjY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEyMDE1OC83NTYzODc3LnBuZw==/original/Zt74bx.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEyMDE1OC83NTYzODc2LnBuZw==/original/yehOcr.png]]
<p class="text-center"><img src="https://img.itch.zone/aW1nLzQzMzQxOTIucG5n/original/E%2FKIev.png" loading="lazy"></p>
<div class="custom-outer_box"><div class="custom-inner_box"><p class="text-center"><img src="https://img.itch.zone/aW1nLzQzMzgwMDQucG5n/original/cAqZha.png" loading="lazy"><br></p>
<p class="text-justify"><em>Armed with nothing but your curiosity, streaming equipment, and insatiable need to impress others, you approach a long-abandoned house in your small town.</em></p>
<p class="text-justify"><em>What could possibly go wrong?</em><br></p>
<h2 class="text-justify">LiveScream is a horror/comedy visual novel with point-and-click elements.</h2>
<p class="text-justify">Step into the role of an intrepid ghost hunter-slash-live streamer-slash-average high schooler and explore a haunted house with your adoring audience.</p>
<p class="text-justify">LiveScream is available for a minimum price of $2.99. 50% of all proceeds will be donated to <a href="https://www.acrossboundaries.ca/" rel="nofollow noopener" referrerpolicy="origin">Across Boundaries</a>, a Toronto-based mental health centre that provides equitable, inclusive, and holistic mental health and addiction services for racialized communities.</p></div></div>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzQzMzQxOTMucG5n/original/2vDket.png" loading="lazy"></p>
<div class="custom-outer_box"><div class="custom-inner_box"><h2 class="text-center">Customisable Protagonist</h2><p class="text-center">Play as a character you identify with! Customise your name, screen name, pronouns, and appearance.</p>
<h2 class="text-center">Point-and-Click Exploration</h2>
<p class="text-center">Snoop to your heart’s content! Click on objects around the house to inspect them up close.</p>
<h2 class="text-center">Reactive Audience</h2>
<p class="text-center">Watch your stream chat react to your choices! Win them over with your ghost-hunting prowess, or disappoint them with your cowardice.</p>
<h2 class="text-center">Unlockable Achievements</h2>
<p class="text-center">Try to cross everything off your bucket list! With its short playthrough time of 20 minutes and multiple endings, LiveScream is an easily replayable game.</p></div></div>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzczMzYxLzQ0MTYxMjEuZ2lm/original/YQBYL4.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzczMzYxLzQ0MTYxMjMuZ2lm/original/VYylUB.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzczMzYxLzQ0MTYxMjQuZ2lm/original/npIv0f.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzczMzYxLzQ0MTYxMjYuZ2lm/original/arKP%2Bh.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzczMzYxLzQ0MTYxMjguZ2lm/original/3h%2B5s8.gif]]
<p>Using her powers of unaccountable anonymity masked vigilante Lizard Lady is out to wipe out the notorious cat gang once and for all.</p>
<p>Also Including LIzard Lady vs Herself:</p>
<p>Wracked with guilt after succumbing to her genocidal side in Lizard Lady vs the Cats, Lizard Lady finds herself trapped within her own psyche battling manifestations of her conscience in a never ending fight for&nbsp; survival.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/IEf2mRtShC8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM3MzA2OS83OTk2NTQwLmpwZw==/original/cxvGgI.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3MzA2OS83OTk2NDkwLnBuZw==/original/ofJ0%2Fa.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3MzA2OS83OTk2NDg1LmpwZw==/original/vct6h7.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3MzA2OS83OTk2NDg0LmpwZw==/original/mlwmy%2B.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3MzA2OS83OTk2NDg2LmpwZw==/original/FA5zbh.jpg]]
<p>Minesweeper meets Nonogram in this randomly generated, logic puzzle game. Find the exit and don't step on the mines.</p>
<h3>Controls</h3>
<ul><li>WASD, arrow keys, or left mouse button to move</li><li>Right mouse button to flag a hidden tile or toggle between flag types<ul><li>The "!" flag type blocks the player from revealing the tile</li><li>You can also press 1 to flag with the "!" flag type and 2 to flag with the "?" flag type</li></ul></li></ul>
<h3><strong>How to play if you're new to Minesweeper or Nonogram games<br></strong></h3>
<ul><li><strong>Minesweeper hints are the numbers on the board itself</strong><ul><li>The hint tells you how many mines there are next to it in all eight directions</li></ul></li><li><strong>Row and column hints, or Nonogram hints, are the numbers on the top and left side of the board
</strong><ul><li>If the hint is "2 1 3", that means from left to right or top to bottom, there are groups of two, one, and three mines with a gap between them, and can start and end anywhere in the row or column</li></ul></li></ul>
<h3>Support</h3>
<p>You can report bugs or leave feedback by posting a comment, or sending an email to her@eslee.dev.<br></p>
<h3>Credits</h3>
<ul><li>Lizzi Crossing is a game by Eva Lee</li><li>The m6x11 font is by Daniel Linssen</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjY0NTg3LzM2NjA1MTMucG5n/original/uUf2Tm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY0NTg3LzM3MjczMjQucG5n/original/jh5coi.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY0NTg3LzM3MjczNTEucG5n/original/NtxN7R.png]]
<p><em>What if the world was really against you? What if you couldn't escape? Struggle against the stress and pressure of the world - of your own guilt - bearing down upon you. There are no heroes here.<br></em></p>
<p><em>Locus</em>&nbsp;is a&nbsp;<strong>bespoke, mystery/horror roleplay game</strong>&nbsp;with unique mechanics crafted entirely around horror. &nbsp;</p>
<p>It is a game about&nbsp;<strong>flawed character</strong>, about&nbsp;<strong>exploring consequence</strong>&nbsp;and&nbsp;<strong>morality</strong>&nbsp;against a backdrop of very real, supernatural and monstrous danger. &nbsp;</p>
<p>The&nbsp;<strong>game master</strong>&nbsp;assumes the position of a&nbsp;<strong>Director</strong>, who conducts their Cast (the players) in their tragic play of characters haunted by their own pasts and a scenario which aims to turn those haunts against them.&nbsp;&nbsp;</p>
<p>The goal is two-fold - to unravel the mystery of the world, and then&nbsp;<strong>survive it</strong>.</p>
<p class="text-center"><br>-----------------------------------------------------</p>
<p><br><strong>Game Features<br></strong><em>Locus </em>offers a number of unique features to facilitate the horror stories it is made to tell.</p>
<ul><li><strong>Negative attributes</strong> - You do not decide how well your character might perform tasks. Instead, you score how badly they might&nbsp;do.</li><li><strong>Haunts</strong> - Every character comes with a Haunt. This is an event in their past that weighs upon them. This acts as the focus for the personal horror that character must confront.</li><li><strong>Custom made monsters</strong> - <em>Locus </em>includes the rules and a guide to create your own monsters to reflect each of the player characters, their fears and their failings.</li><li><strong>Item cards</strong> - Notable items are represented on cards the players can hold. However, they degrade with use, making each use a decision with consequences.</li><li><strong>Simple execution</strong> - The rules are designed to facilitate horror and provide meaningful decisions and cues for characters and Director while not getting in the way of the roleplaying experience.</li></ul>
<p class="text-center">---------------------------------------------------</p>
<p><strong>The Documents</strong></p>
<p>The game is presented in two documents - a&nbsp;<strong>Director's</strong>&nbsp;Guide and a&nbsp;<strong>Player</strong>&nbsp;Guide. Potential&nbsp;<strong>players</strong>&nbsp;should ideally not read the&nbsp;<strong>Director's</strong>&nbsp;Guide, as it reveals many of the secrets they would be aiming to discover in play. &nbsp;&nbsp;The&nbsp;<strong>Player</strong>&nbsp;Guide covers what you can expect as a player, the rules, character creation and some guidance on roleplay, interacting with the world and how certain conflicts will play out mechanically. &nbsp;The&nbsp;<strong>Director's</strong>&nbsp;Guide contains all the tools needed to understand the lore of <em>Locus </em>and build and run your own game, guidance on working with players to get the most out of the personalised elements of your design including monsters tailor made to the player characters, and a full sample campaign.&nbsp;</p>
<p>Both guides are included in the purchase and both are needed to play.</p>
<p class="text-center">-----------------------------------------------------</p>
<p><strong>The Locus Open Licence</strong></p>
<p>Locus is released on an Open licence meaning that you can make your own content/hacks/additions and sell them free of any royalty fees.<br>Find out more on our website at:&nbsp;<a href="https://www.cobblepathgames.co.uk/resource-men-drop" target="_blank" rel="nofollow noopener" referrerpolicy="origin">https://www.cobblepathgames.co.uk/resource-men-drop</a><a href="https://www.cobblepathgames.co.uk/resource-men-drop" rel="nofollow noopener" referrerpolicy="origin"></a></p>
<p></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODg3MDY5LzUxNDM4MjguanBn/original/scXPbC.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODg3MDY5LzUxNDM5NTIuanBn/original/45%2FeEc.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODg3MDY5LzUxNDM5NTUuanBn/original/ITF5Qu.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODg3MDY5LzUxNDg0MTIuanBn/original/bEiwH5.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODg3MDY5LzUxNDM5NTYuanBn/original/bMfEE1.jpg]]
<h4 class="text-center"><br><br>Somewhere deep inside the magical forest forgotten<br>lies a hut, a potion shop!<br><br>~ ~ ~ ✿ ~&nbsp;~ ~</h4>
<h4 class="text-center"><em></em></h4>
<h4 class="text-center">The creatures of the lands near and far <br>come visit this tiny place<br>sharing their stories,  feelings,<br>thoughts on the mystery that's about to unravel...<br>And it's your job to pour 'em some potions!</h4>
<p><br><br><br><br><strong>FEATURES</strong><br><strong>✿&nbsp;</strong>2 h ~ playtime<br><strong>✿&nbsp;</strong>10 000 ~ words of potion shop chattin'<br><strong>✿&nbsp;</strong>many creatures to meet and even more potions to make<br><strong>✿&nbsp;</strong>freemode!</p>
<p><strong><br>Part of the <a href="https://itch.io/b/812/care-package-bundle" target="_blank"><em>Care Package Bundle!</em></a><br><br><a href="https://itch.io/b/812/care-package-bundle" target="_blank"><img src="https://img.itch.zone/aW1nLzUzOTAxNjUucG5n/original/elyKdC.png" alt="click to open!" title="click to open!" loading="lazy"></a><br></strong></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/wFWpLNZwUo8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTM1NjgxLzUzNjczMTEuZ2lm/original/5r5VJp.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvOTM1NjgxLzUzNjc2NDMuZ2lm/original/ZGuZG9.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvOTM1NjgxLzUzNjc1MzYuZ2lm/original/dFW9%2BH.gif]]
<h3></h3>
<div class=""><iframe style="width: 500px; height: 281px" src="https://www.youtube.com/embed/5muGeXdxKTs" frameborder="0" allowfullscreen=""></iframe></div>
<h3>Short Description</h3>
<p>
	Long Gone Days is a <strong>2D modern-day military RPG set in our current times</strong>, with a focus on language and cultural barriers, inspired by classic dystopian literature and visual novels.</p>
<p><img src="https://img.itch.zone/aW1nLzM2NDkzOTEuZ2lm/original/xQmlYS.gif" loading="lazy"><br></p>
<p><span></span></p>
<p>After being deployed to his first mission,&nbsp;<strong>Rourke</strong>&nbsp;leaves&nbsp;<strong>The Core</strong>'s base for the very first time, only to discover the dark truth about the operation he's part of and <strong>the consequences of deserting an inescapable war</strong>.</p>
<p>With no place to call home now, he must prevent the war from spreading any further, forming strong bonds along the way that will forever change his life.</p>
<p><img src="https://img.itch.zone/aW1nLzM2NDkzOTQuZ2lm/original/lgreo5.gif" loading="lazy"><br></p>
<ul><li><strong>Communication is Key:</strong>&nbsp;As Long Gone Days is set in the real world, you'll encounter several language barriers. Recruit interpreters in order to communicate with others.</li><li><strong>Keep Morale High:</strong>&nbsp;Choose dialogue options wisely as they impact your party members' Morale, affecting how they perform during battles. While doing so, keep in mind every character has different personality traits and motivations.</li><li><strong>Sniper Mode:</strong>&nbsp;Long Gone Days has two battle systems. Using Rourke's rifle, spot your enemies and take down your targets.</li><li><strong>No Random Encounters:</strong>&nbsp;Long Gone Days features front-view turn-based battles with body-targeting system, and every battle is directly related to the plot.</li></ul>
<h2>Frequently Asked Question</h2>
<p><strong>Q: Can I do a Let's Play/Review/Stream of the demo?</strong><br></p>
<p>
	A: Sure, we'd be honored.&nbsp;For reviews, you can also use the information/pictures from the <a href="http://longgonedays.com/press" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Press Kit</a>.</p>
<p>
	<strong>Read the entire FAQ <a href="http://longgonedays.com/faq" target="_blank" rel="nofollow noopener" referrerpolicy="origin">here</a>.</strong>
</p>
<h2>Contact<br>
</h2>
<p>
	<strong>Inquiries</strong> - info@bura.cl
</p>
<p>
	<strong>FAQ </strong>- <a href="http://longgonedays.com/faq" target="_blank" rel="nofollow noopener" referrerpolicy="origin">http://longgonedays.com/faq</a></p>
<p><strong>Web </strong>- <a href="http://www.longgonedays.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">longgonedays.com</a><span></span><br></p>
<p><strong>Discord</strong> - <a href="https://www.discord.gg/longgonedays" target="_blank" rel="nofollow noopener" referrerpolicy="origin">discord.gg/longgonedays</a></p>
<p><strong>Twitter&nbsp;</strong>-&nbsp;<a href="http://twitter.com/lgdays" target="_blank" rel="nofollow noopener" referrerpolicy="origin">twitter.com/lgdays</a><br></p>
<p><strong>Tumblr -</strong> <a href="http://lgdays.tumblr.com" rel="nofollow noopener" referrerpolicy="origin">lgdays.tumblr.com</a></p>
<p>
	<strong>Facebook </strong>- 
	<a href="https://www.facebook.com/LongGoneDaysGame/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">facebook.com/longgonedaysgame</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/5muGeXdxKTs" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjYwODIvNjE2NTMyNS5naWY=/original/25MgY7.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjYwODIvMTEwMjMxMi5wbmc=/original/QcooDB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjYwODIvMTk5NjczMy5wbmc=/original/2SEqZ5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjYwODIvMTEwMjMxMy5wbmc=/original/t2v62G.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjYwODIvMTk5NjczMS5wbmc=/original/%2BkHn7e.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjYwODIvMTEwMjMxOS5wbmc=/original/Kl9ujt.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjYwODIvMTk5Njc0NC5wbmc=/original/fRCzAI.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjYwODIvMTEwMjMyMS5wbmc=/original/zNpn4u.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjYwODIvMTk5NjczMi5wbmc=/original/yz0h4%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjYwODIvMTEwMjMyMC5wbmc=/original/Jhi60H.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjYwODIvMTk5NjczNS5wbmc=/original/xCWZ8s.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjYwODIvMTk5NjczOC5wbmc=/original/%2BvJXjo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjYwODIvNjE2NTMzNi5naWY=/original/hM6L4A.gif]]
<p><strong>Loot the Plutes is the first full TTRPG published using the Four Points RPG System.</strong><br></p>
<p><strong>Overview</strong><br>In this game, you'll play as a gang of swashbuckling rogues in the hyper-capitalist plutocratic city of Gilderburg. The city&nbsp;is ruled over by the Circle, a group of six obscenely wealthy noble families.<br>Listen out for rumours, gather information, plan and attempt heists, evade the law&nbsp;and even use enchantments&nbsp;to literally steal from the rich and give to the poor.&nbsp;<br>Using Four Points, quickly make a character by choosing your Folk and area of roguish expertise, then you're ready to start looting!</p>
<p><img src="https://img.itch.zone/aW1nLzc1NzI0MjEucG5n/original/f5tlsY.png" loading="lazy"></p>
<figcaption>A small portion of the Circle's horded wealth.</figcaption>
<p></p>
<p><strong>The Folk of Gilderburg</strong><br>There are six playable Folk to choose from in Loot the Plutes. These are the Brell ( Catfolk), K'nach (Ratfolk), Leshvar (Lizardfolk), and the humanoid Hillfolk, Mountainfolk and Valleyfolk. Each Folk comes with a set of Traits and Abilities which have both narrative and mechanical applications.</p>
<p><img src="https://img.itch.zone/aW1nLzc1NzI0MjIucG5n/original/C0DsJk.png" loading="lazy"></p>
<figcaption>Three nobles, each the head of one of the noble families of Gilderburg.</figcaption>
<p><strong>Game includes:<br></strong>- Setting lore and description<br>- Map of Gilderburg<br>- Six playable Folk<br>- Rules and Character creation mechanics<br>- Pre-Adventure discussion prompts and advice for safe play<br>- Guide (GM) section, including tips and roll tables<br>- Form-fillable character sheet<br></p>
<p><strong>Files Overview<br></strong>Loot the Plutes fully illustrated PDF. All illustrations are traditionally hand-drawn, in black and white.<br>The Loot the Plutes (Text Only) PDF,&nbsp;&nbsp;Rules Reference (Text Only) PDF, and Character Sheet (Word Document), are all formatted and tagged for screen-readers.</p>
<p><strong>The Four Points RPG System</strong><br>Four Points is an RPG System that focuses on Characters, Narrative, Player Agency and Customisation. This game includes all the necessary rules for playing it, and the unabridged Four Points SRD is now available on my itchio store!</p>
<p><strong>Community Copies</strong><br>I've made a number of Community Copies available.&nbsp;For every copy of Loot the Plutes that is purchased, another Community Copy will be added.</p>
<p><strong>Disclaimer<br></strong>Please note that the setting for Loot the Plutes is a capitalist hell-scape, but unlike our own real world version, it does not include any discrimination based on colour, appearance, disability, faith (or lack thereof), sex or gender. This game does not in any way encourage or attempt to legitimise bringing bigotry and hatred to the table.<br>The game includes a section covering safe play, with a link to a curated collection of various safety tools.&nbsp;<br>I have done my best to set everything up correctly, also with regards to accessibility. If there are any issues with the documents, please let me know in the comments.<br>Thanks and have fun!</p>
<p>I have made a playlist of music inspired by Loot the Plutes:&nbsp;<a href="https://open.spotify.com/playlist/3MUs6bGHtb1Od779RrVplc?si=fgzE5-PdS12O4edaa-R08A" rel="nofollow noopener" referrerpolicy="origin">https://open.spotify.com/playlist/3MUs6bGHtb1Od779RrVplc?si=fgzE5-PdS12O4edaa-R08A</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMwMDQ5NS83NTY3MTI3LmpwZw==/original/AEpGe1.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwMDQ5NS83NTY2OTc3LmpwZw==/original/TJusNU.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwMDQ5NS83NTY2OTc0LmpwZw==/original/VShK04.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwMDQ5NS83NTY2OTczLmpwZw==/original/XdSlpm.jpg]]
<p><em>Lords of Eternity is an epic power fantasy. Play as superhuman beings of immense power dueling with swords, saving the world, and competing to take each other's heads until you earn the final Prize:&nbsp;&nbsp;total power and understanding over all living things. You are a <del>Master of the U</del>...Lord of Eternity.</em></p>
<p><img src="https://img.itch.zone/aW1nLzgxNjc0OTkucG5n/original/kJvbGJ.png" loading="lazy"></p>
<p>Long ago, for reasons that have never been clear, one hundred brave souls were selected by the Power to have a great destiny. Those chosen felt the Power pour into them, changing them. They were granted Abilities beyond that of mere mortals, the chance to harness the Power, to shape it to their own ends. Some yet appear human. Others have been twisted, formed, shaped by the Power. They've grown in physical strength, in intellect, in mechanical aptitude, and in magic.</p>
<p>These hundred, these chosen few, these immortals have but one destiny. They walk among the mortals, struggling to reach the end time, the time of the final battle.&nbsp;</p>
<p>When they battle, the victor seizes the Power from the vanquished and grows stronger. Now, after much time has passed, the remaining few are unequaled in all of history, mightier than any who have come before. The numbers dwindle, leading to the final confrontation.</p>
<p>The survivors have banded into factions, sworn to defend each other. All know that one day, those promises will fail and they will fight to the last. That one will claim the Prize: total power and understanding over all living things.</p>
<p>They are the Lords of Eternity.</p><p><img src="https://img.itch.zone/aW1nLzgxNjc1NjEucG5n/original/hKrJA%2F.png" loading="lazy"><br></p><h3>Lords of Eternity offers:</h3>
<ul><li>A simple d6 resolution system with thee stats&nbsp;that is Illuminated by&nbsp;<a href="https://gilarpgs.itch.io/lumen"><strong>LUMEN</strong></a>.</li><li>Over-the-top action and violence. Think cartoon battles. Punches that throw your opponents 30 or 40 meters, only to see them stand up, dust off, and return the favor, blasters that can shoot down wall, and rocks thrown into orbiting spaceships.</li><li>Every superpower from your favorite cartoon franchises is on the table. Mechanical limbs, powerful sorcery, incredible strength...it's all there.</li><li>Blur the lines between science and magic. Need an infinitely tall mechanical neck, or a dimensional gate that can poof! in zombies? We've got you covered.</li><li>Godlike abilities will happen. When fighting another immortal, players will steal their Power for themselves.</li></ul>
<p><img src="https://img.itch.zone/aW1nLzgxNjc1MDEucG5n/original/qtDN3K.png" loading="lazy"><br></p>
<p>Lords of Eternity is Illuminated by Lumen and inspired by both He-Man and Highlander.&nbsp;&nbsp;In it, you play superhuman immortals battling to take each others' heads...and Power. In the end, there can be only one Champion.</p>
<p><img src="https://img.itch.zone/aW1nLzgxNjc1MDUucG5n/original/wqJczW.png" loading="lazy"></p><h3>There can be only One! Will it be you?</h3>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMxMzYwMy84MDE1OTM2LnBuZw==/original/HG6TWv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMxMzYwMy83NjU0NTAyLnBuZw==/original/b3R2lK.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMxMzYwMy83NjU0NTAxLnBuZw==/original/qws7Nf.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMxMzYwMy83NjU0NTAwLnBuZw==/original/sZ%2BIli.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMxMzYwMy83NjUxMTI2LnBuZw==/original/1FnZRY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMxMzYwMy83NjUyNDU4LnBuZw==/original/e01DOn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMxMzYwMy84MDE1OTM1LnBuZw==/original/OAr2F5.png]]
<p style="text-align: center"><em>Once Upon a time, there was an unhappy child. All they wanted in life, was to be happy, and in their dreams, they were. However, all dreams must come to an end someday. </em><br></p>
<hr>
<p>Lost Dreams is a game created for My First Game Jam.</p>
<p>The game is very short, only half an hour to an hour long, but it was my first venture into creating almost all of the assets used in the game.</p>
<p>You play a child, who is on a quest to wake up from their blissful dream while the inhabitants of their dream world try to, half heartedly, stand in their way. The majority of the game are simple puzzles, with atmospheric music and surreal inhabitants to the world. </p>
<p>The game features include:</p>
<ul><li>Multiple endings (4 bad endings, one normal, and one true ending)</li><li>A rhythm-based battle system</li><li>New Game+</li><li>Various puzzles and riddles</li></ul>
<p>Warnings for the game include:</p>
<ul><li>Mention of suicide</li><li>Mentions of abuse and neglect</li><li>Body horror</li><li>Scopophobia</li><li>Trypophobia</li><li>Loud noises</li></ul>
<p>While I personally am not completely happy with the outcome of the game, I am proud of the fact that it is a project that I have actually finished, and am looking forward to the next game jam I join. </p>
<hr>
<p>GAME CREDITS:</p>
<p>Director/Artist/Writer/Character Design</p>
<ul><li>Comic</li></ul>
<p>Editor/Muse/Spouse/Beta Tester</p>
<ul><li>Ashfield, my wonderful spouse who has supported me in every project I start<span></span></li></ul>
<p>Music</p>
<ul><li>CAMeLIA - <a href="http://agnello-pecora.chu.jp/CAMeLIA/" rel="nofollow noopener" referrerpolicy="origin">http://agnello-pecora.chu.jp/CAMeLIA/</a></li><li>Dova-S - <a href="http://dova-s.jp/" rel="nofollow noopener" referrerpolicy="origin">http://dova-s.jp/</a></li><li>Magic Egg - <a href="http://ontama-m.com/index.html" rel="nofollow noopener" referrerpolicy="origin">http://ontama-m.com/index.html</a></li><li>Pocket Sound - <a href="http://pocket-se.info/material/" rel="nofollow noopener" referrerpolicy="origin">http://pocket-se.info/material/</a></li><li>Senses Circuit - <a href="http://senses-circuit.com" rel="nofollow noopener" referrerpolicy="origin">http://senses-circuit.com</a></li></ul>
<p>Scripts</p>
<ul><li>XS</li><li>Yanfly</li><li>Khas</li><li>Moghunter</li><li>PAC</li><li>Killozapit</li><li>Zerbu</li><li>Formar0153</li><li>Raizen</li><li>Modern Algebra</li></ul>
<p>Pixels</p>
<ul><li>Enterbrain</li><li>Comic</li></ul>
<p>SFX</p>
<ul><li>Enterbrain</li></ul>
<p>You will need to download the RTP for RPG Maker VX Ace though in order to play it. http://www.rpgmakerweb.com/download/additional/run-time-packages</p>
<p><span></span></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTA5MDMvMjI0MzY2LmdpZg==/original/DtJjFR.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA5MDMvMjI0MzY3LmdpZg==/original/P%2BC%2BbS.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA5MDMvMjI0MzY4LmdpZg==/original/KptDAT.gif]]
<p><strong><strong>LOST EONS </strong></strong><strong>is solarpunk sci-fantasy</strong><strong>. </strong>In Lost Eons you will emerge from the darkness into a new light, one 
dominated by inscrutable and terrible forces you must seek to 
understand. Using this guide create a post-human character, ready to 
face the mysteries and dangers of a far future Earth. <strong><br></strong></p>
<p><strong><strong>LOST EONS</strong> is a fast but deep toolkit.</strong> Play instant no-prep  one-shots and sustained campaigns. Discover beautiful and horrifying new 
adventures through evocative prompts and procedural generation.&nbsp;
  </p>
<p><strong>LOST EONS is no-maths and instantly playable.</strong><strong> </strong>Mashing together 24XX and Blades in the Dark, gameplay is streamlined, flexible, fast and potentially brutal.  Level-up through mutation, your body changing as you evolve. Character Playbooks let you create a character in seconds, yet have limitless customisation through play. <br></p>
<p>Lost Eons is an innovative FKR inspired&nbsp;mashup of <a href="https://johnharper.itch.io/blades-in-the-dark">Blades in the Dark</a> and <a href="https://jasontocci.itch.io/24xx">24XX</a>,  with an improvised card-based magic system, Lost Eons reconfigures  fantasy and that dragon game for a world recovered from a devastating  climate cataclysm.&nbsp;
 </p>
<p>The Lost Eons rules have been written with&nbsp; <a href="https://laurieoconnel.itch.io/" target="_blank">Laurie O'Connel</a>
<br></p>
<p><strong>LOST EONS Core books edited by <a href="https://itch.io/profile/nakade">Nakade</a><br></strong></p>
<p><strong>Included in LOST EONS:</strong>
 </p>
<ul><li><strong>THE PLAYERS GUIDE</strong> outlining the simple and fast mechanics, character creation, mutations, the Skills, Traits and Talents that define a character and the entwined Magic and Mutations to bring mischief and mayhem. </li></ul>
<ul><li><strong>THE FENS SETTING BOOK </strong>a systemfree Setting guide with Information on the plant-entwined archivists, the Calyx, alongside their flowering underground sect, the Colora: the playful crab-like traders the Cambrians, the scarred seapunk Aya, the barge-dwelling anarchist Free Folk and the great golems of the sentient reed-beds, the Wickonen.&nbsp; </li><li>Each of these cultures has suggested names, items, Traits, histories and cultures, allowing you to embody an aloof Calyx, a cunning Cambrian, or hulking Wickonen at your gaming table.&nbsp;
</li></ul>
<ul><li><strong>GM's TOOLS BOOK</strong> containing adventuring&nbsp; procedures, a card-deck countdown to DOOM, a fast but complex encounter generator, spark-tables for environmental description and generation, a collaborative no-prep campaign creation procedure, a bestiary of 54 weird and wonderful science fantasy creatures and anomolies, treasure tables, and a procedurally generated one-shot/campaign starter.
</li></ul>
<p><strong>JOIN THE DISCORD &nbsp;<a href="https://discord.gg/SPrm93p5dM" rel="nofollow noopener" referrerpolicy="origin">https://discord.gg/SPrm93p5dM</a></strong></p>
<p><strong>INFLUENCES</strong></p>
<p><a href="https://www.theparisreview.org/blog/2019/03/12/the-left-hand-of-darkness-at-fifty/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Left Hand of Darkness</a> by Ursula Le Guin</p>
<p><a href="https://www.newyorker.com/books/second-read/octavia-butlers-prescient-vision-of-a-zealot-elected-to-make-america-great-again" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Parable of the Sower</a> by Octavia Butler</p>
<p>Staying with the Trouble by Donna Haraway</p>
<p>He, She and It by Marge Piercy</p>
<p><a href="https://chrismcdee.itch.io/electric-bastionland" target="_blank">Electric Bastionland</a> by Chris McDowall</p>
<p><a href="https://johnharper.itch.io/blades-in-the-dark" target="_blank">Blades in the Dark</a> by John Harper</p>
<p><a href="https://jasontocci.itch.io/2400">2400</a> by Jason Tocci</p>
<p><a href="https://buriedwithoutceremony.com/the-quiet-year" target="_blank" rel="nofollow noopener" referrerpolicy="origin">The Quiet Year</a> by Avery Alder</p>
<p><a href="https://gshowitt.itch.io/" target="_blank">Lots of stuff</a> by Grant Howitt</p>
<p><a href="https://www.drivethrurpg.com/product/80191/CT-DTDeluxe-Traveller" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Traveller</a> by Marc W. Miller</p>
<p><a href="https://loottheroom.itch.io/wretched" target="_blank">The Wretched</a> by Chris Bissette</p>
<p><a href="https://www.google.com/search?q=D%26D&amp;ei=ihRPYcWwI9SX8gKpmLbIBg&amp;oq=D%26D&amp;gs_lcp=Cgdnd3Mtd2l6EAMyBwgAELEDEEMyBwgAELEDEEMyBwgAELEDEEMyBAguEEMyBAgAEEMyBAgAEEMyBAgAEEMyCAgAEIAEELEDMgUILhCABDIFCAAQgAQ6CAgAELADEJECOg4IABCABBCxAxCDARCwAzoLCAAQgAQQsQMQsAM6CAgAEIAEELADOgsIABCxAxCDARCwAzoKCAAQsQMQsAMQQzoNCC4QsQMQxwEQowIQQzoLCC4QgAQQxwEQrwFKBAhBGAFQsU1Y61Bg61NoAXAAeACAAWaIAa8BkgEDMS4xmAEAoAEByAEKwAEB&amp;sclient=gws-wiz&amp;ved=0ahUKEwjFnb7ZjprzAhXUi1wKHSmMDWkQ4dUDCA4&amp;uact=5" target="_blank" rel="nofollow noopener" referrerpolicy="origin">That Dragon game</a> by generations of designers</p>
<p><strong>Based on</strong> The World After by Matt Goulson and David Blandy</p>
<p><strong>Co-written</strong> by Andy Prentice, Apollo Uhlenbruck, Pawel Stachyra, Noe Rodríguez, Katherine Parkin, Kate Brockie, Piotr Czosnyka, Amy Mason, Clair Le Couteur, Chris Joynes, Jazmin Morris, Craig David Parr, Polly Barnes, Mansi Shouche and Susuana Amoah</p>
<p><strong>Other illustrations</strong> Katherine Parkin, Polly Barnes, Craig David Parr and David Blandy</p>
<p><strong>Acknowledgements</strong> This text would not exist without Oz Browning, Sean Smith, Andy Prentice, Matt Goulson and Daniel Locke. Also thanks to the FKR Collective Discord for constant inspiration and support, notably Nakade (@beeptest), @wendi, @CosmicOrrery, @PanicPillow,&nbsp; @ContrabandRimer, @Revenant's Quill</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIxMjgxNi83NDU4NjM3LmpwZw==/original/bMmU8O.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxMjgxNi83NDU4NjQ0LmpwZw==/original/mwa2vN.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxMjgxNi83NDU4NjQ2LmpwZw==/original/bBTH%2BW.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxMjgxNi83NDU4NjQ3LmpwZw==/original/II%2BuT8.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxMjgxNi83NDU4NjUwLmpwZw==/original/hyDsqn.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxMjgxNi83NDU4NjUxLmpwZw==/original/pOf%2FKF.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxMjgxNi83NDU4NjU3LmpwZw==/original/B18pPl.jpg]]
<p>Stranded after his ship is destroyed in deep space, Harrison, a lowly maintenance worker and our hero, must struggle to find his way home…<br><br>LOST ORBIT centers around the exploration of space. Players take control of a lone astronaut who sets off on a dangerous journey to rejoin his civilization, armed with only an improvised set of equipment and a relentless spirit. Without the help of his ship, Harrison will need to use the gravitational forces of planets to navigate and propel himself through space.<br><br><img src="https://steamcdn-a.akamaihd.net/steam/apps/372320/extras/LOSTORBIT_Gifs.gif?t=1563995743" loading="lazy"><br><br>Set in a world rich with comedy and tragedy, LOST ORBIT is a game filled with risk, loneliness, wonder, and death.<br><br><strong>A personal story&nbsp;</strong>- A fully narrated story delivers a deep and entertaining experience exploring death, loneliness and madness. A fully narrated and voiced story takes you through a funny and heartwarming experience as you face mortality, family and hunger.</p>
<p><br><img src="https://steamcdn-a.akamaihd.net/steam/apps/372320/extras/LOSTORBIT_Gifs_1.gif?t=1563995743" loading="lazy"><br><br><strong>Beautiful Worlds</strong>&nbsp;- Traverse fantastical interstellar worlds on a quest to reunite with civilization and uncover the mysteries of the disaster that left Harrison stranded. Top down action has never looked this good, explore the wonder of the cosmos and find new ways to die.</p>
<p><br><img src="https://steamcdn-a.akamaihd.net/steam/apps/372320/extras/LOSTORBIT_Gifs_3.gif?t=1563995743" loading="lazy"><br><br><strong>Fast Paced</strong>&nbsp;- Travel through space at break-neck speeds! Go faster and then go faster. Upgrade your suit and utilize cosmic forces to propel yourself to the brink of death as you dodge, grind, and smash your way home. Challenge yourself to complete each level perfectly and then take to the leaderboards to challenge the world for the best times!</p>
<p><br><img src="https://img.itch.zone/aW1nLzQyOTI1NDguZ2lm/original/AlfI8U.gif" loading="lazy"><br><br><strong>Challenge&nbsp;</strong>- 50 intense levels across 5 systems and over 15 extreme challenge levels<br>- A derelict mining system with broken down and deadly machines<br>- Vega, a lush and beautiful space forest with dangers around every corner<br>- Teleport through a barnacle filled system, home of a dangerous race of creatures<br>- Sneak through a galactic battleground, filled with destroyed ships firing lasers in every direction<br>- Blast through a crystal filled system patrolled by space pirates</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/fBVKVtS2vcs" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjgxNTA1LzM3NDcwMDcucG5n/original/Rx%2FB6J.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjgxNTA1LzM3NDcwMDIucG5n/original/IvfEPR.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjgxNTA1LzM3NDcwMDYucG5n/original/b8fSxG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjgxNTA1LzM3NDcwMDQucG5n/original/Qdgypz.png]]
<p>Lost Potato is a minimalistic top-down roguelite where you can't damage enemies directly. Push them into spikes, reflect bullets and help a young potato find its way out of a jungle filled with man-eating tribes!</p>
<p><img src="https://img.itch.zone/aW1nLzQzMjA2NDMuZ2lm/original/EotjHP.gif" loading="lazy"><br></p>
<ul><li>Randomly generated levels and upgrades to choose from</li><li>Use your environment to defeat your enemies!</li><li>14 hats to unlock, each of them giving you new starting stats or traps</li><li>Fast-paced: average runs last 3-5 minutes</li><li>Keyboard &amp; mouse recommended, although the game also supports controllers</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/Apd1ImEJmXs" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjg3Mjg1LzQzMjA2MTAucG5n/original/WCbXSw.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjg3Mjg1LzQzMjA2MDcucG5n/original/pp8RFT.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjg3Mjg1LzQzMjA2MDgucG5n/original/WdKRpI.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjg3Mjg1LzQzMjA2MDkucG5n/original/6eJZ%2FJ.png]]
<p><em>Since a few years strange lizard folk seem to have set up camp in the&nbsp;<strong>Darkspire mountains</strong>. The smolfolk of&nbsp;<strong>Gillingsburg</strong></em><em>&nbsp;don't like it much, like they dislike any change. Recently folk have started disappearing. At first only out-of-towners were missing, so the people of Gillingsburg didn't worry much, but now more people are gone, and it's starting to have an impact on the amount of fresh turnips at the weekly market, people are getting antsy.</em></p>
<h2>What is this?</h2>
<p>An old school hexcrawl adventure for <a href="https://ozbrowning.itch.io/ozr" target="_blank">OZR</a>, written for the&nbsp;<a href="https://itch.io/jam/ozrjam" target="_blank">#ozrjam</a> &amp; the&nbsp;<a href="https://itch.io/jam/random-adventure-jam" target="_blank">#AdventureJam</a>.</p>
<p>The pamphlet contains NPC &amp; monster stats for OZR, the accompanying bookmark (#statmark) adds stats for&nbsp;<a href="https://emielboven.itch.io/durf" target="_blank">DURF</a>.</p>
<p>Hex tiles by <a href="https://natetreme.itch.io/" target="_blank">Nate Treme</a> (<em>Highland Paranormal Society</em>).&nbsp;Character art by <a href="https://twitter.com/Bertdrawsstuff" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Bertdrawsstuff</a>.&nbsp;Lizard portraits by <a href="https://twitter.com/EvlynMoreau" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Evlyn Moreau</a>.&nbsp;</p>
<p>For use with <strong>OZR</strong> by Oz Browning or <strong>DURF</strong> by Emiel Boven, but easily converted to your analog adventure game of choice.</p><h3>Newsletter</h3>
<p>Want to keep track of what I'm doing? Subscribe to my&nbsp;<a href="https://tinyletter.com/monstermind" target="_blank" rel="nofollow noopener" referrerpolicy="origin">newsletter</a>&nbsp;and be the first to know about my games in development.</p><p><br></p>
<p><span></span></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMzNTgzMC83NzcyMDU4LnBuZw==/original/p22V8k.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMzNTgzMC83NzcyMDU3LnBuZw==/original/wBjsx1.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMzNTgzMC83NzcyMDYxLnBuZw==/original/pHxKa4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMzNTgzMC83NzcyMDYwLnBuZw==/original/NiZc5d.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMzNTgzMC83NzcyMTIyLnBuZw==/original/26jiV2.png]]
<p></p>
<h2>Create your own tracks - challenge your friends!</h2>
<p></p>
<p><strong>TrackMasters</strong> is a <strong>multiplayer-only arcade racing game</strong> inspired by MicroMachines, packed with a full <strong>level editor</strong> to make your own tracks the way you want!</p>
<p>Create your tracks, share your tracks, save your best time on someone's track and challenge them to beat it ⏲</p>
<p></p>
<h2>Play online and LAN with up to 8 players! </h2>
<p></p>
<p>TrackMasters is built for online play - connect your LouveSystems account and connect with friends and strangers alike to race! <br>The game works offline as well, and can be played with up to seven bots at once 🤖</p>
<p></p>
<h2>Accessible to all ages</h2>
<p></p>
<p>The game does not support chatting and content is moderated to stay appropriate for children. Even if you're not comfortable reading or understanding any of the included languages, the wide use of pictograms in menus allows you to navigate and configure the game easily 🧰</p>
<h2>International!</h2>
<p>There is no central server and players are connected to each other - anyone can play with anyone on the globe! <br>Wherever you are, join the community at <a href="https://discord.gg/y7zKv3N" rel="nofollow noopener" referrerpolicy="origin">https://discord.gg/y7zKv3N</a>, jump in and show us what you've got! 🏁<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/UsyN8oQZbOM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzkzNDAzLzQ0NDIyMzUucG5n/original/wI56ga.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzkzNDAzLzQ0NDIyMzgucG5n/original/R6i61o.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzkzNDAzLzQ0NDIyMzcucG5n/original/il6uQO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzkzNDAzLzQ0NDIyNDAucG5n/original/dn4VLE.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzkzNDAzLzQ0NDIyMzkucG5n/original/aqxc2r.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzkzNDAzLzQ0NDIyNDEucG5n/original/V%2B3UEt.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzkzNDAzLzYxNTgyMDIucG5n/original/RXLKMV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzkzNDAzLzYxNTgyMDMucG5n/original/c%2FGShO.png]]
<p>kuso is the sequel to&nbsp;<a href="http://store.steampowered.com/app/269270" target="_blank" rel="nofollow noopener" referrerpolicy="origin">LOVE</a>, and maintains the same focus on creating a fair challenge for players to complete and master. You have the ability to run, jump, and leave your own checkpoint. Make your way through acid, long jumps, disappearing platforms, bouncers, giant saws, and much more in this dreadful mechanical world. If you're looking for a game that'll challenge your platforming skills, give you something excellent to listen to, and a game to master, kuso is the game for you.<br><br>Features:<br>• 41 Levels with unique music for each stage<br>• 26 Unlockable Achievements<br>• Local 2 Player Race Mode across 32 Levels<br>• Speedrun Mode allows players to compete for the fastest time<br>• Time Attack Mode allows players to master individual levels for the fastest time<br>• A completely original soundtrack by James Bennett<br>• Collectibles and Secrets for players to find<br>• Full Controller Support for XInput Gamepads</p>
<p>Note: Ouya version works, but is not supported.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/iIJrLlOTsT4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTk0MTYxLzkwNzQzMS5naWY=/original/DyFPaV.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTk0MTYxLzkwNzQzMi5naWY=/original/qBqo5P.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTk0MTYxLzkwNzQzMy5naWY=/original/qnyeOd.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTk0MTYxLzkwNzQzNC5naWY=/original/UA9jNu.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTk0MTYxLzkwNzQzNS5naWY=/original/qXtVUd.gif]]
<p>Lucha Libram! is designed to be a fast, frantic game of high-flying action for two (or more!) players. Players can create characters and play through an entire match in about an hour.&nbsp;</p>
<p>Create your luchador, figure out how their magical abilities enhance their wrestling style, and go out to crush your opponent and win over the crowd!</p>
<p>Also, please know that $1 of every purchase will go towards supporting Progreso Latino, Inc (<a href="https://progresolatino.org/" rel="nofollow noopener" referrerpolicy="origin">https://progresolatino.org/</a>)</p>
<p>If money is tight and you can't make the price work, email me at podofblunders@gmail.com and I'll send you a copy.&nbsp;</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM1NjYwMC83OTA0NjU1LmpwZw==/original/B1ZFbJ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM1NjYwMC83OTA0NjQ3LnBuZw==/original/3BtL1T.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM1NjYwMC83OTA0NjQ5LnBuZw==/original/BVQSZm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM1NjYwMC83OTA0NjQ4LnBuZw==/original/CkUSqI.png]]
<p><em>Consider buying my most recent steam game- RD Mars</em><em><br></em><br><em><a href="https://store.steampowered.com/app/1714020/RD_Mars/" rel="nofollow noopener" referrerpolicy="origin">https://store.steampowered.com/app/1714020/RD_Mars/</a></em></p><p><br></p>
<p>*Epilepsy/Vertigo Warning*</p><p><br></p>
<p>“Lucid: Parables of the Ubermensch”&nbsp; is a pixel art 2D platformer with abstract theming where you walk through the dreams of an unknown entity. Lucid is a&nbsp;game&nbsp;that challenges traditional conceptions of&nbsp;what&nbsp;video games are&nbsp;creatively through&nbsp;an uncompromising artistic&nbsp;vision&nbsp;and subversion&nbsp;of traditional narrative.&nbsp; Every level in Lucid has a unique theme, unique level gimmick, and story built into it for the player to uncover.</p>
<p><br></p>
<p>Lucid has:</p>
<p>-Dozens of levels.</p>
<p>-Unique and visually dynamic art for each individual level.</p>
<p>-No nonsense retro 2D platforming with tight controls and refined level design.<br></p>
<p>-Various and ever-changing gameplay mechanics to keep levels interesting.</p>
<p>-A vision to share.</p>
<p><br><br>If you would like to give feedback or report bugs, do so here: <a href="https://forms.gle/rEMxTmR4mS1ytbXEA" rel="nofollow noopener" referrerpolicy="origin">https://forms.gle/rEMxTmR4mS1ytbXEA</a><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/17PzKYSPGSY" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTIwNjEwLzUyMDU1NjAucG5n/original/DHAYbr.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIwNjEwLzUyMDU1NTYucG5n/original/CG4ZvN.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIwNjEwLzUyMDU1NTcucG5n/original/8DPJ7I.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIwNjEwLzUyMDU1NTUucG5n/original/nLC5iM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIwNjEwLzUyMDU1NTkucG5n/original/lkYwrG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIwNjEwLzUyMDU1NTQucG5n/original/9yuq18.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIwNjEwLzUyMDU1NTMucG5n/original/HfFj8E.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIwNjEwLzUyMDU1NTIucG5n/original/LULDu4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIwNjEwLzUyMDU1NTgucG5n/original/%2F%2FkiGB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIwNjEwLzUyMDU1NTEucG5n/original/btdtup.png]]
<p>Follow:<br></p>
<p>🔎&nbsp;<a href="https://twitter.com/KitfoxGames" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter<br></a>🔎&nbsp;<a href="http://www.kitfoxgames.com/sendy/kitfox-subscribe" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Newsletter</a><br>🔎&nbsp;<a href="https://discord.gg/kitfoxgames" target="_blank" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">Discord</a>&nbsp;</p>
<p><span></span></p>
<p>Everyone is a suspect. Unmask their lies. Choose one to purge.</p>
<p><em>Lucifer Within Us</em>&nbsp;asks you to solve short, player-directed, story rich mysteries with your wits, making observations and deductions in a world of daemonic possession and invasive soul-scanning technology.&nbsp;<br><br><em>From the creator of The Shrouded Isle.</em><br></p>
<p><img src="https://img.itch.zone/aW1nLzIyNjQyNzAucG5n/original/KitoZs.png" loading="lazy"></p>
<ul><li><strong>Investigate timelines.</strong>&nbsp;Question your suspects. Watch their movements and testimonies closely, as the reconstruction may be based on lies. Use contradictions and clues to form your own hypothesis. Who is lying and why? Who is possessed? You must decide what is the truth for yourself, based on the evidence presented.</li></ul>
<p><br></p>
<ul><li><strong>Real mystery-solving.</strong>&nbsp;No hidden plot twists, no QTEs, no random puzzles or mini-games, just you and the information. Don’t just act like a detective -- BE a detective in 3 murder cases. Finding the murderer will require true understanding of the case, not just following the story.</li></ul>
<p><span style="color: inherit; font-size: inherit"><img src="https://img.itch.zone/aW1nLzIyNjQyOTAuZ2lm/original/5Jl%2BAR.gif" loading="lazy"></span></p>
<ul><li><strong>Banish daemonic A.I.&nbsp;</strong>Enter the minds of citizens to gain insight into what they don’t want you to know. Dig through their subconscious and accuse the guilty in order to cast out their daemons, for the good of the Inquisition. Any damage done to a citizen’s psyche as a result of quarantine, exorcism, or rehabilitation is a consequence of their own immorality.</li></ul>
<p><br></p>
<ul><li><strong>Expose the False Utopia.</strong> Through centuries of indoctrination, humanity is taught to think pure thoughts and speak true words, untainted by falsehoods and delusions. Yet beneath this facade of purity, you find dark desires stir deep within people’s hearts, yearning for release.</li></ul>
<p><img src="https://img.itch.zone/aW1nLzIyNjQyNzEucG5n/original/Kl5hB9.png" loading="lazy"><br>As a digital exorcist working for the Church of Ain Soph’s Inquisition, it is your duty to find sinners and ensure continued harmony. Digital daemons corrupt the network cause human hosts to act on secret desires and sins, even unto murder. Discover the One Truth to determine which citizens are infected and exorcise the possessed.&nbsp;</p>
<p><img src="https://img.itch.zone/aW1nLzIyNjQzMjIuZ2lm/original/IOIJOG.gif" loading="lazy"><br></p>
<p>Built on the rubble of the Old World, the last human city has become a utopia of progress, digitization, and art. The Church guides citizens towards advancement and Truth with the aid of a digital consciousness network.<br><br>Use all of the tools at your disposal to find the truth, wherever it may hide… and beware the lies you tell yourself.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/xemUpNRxYrE" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDQ3OTY3LzQ0MTU2OTMucG5n/original/a7mhXn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQ3OTY3LzQ0MTU2OTgucG5n/original/KLTJJH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQ3OTY3LzQ0MTU2OTcucG5n/original/Q3xwxm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQ3OTY3LzQ0MTU3MDAucG5n/original/aa53zZ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQ3OTY3LzQ0MTU3MDEucG5n/original/sa4Ydq.png]]
<h1 class="text-center">Funomena's award-winning Luna is now on itch.io</h1>
<h4 class="text-center"><iframe style="width: 500px; height: 281px" src="https://www.youtube.com/embed/_JPBlUvFMiE" allowfullscreen="" frameborder="0"></iframe>
</h4>
<h1 class="text-center">Overview</h1>
<p>A Bird's peaceful summer slumber is disturbed by the majestic call of a mysterious Owl. Enticed to swallow the last piece of the waning Moon, Bird is blown far from its Golden Gate home.</p>
<p>Re-awaken shadowy forests and bring life back to sparkling lakes. Discover hidden creatures, help Bird reunite the fragmented Moon... and find its way home. </p>
<ul><li><strong>Solve celestial puzzles</strong> to unlock each level's tree, plants and animal spirits.
</li><li><strong>Place, customize and interact</strong> with them in miniature, musical terrariums. </li><li><strong>Bring each world to life</strong>, revealing Austin Wintory’s haunting, enchanting score.</li></ul>
<p>Brought to you by <a href="http://www.funomena.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Funomena</a>’s uniquely diverse team of veteran developers (<em>Journey, Flower, Boom Blox, The Sims 2</em>), Luna is an interactive fable about learning by the light of unexpected mistakes.<br></p>
<h4 class="text-center"><img src="https://img.itch.zone/aW1nLzEzNTM2NDMuZ2lm/original/K2Zbxt.gif" loading="lazy"></h4>
<hr>
<p>Luna started off in partnership with Intel and their RealSense Camera technology, but as the project evolved, and hand-tracked VR controllers began to emerge, we partnered with Oculus to bring the game to the Touch. The non-VR PC version was released shortly after the original launch date. The storybook edition later updated the core game with a&nbsp;voice over narrative &amp; localized subtitles to further elucidate Luna's heartfelt story.&nbsp;</p>
<p>You can find out more about how the idea for Luna came to be through these <a href="https://twitter.com/hunicke/status/931596077773369344" target="_blank" rel="nofollow noopener" referrerpolicy="origin">tweets by Robin Hunicke</a>. Luna is a very personal game for Robin, and we hope it'll touch you like it has already touched others across the world.
<br></p>
<h4 class="text-center"><img src="https://img.itch.zone/aW1nLzEzNTM2NjMuZ2lm/original/1X%2F%2Fuw.gif" loading="lazy"></h4>
<div></div>
<h1 class="text-center">Reviews</h1>
<p><em>“Without so much as a single word, Luna traps us within its narrative fantasy, quickly switching its focus to puzzles so we discover the truth in metered, literary chunks.”</em>
<a href="http://gameranx.com/features/id/127196/article/luna-first-impressions-an-awe-inspiring-journey/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Gameranx</a></p>
<p><em>“This process is truly special and unique because the more time you take with it, the more beautiful and rewarding the world will look...”</em>
8.6 – <a href="https://www.thenerdmag.com/luna-review-a-beautiful-immersive-fairytale/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">The Nerd Mag<br></a></p>
<p><img src="https://img.itch.zone/aW1nLzE1ODYyMDEucG5n/original/4N6tWr.png" loading="lazy"><br></p>
<hr>
<p class="text-center">Download <strong>Austin Wintory's haunting score</strong> to Luna right <a href="https://austinwintory.bandcamp.com/album/luna" target="_blank" rel="nofollow noopener" referrerpolicy="origin">here</a>.<br></p>
<h4 class="text-center"><img src="https://img.itch.zone/aW1nLzEzNTM3MDAuZ2lm/original/em98%2B%2B.gif" loading="lazy"></h4>
<h1 class="text-center">Recommended<strong> Specs<br></strong></h1>
<ul><li><strong></strong>Windows 10
</li><li><strong></strong>Intel Core i5 4590
</li><li>8 GB RAM
</li><li>NVidia GTX 960/965M/1050 (or greater) DX12-capable discrete GPU or AMD RX 460 (or greater) DX12-capable discrete GPU</li><li>Luna is best played in VR with motion controls or in 2D&nbsp;with a gamepad</li></ul>
<p><em>This itch.io listing now also includes the SteamVR version of Luna, compatible with headsets able to use that platform.&nbsp;</em><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/_JPBlUvFMiE" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjcxMjgwLzEzMTcyNjQuanBn/original/2qKSEr.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjcxMjgwLzEzMTcyNjMuanBn/original/gGMpXl.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjcxMjgwLzEzMTcyNTEuanBn/original/dXpRnr.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjcxMjgwLzEzMjI5MzcucG5n/original/PVxSRO.png]]
<p class="text-justify"><strong>Lunarrota&nbsp;</strong>is an open-world text adventure. It's also a story about talking to quirky robots, reading the diary of someone you never knew, getting lost in the woods, and trying to kill God.</p>
<p class="text-center">~ ~ ~ ~ 🌙 ~ ~ ~ ~</p>
<p class="text-justify"><em>You wake up on an unfamiliar beach. A slim robot with a worried face comes to help you. He speaks of an island and stars fallen from the sky, but you hardly listen to him. You only hear the words that loop in your mind:</em></p>
<p class="text-justify"><em>"<strong>Climb the Mountain. Kill the Goddess</strong>".</em>
</p>
<p class="text-center">~&nbsp;~ ~ ~&nbsp;🌙 ~ ~ ~ ~</p>
<p class="text-justify">Explore, talk, fight and enjoy the scenery across a small island inhabited by a colorful cast of robots. Your mission is to reach the top of the mountain, but the way you accomplish this is up to you. Will you try to get help from the island's denizens,&nbsp;or will you take what is yours by force?</p>
<p class="text-justify">The game is played exclusively by inputing commands through your keyboard.&nbsp;<em><strong>Inspect</strong></em> every curious object,&nbsp;<strong><em>read</em></strong> notes left behind long ago and&nbsp;<strong><em>fight</em></strong> using a variety of weapons and upgrades that you will find scattered around the island.</p>
<p class="text-justify">This game has a&nbsp;<a href="https://luis-s.itch.io/the-red-church" target="_blank">sister piece</a>&nbsp;that acts as a small demo of the engine and is set in the same universe, but in another place and time. They can be played in any order.</p>
<p class="text-center">~&nbsp;~ ~ ~&nbsp;🌙 ~ ~ ~ ~</p>
<ul class="text-justify"><li class="text-justify">This game is available in English and Spanish.</li><li class="text-justify">At the moment the game is only available for Windows. Please make sure your computer can run the game before purchasing.</li></ul>
<p class="text-justify">Have any feedback? Want to see more of my projects? Find me&nbsp;<a href="https://twitter.com/98Luisma" target="_blank" rel="nofollow noopener" referrerpolicy="origin">on Twitter</a>! :)</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE1NDg4NC83MjAxODIwLnBuZw==/original/OGGCrU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1NDg4NC83MzE5OTA2LnBuZw==/original/fTHq%2Br.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1NDg4NC83MjAxODIyLnBuZw==/original/phR6Yd.png]]
<p>Lutong Banwa is a cooking game, where you set out to adventure and find ingredients from Spirits and recipes from old civilizations. Embark on this anti-canon storygame adventure with its own custom system and play to find out just what sort of zany adventures you can get up to in this weird, wild world. Do whatever you want.<br><br>With beautiful illustrations by <a href="https://twitter.com/TanoroChen" rel="nofollow noopener" referrerpolicy="origin">TanoroChen</a>. Available in 2 languages.<br><br>P.S. This game&nbsp;lets you play with all the dice you don't normally play with recently: like the d12, the d8, and the d4!&nbsp;<br>______<br><br>Lutong Banwa recently won the&nbsp;<a href="https://www.youtube.com/watch?v=qShoBIw7H-0" rel="nofollow noopener" referrerpolicy="origin">2021 Indie Groundbreaking Award for Best Art!</a></p><p></p><div class=""><iframe width="500" height="281" src="https://www.youtube.com/embed/qShoBIw7H-0" frameborder="0" allowfullscreen=""></iframe></div><p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/qShoBIw7H-0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODM1MjM3LzQ2ODAzNzcucG5n/original/iqqk%2Fz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODM1MjM3LzQ2ODAzODAucG5n/original/CcV78W.png]]
<p>Lydia is a story-driven adventure game to the depths of the imagination of a small child. The&nbsp;game deals adults substance abuse from the perspective of a little girl. The story is based on developers own experiences on the subject matter. Lydia is a story game in the vein of To the Moon.&nbsp;<em>The game is all about the atmosphere</em>.&nbsp;</p>
<p><em><strong>Lydia&nbsp;</strong>is a sweet little girl who loves her&nbsp;<strong>Teddy&nbsp;</strong>very much. Teddy has been with Lydia from the very beginning. Lydia can’t remember living or playing without him. Lydia has never adventured nor found crickets from the nearby playground without him. Lydia loves Teddy and Teddy loves her back.<br><br>Recently they’ve had difficulties sleeping. There are a lot of loud noises coming from downstairs. The adults are having their own adventures there. Every night, all the time.<br><br>And of course there is the&nbsp;<strong>Monster</strong>. It is always there, hiding somewhere in the shadows where the eye can’t see. Adults said that the monster isn’t real, that it’s all just imagination. But the adults are wrong. The monster is real, although Teddy keeps telling that it isn’t. He keeps telling that everything’s going to be all right.<br><br>Teddy will always be there, watching Lydia. Keeping the monster away. Making sure, that Lydia can sleep through the night.<br><br>But this time the sounds are louder than usual.</em></p>
<p><img src="https://img.itch.zone/aW1nLzc4ODg1MC5wbmc=/original/kv4uGg.png" loading="lazy"></p>
<p><strong>Can you find the monster?</strong></p>
<ul><li>Story first: Compact structure serves the story. The game lasts about 1.5 hours.</li></ul>
<ul><li>Gray-scale hand-drawn graphics by published graphic novel artist Henri Tervapuro.</li></ul>
<ul><li>Original score is composed by renowned film composer Juhana Lehtiniemi.<br><br><br><strong>Warning:&nbsp;The story&nbsp;depicts scenes of abuse, intoxication &amp;&nbsp;strong language.</strong></li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/Gg9vPQ4lQs8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTcwMDE5Lzc4ODg1NC5wbmc=/original/xSGIlR.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTcwMDE5Lzc4ODg1My5wbmc=/original/GilurE.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTcwMDE5Lzc4ODg1Ni5wbmc=/original/XSzcnd.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTcwMDE5Lzc4ODg1Ny5qcGc=/original/CoIwue.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTcwMDE5Lzc4ODg1OC5qcGc=/original/Lsf4pm.jpg]]
<p>LZ13 is the unluckiest place on this god forsaken moon, totally screwed by the terraforming project. Only the Mining Operations keep this damn LZ staffed. And yet for whatever reason, you find yourself here. Escape the freezing cold, unnatural snowstorm and an alien hivemind.&nbsp;<br></p>
<p>Words and layout by <strong>MV</strong><br>Map by <strong>Dyson Logos</strong><br>Editing by <strong>Ava Islam</strong><br></p>
<h2>What's inside?</h2>
<p>LZ13 is a system agnostic scenario, recommended for sci-fi horror and investigative games. <br>In this A4 bifold you will find:<br></p>
<ul><li>Keyed map of the landing zone</li><li>Three hooks of varying challenge</li><li>Hivemind monster made of ice</li><li>Frozen undead personnel </li><li>Snowstorms way too intense for a small moon</li></ul>
<h2>Want more stuff like this?</h2>
<ul><li><a href="https://ian-yusem.itch.io/moonbase-blues" target="_blank">Moonbase Blues by Ian Yusem</a></li><li><a href="https://technoskald.itch.io/welcome-to-erf" target="_blank">Welcome to Erf by Technoskald</a></li><li><a href="https://tuesdayknightgames.itch.io/mothership-the-haunting-of-ypsilon-14" target="_blank">The Haunting of Ypsilon 14 by TKG<br></a></li></ul>
<p>Using <a href="https://vandelarden.itch.io/13-engraved-textures" target="_blank">Engraved Textures by Vendel Arden</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI0NDMwNi83MzEwNjc5LnBuZw==/original/tjnt3Z.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0NDMwNi83MzEwNjcwLnBuZw==/original/139vCu.png]]
<p><iframe width="500" height="281" src="https://www.youtube.com/embed/OG6eX4GPzfg" frameborder="0" allowfullscreen=""></iframe></p>
<p><strong>Christmas 2019 Update:</strong></p>
<p><strong>- A new bonus level was added (finish the main game and the bonus book to access it)</strong></p>
<p><strong>- Minor bug fixes</strong></p>
<p><br></p>
<p>Macbat 64 is a 3D Platformer and 4:3 loveletter to the late 90s.<br></p>
<p>
	Besides that, it is also the successor to Kiwi 64. 
	<span></span>
</p>
<p>
	<br>
</p>
<p>
	A Game by Marcus Horn(@Siactro/
	<a href="http://www.siactro.com/" rel="nofollow noopener" referrerpolicy="origin">www.siactro.com</a><span></span>).<br>
</p>
<p>
	Music by JD Moser (@jdmoser / 
	<a href="http://jdmoser.bandcamp.com" rel="nofollow noopener" referrerpolicy="origin">http://jdmoser.bandcamp.com</a>)
</p>
<p>
	CGI Rendering by @Laura_Omnomnom
</p>
<p>
	Cute tiny santa hat:&nbsp;<a href="https://pixabay.com/illustrations/christmas-santa-hat-hat-xmas-4529039/" rel="nofollow noopener" referrerpolicy="origin">https://pixabay.com/illustrations/christmas-santa-hat-hat-xmas-4529039/</a><br><br>
</p>
<p>
	©1998 Siactro
</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/OG6eX4GPzfg" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjk4NzIvMjgwNzc3MS5wbmc=/original/5CJUkF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjk4NzIvNTg5MjA3LnBuZw==/original/jAVzMQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjk4NzIvNTg5MjA4LnBuZw==/original/e%2Fwv4N.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjk4NzIvNTg5MjEwLnBuZw==/original/mtAI6p.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjk4NzIvNTg5MjA5LnBuZw==/original/6UH0es.png]]
<<list-links "[tag[macOS]sort[title]]">>
<p>Do you want a hard platformer game? <strong>Madball is here</strong> to challenge you! I mean seriously!</p>
<p>What is Madball?<br>Madball is a casual game that you should control a ball with a constant velocity through an unpredictable and exciting platform by tapping the screen in smartphones and pressing the "<em>Space</em>" button or using a mouse&nbsp;in PCs. But wait, do you think the gameplay is simple? Hmm, let us know after trying the game!<br>Madball has two primary modes: level mode and endless mode. In the level mode, you should scrimmage with around 60 different levels that every one of them has its exclusivity!&nbsp;<br>In the endless mode, there are 9 different modes such as Pillars, The Wall, Invisible, Dark with various properties that you should try not reading about them!</p>
<p><br></p>
<p>Features:</p>
<ul><li>Rich and amusing gameplay with&nbsp;60 levels and 9 endless runs.</li><li>Colorful and minimalist environment.</li><li>9 original soundtracks.</li><li>A large shop with numerous updates for the ball such as various colors and tails that let you design the character as you wish.</li><li>Challenging levels and addictive modes can&nbsp;keep you entertained for a long time.</li></ul>
<p><br></p>
<p>You should know that Madball has been created by two students, so each support from you can boost us a lot in our journey. So, Download it now and Have fun!</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/4AkVvswP_6U" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjc1NzYxLzM3MDI3NjMuanBn/original/lxpCn5.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjc1NzYxLzM3MDI3NjQuanBn/original/8rt51J.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjc1NzYxLzM3MDI3NjUuanBn/original/zbWQpl.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjc1NzYxLzM3MDI3NjYuanBn/original/uRxIA3.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjc1NzYxLzM3MDI3NjkuanBn/original/qMyu30.jpg]]
<p>T<span class="">his is a GM-less game about magicians planning and committing crimes. This game explores the concepts of legality and crime and encourages players to subvert those tropes.&nbsp;</span></p>
<p><span class=""></span>There are three stages of play where players will talk about their expectations, then create their characters.&nbsp;There are fours skills that players will utilize and play&nbsp;through scenes with their Magicians.&nbsp;</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM4NjI5Mi84MDc2MzIxLnBuZw==/original/lqFtlk.png]]
<p>A fun look back at over 30 years of console computers through the generations. Each console is personified as a magical senshi, with their own look and aesthetic. Take a flip through the pages and enjoy over forty pieces inspired by the Atari 2600, the Sega Genesis, and the Nintendo Entertainment System!</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTI3MDc2LzUyNTA0MzguanBn/original/6f06oI.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTI3MDc2LzUyNTA0NDAuanBn/original/m1b3c%2B.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTI3MDc2LzUyNTA0MzkuanBn/original/i7JRxy.jpg]]
<p>Magnibox is a colourful and challenging puzzle game about a magnet that's also a box. Hand-crafted for your brain to enjoy!</p>
<ul><li>160 challenging puzzles!</li><li>22+ weird and wonderful mechanics to play with!</li><li>Colourful pixel-art graphics!</li><li>Funky tunes to help you solve problems!</li><li>Full controller support!</li><li>Unlock all levels from the start - play at your own pace!</li></ul>
<p>-----</p>
<p>A Game by Joseph Gribbin, with Music by Jazz Mickle!</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/tEzRcGb8X5I" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzQ0MjE1LzE4MTkzNjgucG5n/original/6tzmrQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQ0MjE1LzE4MTkzNzMucG5n/original/vxE7g2.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQ0MjE1LzE4MTkzNzEucG5n/original/ezHNvw.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQ0MjE1LzE4MTkzNjkucG5n/original/X0RyAk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQ0MjE1LzE4MTkzNzAucG5n/original/eXdWQj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQ0MjE1LzE4MTkzNzIucG5n/original/QrbMVi.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQ0MjE1LzE5MDc0NzUucG5n/original/A5jjmc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQ0MjE1LzE5MDc0NzcucG5n/original/EoRJUi.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQ0MjE1LzE5MDc0NzQucG5n/original/iVfFSB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQ0MjE1LzE5MDc0NzgucG5n/original/Iw%2BXa1.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQ0MjE1LzE5MDc0NzYucG5n/original/%2ByT6JE.png]]
<blockquote><em>"Stark stylised flair in a ‘realistic’ forest is a great look. It can feel like how old horror movies used lighting, fog, and lens filters to blast otherworldliness, which is great...&nbsp;&nbsp;Good stuff."</em></blockquote>
<p class="text-right"><a href="https://www.rockpapershotgun.com/2017/10/31/marginalia-horror-game-remake-released/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">-Alice O'Connor, RPS</a><strong></strong></p>
<p><strong><em><strong><em><br></em></strong></em></strong></p>
<blockquote><em>" It isn’t just the striking visuals or the eldritch underpinnings of this entry in this New Weird Horror, but how it all comes together to form a rich tapestry with drawn out presentation in a way one would only typically come to expect from the cinema."</em></blockquote>
<p class="text-right"><strong><em><em></em></em></strong><a href="https://www.rebind.io/letters-from-kestlebrook-marginalia-3182/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">-Emily Rose, Re:Bind</a></p>
<p><strong><em><strong><em><br></em></strong></em></strong></p>
<p><strong><em><strong><em>-----------------------------------------------------------------</em></strong></em></strong><br></p>
<p><em>“The porter drew a map for me on the back of a brochure. In smudged pencil he showed me where to turn from the main road onto a dirt road and then where to leave the road entirely. I left the streetlights behind me and traveled into the dark."</em><br></p>
<p>Marginalia is a first-person horror game that transports you to Kestlebrook, a secluded valley where history becomes enmeshed with a strange present. Weeks ago Eric left. Days ago you got a letter telling you to come to him. Now you're here, but precisely where is here? And better yet, when? </p>
<p><strong>Features:</strong></p>
<ul>
<li>Two plotlines that interweave with one another to tell the full story of Kestlebrook.</li><li>Beautiful environment hand-crafted by the developers.</li><li>A story about loss and what a person will do to fix a broken past.</li><li>Powerful ambient soundtrack.</li><li>Xbox controller support (windows only)</li><li>Like, some mythology and runes, or, y'know, whatever.</li><li>Forged in the fires of October 2014, and&nbsp; remade from scratch for 2017</li></ul>
<p><strong><em><strong><em>-----------------------------------------------------------------</em></strong></em></strong><br></p>
<p><br></p>
<p><strong>Credits:</strong></p>
<p>Connor Sherlock - developer and lead designer - Connor is a game designer, developer and musician based in the UK. His previous games include <a href="http://gamejolt.com/games/other/trihaywbfrfyh/20342/" rel="nofollow noopener" referrerpolicy="origin">The Rapture Is Here And You Will Be Forcibly Removed From Your Home</a>, <a href="http://connor-sherlock.itch.io/">Condor</a>, and <a href="http://connor-sherlock.itch.io/">Sanctuary</a>. You can find him on Twitter <a href="https://twitter.com/teg5511" rel="nofollow noopener" referrerpolicy="origin">@teg5511</a>.</p>
<p>CMRN KNZLMN - writer and designer - Cameron Kunzelman is a game designer and developer based in Atlanta. His previous games include <a href="http://heylookatmygames.com/catachresis/" rel="nofollow noopener" referrerpolicy="origin">Catachresis</a>, <a href="http://heylookatmygames.com/alpacarun/" rel="nofollow noopener" referrerpolicy="origin">Alpaca Run</a>, and a slew of other small, weird things. You can find him on Twitter <a href="https://twitter.com/ckunzelman" rel="nofollow noopener" referrerpolicy="origin">@ckunzelman</a>.</p>
<p>Marshall Ruffin - voiceover talent - Marshall is You can find him on <a href="https://www.marshallruffin.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">his website</a>.<br></p>
<p>Chris Hunt - voiceover engineer and trailer music - Chris Hunt is an Atlanta based filmmaker and <a href="https://open.spotify.com/artist/6w3KqVSdTdv9mxDQLtwKK8?si=zKJb4GDf" target="_blank" rel="nofollow noopener" referrerpolicy="origin">sound artist</a>.</p>
<p><strong><em><strong><em>-----------------------------------------------------------------</em></strong></em></strong></p>
<p><br></p>
<p>MINIMUM SPECS:<br>OS: 64-bit Windows 7, 64-bit Windows 8 (8.1) or 64-bit Windows 10<br>Processor: Intel Core i5-4570T 2.9 GHz / AMD FX-6100 3.3 GHz<br>Memory: 4 GB RAM<br>Graphics: NVIDIA GeForce GTX 560 Ti / AMD Radeon HD 6850<br>DirectX: Version 11<br>Storage: 8 GB available space<br>Sound Card: DirectX Compatible</p>
<p>RECOMMENDED SPECS:<br>OS: 64-bit Windows 10<br>Processor: Intel Core i7-4770S 3.1 GHz / AMD FX-8320 3.5 GHz<br>Memory: 8 GB RAM<br>Graphics: NVIDIA GeForce GTX 770 / AMD Radeon HD 7970<br>DirectX: Version 11<br>Storage: 8 GB available space<br>Sound Card: DirectX Compatible</p>
<p><strong><em><strong>------------------------------------------------------------------------------------------</strong></em></strong><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/r4UsgmSO5n4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI5ODEvODc4NjAzLnBuZw==/original/VKxrkB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5ODEvODc4NjA0LnBuZw==/original/FLm3D9.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5ODEvODc4NjA1LmpwZw==/original/a78pe5.jpg]]
<p>Brain jogging for everyone!<br></p>
<p>Codebreakers, try to guess the pattern of the pearls, <em>in both order and colour</em>, within 8 turns!</p>
<p>With your mouse place your pearls in the slots. Click on the "Check" button to receive feedback:</p>
<p><strong>Black pearls</strong> (the guess is correct in both colour and position)</p>
<p><strong>White pearls</strong> (the colour is correct but the pearls are in the wrong position).<br></p>
<p>Three difficulty levels:&nbsp; <strong>Easy</strong>, <strong>Normal </strong>and <strong>Hard</strong>.&nbsp;&nbsp;<br></p>
<p>Time and the number of rows used to find the code decrease the score. The score starts at 10000.<br></p>
<p>Have fun !!</p>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTU5NzQ1LzI5Nzk3NzcucG5n/original/0jms0X.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTU5NzQ1LzI5NzU4MzIucG5n/original/WKSNV7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTU5NzQ1LzI5Nzk3ODIucG5n/original/TjNA%2Fo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTU5NzQ1LzI5NzU3OTYucG5n/original/OQe4I2.png]]
<h2><a href="https://mausritter-box-set-and-adventure-collection.backerkit.com/hosted_preorders" rel="nofollow noopener" referrerpolicy="origin">🚨 Print&nbsp;pre-orders still open 🚨</a></h2>
<p></p>
<h3>Eleven all-new adventures for <a href="https://losing-games.itch.io/mausritter">Mausritter</a></h3>
<p><em>Huge and ancient, a mountain of stone. It stood even when the most wizened of mouse elders were young. The Estate dominates the landscape for miles around.</em></p>
<p><em>Nestled under the floorboards, the mouse settlement of Brickport, is beset by trouble on every side.
</em></p>
<p><em>Above, huge creatures pace. The vicious cat-witch Sabrina jealously guards her domain. Outside, in the fields and pond and orchard, even stranger events are afoot. Can you help save the settlement before it’s too late, or will it be swallowed by the chaos that surrounds it?</em>
</p>
<h3>More to explore than ever before</h3>
<ul><li>Escape indoctrination in&nbsp;<em>The Chapel of Eternal Peace</em>, by Diogo Nogueira.</li><li>Don't get burned by&nbsp;<em>The Ember Tree</em>, by L.F. OSR</li><li>Cure the Queen's handmaiden in&nbsp;<em>Fruit of the Orchard</em>, by Madeleine Ember.</li><li>Try not to get eaten&nbsp;by the&nbsp;<em>Giant Snake is in the Sewer</em>, by @gnarledmonster</li><li>Find the sludge-coated&nbsp;crown&nbsp;in&nbsp;Mush Rush, by Bodie H.</li><li>Battle mutant rats in&nbsp;<em>S</em><em>cience &amp; Sorrow</em>, by Nate Treme.</li><li>Race to win the prize of the&nbsp;<em>Song of the Frogacle</em>, by Ema Acosta.</li><li>Bend time within&nbsp;<em>The Ticking Tower</em>, by&nbsp;Josiah S. Moore.</li><li>Rescue the captive from the&nbsp;<em>Tower of Soot</em>, by Lazy Litch.</li><li>Master the magic of&nbsp;<em>The Wizard of Arms and Armour</em>, by Amanda Lee Franck.</li><li>Unearth the curse of&nbsp;<em>Workers Work, Rulers Rule</em>, by @skullfungus</li></ul>
<p>Each presented in beautiful fully-illustrated pamphlet format, with included Item and Condition cards.&nbsp;</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM0MzI2MS83ODM4Njk0LnBuZw==/original/wj3vfl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM0MzI2MS83ODM4NjkzLnBuZw==/original/Lus%2BWJ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM0MzI2MS83ODM4NjkwLnBuZw==/original/6SlgKB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM0MzI2MS83ODM4NjkxLnBuZw==/original/%2FPhVZp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM0MzI2MS83ODM4NjkyLnBuZw==/original/qmZWHe.png]]
<p>A Tagalog-English micro RPG analog game about concerned citizens investigating a dubious project in a local town.&nbsp;Here's the plothook:&nbsp;</p>
<p>
<em>Nabalitaan
mo na sa huling town meeting na hindi mo in-attend-an pero tsinismis
sayo ng landlord o kapitbahay mo na may ipapatupad na bagong project
si Kapitan Kunat. Bilang isang mamamayang may pake sa lipunan, misyon
nyong malaman kung ano ang tunay na layunin ng project at isiwalat sa
buong purok ang tunay na kulay ni Kapitan!&nbsp;</em>
</p>
<p>Enjoy this pamphlet-sized game of town gossips, weird rumors, and corrupted local government! Corrupted by who or what? Play to find out!<br></p>
<p>Feel free to comment or review!&nbsp;</p>
<p>Game is submitted as part of <a href="https://itch.io/jam/dreamjam">DREAMJAM</a>. #PurokDream #KapitanDream #ProjectDream<br></p>
<p>Game also a submission to <a href="https://itch.io/jam/hilagyo-jam">HilagyoJam</a>, a game jam for Filipinos, by Filipinos.&nbsp;</p>

[img width=500 [https://img.itch.zone/aW1nLzIzNDQ2OTEucG5n/original/zeNOO5.png]]
<div class=""><iframe width="560" height="315" src="https://www.youtube.com/embed/8UpfSBf7CSw" frameborder="0" allowfullscreen=""></iframe></div>
<p>Maze Of Bears is a&nbsp;<strong>wrapping</strong>&nbsp;grid-based puzzle game in which to find your lost cats, you must evade&nbsp;<strong>bears</strong>,&nbsp;<strong>bulls</strong>,&nbsp;<strong>spiders</strong>,&nbsp;<strong>wolves</strong>,&nbsp;<strong>lasers</strong>&nbsp;,&nbsp;<strong>land mines</strong>,&nbsp;<strong>fire</strong>,&nbsp;<strong>ice</strong>,&nbsp;<strong>pits</strong>, and&nbsp;<strong>bear traps</strong>. To solve each of the&nbsp;<strong>150 levels</strong>&nbsp;you'll learn how to&nbsp;<strong>push</strong>,&nbsp;<strong>pull</strong>,&nbsp;<strong>rubiks-slide</strong>,&nbsp;<strong>defuse</strong>,&nbsp;<strong>mirror-bounce</strong>,&nbsp;<strong>stealth</strong>,&nbsp;<strong>heat</strong>,&nbsp;<strong>freeze</strong>,&nbsp;<strong>climb</strong>,&nbsp;<strong>dig</strong>,&nbsp;<strong>teleport</strong>,&nbsp;<strong>tornado</strong>,&nbsp;<strong>clone</strong>&nbsp;and&nbsp;<strong>sneak</strong>.</p>
<p>Every level has a new idea. Starting simply, you'll soon learn how to use each of the&nbsp;<strong>16 different bonus powers</strong>&nbsp;to manipulate the interactions between the&nbsp;<strong>30 different types</strong>&nbsp;of block. Things slowly get very complicated, especially given that&nbsp;<strong>every level wraps</strong>&nbsp;the top and bottom, left and right of the screen. Fortunately the&nbsp;<strong>hint</strong>&nbsp;system spells out how to complete every level, so you won't get stuck.
</p>
<p>Add to that a simple to use&nbsp;<strong>Level Editor</strong>, and a customisable&nbsp;<strong>Random Level Generator</strong>, so there's that...
</p>
<p>PC demo has 36 levels available.&nbsp;Feedback would be <strong>massively</strong> appreciated.</p>
<p>If you like the demo and want try the rest of the 150 levels you can purchase the full version.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/8UpfSBf7CSw" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE0NDUwMC82NjQxODE1LnBuZw==/original/bFGBAz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0NDUwMC82NjQxODE3LnBuZw==/original/YO5J9e.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0NDUwMC82NjQxODE0LnBuZw==/original/sreuAF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0NDUwMC82NjQxODE2LnBuZw==/original/eq1Xtc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0NDUwMC82NjQxODE4LnBuZw==/original/1EHeld.png]]
<h1>Date a robot, donate to the Trevor Project!</h1>
<p>To celebrate the 1 year anniversary of&nbsp;<a href="https://silentman.itch.io/mech-romancer" target="_blank">Mech_Romancer, A Trans-humanist Dating Sim</a>, I'm now offering this special charity bundle, featuring both Windows and Mac version of the game, plus 3 original wallpapers of the game's mecha in both landscape and portrait&nbsp;by the game's original artist,&nbsp;<a href="https://twitter.com/artsyrobo" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Artsy Robo</a>, plus an <strong>EXTRA SPECIAL BONUS</strong> wallpaper by <a href="https://twitter.com/cartoolution" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Vichel Lim</a>!<br><br>100% (minus Itch.io's cut)&nbsp;of what you decide to&nbsp;pay will be donated to the&nbsp;<a href="https://www.thetrevorproject.org/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Trevor Project</a>, a 4-star non-profit organization that provides a suicide hotline to LGBT+ youth in America. Are you or someone you know in danger? Call&nbsp;<a rel="nofollow noopener" referrerpolicy="origin">1-866-488-7386</a>&nbsp;for help.</p>
<p>Interested in the game, but don't have any money to spare?&nbsp;<a href="https://silentman.itch.io/mech-romancer" target="_blank">Download the game by itself here.</a><br>Interested in donating less than $5? <a href="https://silentman.itch.io/mech-romancer-charity-bundle-1" target="_blank">Buy Charity Bundle 1 here.</a></p>
<h2>The only thing standing between humanity and destruction is you, and the relationships that you forge.</h2>
<p>Mech_romancer is a dating sim starring you, an out-of-sorts mech pilot who must create a bond with JEET, an experimental learning AI implanted into your robot. Train them, teach them how to perform under pressure, and form a special bond that can never be broken in order to save Earth!</p>
<p><strong>!NEW 10/18!</strong></p>
<p>Mech_Romancer is now PWYW. You don't have to pay a cent, but 100% (minus Itch.io's cut)&nbsp;of what you DO pay will be donated to the <a href="https://www.thetrevorproject.org/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Trevor Project</a>, a 4-star non-profit organization that provides a suicide hotline to LGBT+ youth in America. Are you or someone you know in danger? Call&nbsp;<a rel="nofollow noopener" referrerpolicy="origin">1-866-488-7386</a>&nbsp;for help.</p>
<p>Featuring:</p>
<ul><li>More words than both Final Fantasy III for the Famicom and the original Resident Evil!</li><li>4 main endings and&nbsp;<del></del><em><del>a certain number</del></em><em><del>&nbsp;of</del></em>&nbsp;secret endings!</li><li>Art by&nbsp;<a href="https://twitter.com/nebularobo" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@nebularobo</a>!</li><li>Unobtrusive yet flexible gender and sexuality options!</li></ul>
<p>Credits:</p>
<ul><li>Writing, story, and characters by&nbsp;<a href="https://twitter.com/Silentman0" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Silentman</a></li><li>Character design, mechanical design, and art by&nbsp;<a href="https://twitter.com/artsyrobo" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@artsyrobo</a></li><li>Inspiration and title by&nbsp;<a href="https://twitter.com/WoolieWoolz" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Woolie Madden</a>&nbsp;and&nbsp;<a href="https://twitter.com/MattMcMuscles" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Matt McMuscles</a><a href="https://twitter.com/2BFOfficial" rel="nofollow noopener" referrerpolicy="origin"></a></li><li>Additional testing by Ian Bohannon and&nbsp;<a href="https://twitter.com/SammyTheOG" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Sammy</a></li><li>Music taken from&nbsp;<a href="https://tabletopaudio.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">https://tabletopaudio.com/</a></li><li>Backgrounds and sound effects edited and adapted from various sources.</li><li>Programmed using Tyranobuilder.</li></ul>
<p>Know bugs:</p>
<ul><li>There seems to be a bug with Q.Loading. Use the normal save/load system when necessary.</li></ul>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzEzMzIyLzE1NDA5MzEucG5n/original/N2QcpT.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzEzMzIyLzE1NDA5MjEuanBn/original/YUMFd5.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzEzMzIyLzE1NDA5MjIuanBn/original/TE1GXP.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzEzMzIyLzE1NDA5MjMuanBn/original/5kJOij.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzEzMzIyLzE1NDA5MjUucG5n/original/27QYxY.png]]
<p>A short and deadly dungeon crawl for MÖRK BORG. Washing ashore on the island of Gespotia, a small land occupied by only one improbable hedge garden curated by a being only known to people a shell of their former selves as Our Lady of Spite. Fight to survive in body... and soul.</p>
<p>This adventure was made as part of the <a href="https://itch.io/jam/random-adventure-jam">Adventure Jam</a> with gratitude to <a href="https://loottheroom.itch.io/">Chris Bissette</a>. It is the first dungeon crawl and OSR-style content&nbsp;published by Therapeutic Blasphemy Games.</p>
<p>MÖRK BORG is copyright Ockult Örtmästare Games and Stockholm Kartell.&nbsp;<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQwMTAxOC84MTY0NjczLnBuZw==/original/R0S4w4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQwMTAxOC84MTY0NjY0LnBuZw==/original/SGnQO3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQwMTAxOC84MTY1NTU2LnBuZw==/original/l7KLBp.png]]
<p>I reread this poem recently and it inspired a game.</p>
<p>The intended experience is for <strong>two players to play on one keyboard</strong>.&nbsp; If you touch hands it's okay, good fences make good neighbors.&nbsp; You can also play by yourself.</p>
<p>Move along the wall and patch it up.&nbsp; Once a rock is gone, it's gone.&nbsp; Nature's first green is gold, ya know?</p>
<p>The demo is 1 year long; the full version goes until you lose.&nbsp; I imagine 100% of the money I make on this game will go toward buying baby formula, so consider that before supporting.</p>
<p>Feel free to share your highscore and experience!&nbsp; This was originally supposed to be a chill experience but I&nbsp;couldn't help myself, I added a score :\</p>
<p>~~~Humans who helped me make this~~~</p>
<ul><li>Robert Frost: "Mending Wall"<ul><li><a href="https://www.poetryfoundation.org/poems/44266/mending-wall" rel="nofollow noopener" referrerpolicy="origin">https://www.poetryfoundation.org/poems/44266/mending-wall</a></li></ul></li><li>Tree trunk by Johann C. Shoot'em up graphic kit: <a href="http://opengameart.org/content/lpc-a-shootem-up-complete-graphic-kit" rel="nofollow noopener" referrerpolicy="origin">http://opengameart.org/content/lpc-a-shootem-up-complete-graphic-kit</a></li><li>Trees: formconstant&nbsp;<ul><li><a href="https://opengameart.org/content/64x128-isometric-tiles-grassland-seasons" rel="nofollow noopener" referrerpolicy="origin">https://opengameart.org/content/64x128-isometric-tiles-grassland-seasons</a></li></ul></li><li>Snow:&nbsp;Created by Jordan Irwin (AntumDeluge)<br>Canonical link: <a href="https://opengameart.org/node/109748" rel="nofollow noopener" referrerpolicy="origin">https://opengameart.org/node/109748</a></li><li>Top Down Sprites:<ul><li><a href="https://opengameart.org/content/top-down-pokemon-esque-sprites" rel="nofollow noopener" referrerpolicy="origin">https://opengameart.org/content/top-down-pokemon-esque-sprites</a></li></ul></li><li>kenney.nl</li><li>Hot coffee:&nbsp;Created by Otoniel Reyes<br><a href="https://opengameart.org/content/hot-coffee" rel="nofollow noopener" referrerpolicy="origin">https://opengameart.org/content/hot-coffee</a></li><li><a href="https://www.instagram.com/macrosecosmos/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Mike Tanner</a> and <a href="https://donkeycan.itch.io/" target="_blank">Calvin Dupee</a> - Chopin 8-bitifying.</li></ul>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODY5NTc5LzQ5MDc3NzcucG5n/original/DVK%2F1C.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODY5NTc5LzQ5MDc4MjQuZ2lm/original/qxQD45.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvODY5NTc5LzQ5MDc4MjMuZ2lm/original/o2zJij.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvODY5NTc5LzQ5MDc4MjIuZ2lm/original/BGBl1e.gif]]
<p>A high impact, physics based Shooter with a Telekinetic protagonist. Throw enemies and pick up weapons with your mind while battling through the depths of Site Echo, a research facility losing control of a world consuming force.<br><br><strong>FEATURES:</strong><br><br>-<strong>30 stages</strong>&nbsp;of fierce, tactical, close-quarters combat.<br>-<strong>Throw enemies into one another</strong>&nbsp;with your mind or use the environment as your weapon.<br>-<strong>Switch weapons on the fly</strong>&nbsp;by pulling the guns of fallen enemies into your trigger hand.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/jKPuS5eh6FA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM3OTc4OC84MDM2MDQyLnBuZw==/original/UehQtN.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3OTc4OC84MDM2MDQ3LnBuZw==/original/kqEw5f.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3OTc4OC84MDM2MDUxLmpwZw==/original/AgkNpv.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3OTc4OC84MDM2MDUyLmpwZw==/original/e9JWJW.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3OTc4OC84MDM2MDUzLmpwZw==/original/k26%2BTi.jpg]]
<p>Surrealist point-and-click adventure game with some word play,&nbsp;a&nbsp;whole lot of escapism, a dab of humor,&nbsp;and a dollop of existential dread.</p>
<p>The idea for the story came from constantly dreaming about being stuck in small indoor spaces and looking for nature. Likely a reflection of living in quarantine.</p>
<p>While not the first creation in The Abandoned universe, this is the first released creation. We currently have a Graphic Novel in the works as well as a larger game. Join us at&nbsp;<a href="http://aesth.games/" rel="nofollow noopener" referrerpolicy="origin">https://aesth.games/</a> for updates on those endeavors.</p>
<p>--------------------------<br></p>
<p><strong>Update 2021-02-14: </strong>Added the OST for sale.<br></p>
<p><strong>Update 2021-02-01:&nbsp;</strong>Official release!<br></p>
<p><strong>Update 2020-12-01:</strong> Made several improvements to the text, as well as QoL changes and performance fixes. Added official music.</p>
<p>--------------------------</p>
<p><strong>Credits</strong><br>Art &amp; Scene Concepts:<br>c0hil<br><a href="https://www.instagram.com/c0hil/" rel="nofollow noopener" referrerpolicy="origin">https://www.instagram.com/c0hil/</a></p>
<p>Game Design, Programming, Writing, UI, Music:<br>Casey "Boz" Weeks<br><a href="https://boz-float.itch.io/">https://boz-float.itch.io/</a></p>
<p>--------------------------<br></p>
<p><em>Thank you to all musicians who allowed us to use their music in the previous versions of Meta Form:<br><a href="https://tensticks.bandcamp.com/" rel="nofollow noopener" referrerpolicy="origin">https://tensticks.bandcamp.com/<br>https://3six.net/<br>https://soundcloud.com/user-589036812-258992427/</a><br><br></em></p>
<p><em>A special thank you to everyone who helped test Meta Form - future players are carried upon your broken backs.</em></p>
<p>aesthgame@gmail.com for inquiries.<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/ZmdG97GUEf4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODAxMzY1LzQ0OTM5MDQucG5n/original/moBAjR.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODAxMzY1LzQ1MDAxMTUucG5n/original/P%2FAnpp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODAxMzY1LzQ0OTM4OTcucG5n/original/7ipezf.png]]
<$list filter="[is[current]has:field[url]]"> <td> 
{{||OriginalUrl}} </td> </$list> 
<$list filter="[is[current]has:field[rating]]"> <td> 
{{||ratingViewTemplate}} </td> </$list> 
<$list filter="[is[current]has:field[average_session]]"> <td> 
{{||averageSession}} </td> </$list>
<p>Metamorphabet is normally $5.00, but we've made it Pay-What-You-Wish until the end of 2016. Enjoy!</p>
<p>
	"Metamorphabet is a thing of joy, on the surface simple, underneath a labour of love. And you'll love it too." - 
	<a href="http://www.rockpapershotgun.com/2015/04/29/metamorphabet-review/" rel="nofollow noopener" referrerpolicy="origin">Rock, Paper, Shotgun</a>
</p>
<p>
	Metamorphabet is a playful, interactive alphabet. Poke, prod, drag, and spin the letters of the alphabet to reveal surprising and luminous transformations.</p>
<p>
	<span></span>Mouse or touchscreen recommended.
</p>
<p>
	Purchase includes a Steam key.
</p>
<p>
	<small>
	<u>Minimum system requirements: </u><br>
	100MB disk space, 512MB RAM
	<br>
	PC: Windows 7/8 Classic, 2.33GHz+ x86-compatible processor (Intel Atom 1.6GHz+ for netbooks)
	<br>
	MAC: OS X 10.7+, Intel Core Duo 1.83GHz+
	<br>
	<em>Performance may vary on older/slower machines.</em>
	</small>
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjQ5MDcvOTk2ODAucG5n/original/JGjepg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjQ5MDcvOTk3MjcucG5n/original/NMEXiv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjQ5MDcvOTk2NzcucG5n/original/IeYVYf.png]]
<p><a href="http://enembydev.tumblr.com/post/151873041427/no-mans-asteroids-probably" rel="nofollow noopener" referrerpolicy="origin"></a></p>
<p>Metori is a strategy sandbox game reminiscent of older arcade games. Control many ships, and use tactics to outmaneuver and outnumber everyone else.<br>Build a fleet. Capture territory. Defeat your enemies.<br>Note: Metori is <em>not</em> a twin-stick shooter. It is built to be playable with one hand, making it <strong>accessible</strong> to many gamers.<br></p>
<h2>Features</h2>
<ul><li>Fully fledged AI Commanders!
</li><li>Sandbox Gameplay</li><li>Local 1v1 Multiplayer (works with parsec!)</li></ul>
<h2>Content</h2>
<ul><li>Randomly generated Asteroid fields
</li><li> Many ship types with variants
</li><li> 3 different commander modes
</li><li>Campaign
</li><li>Replayable Instant Action Missions</li></ul>
<p><br></p>
<p><strong>Please note</strong> that this won't run on <a href="https://steamcommunity.com/groups/steamworks/announcements/detail/3632639303428097613" rel="nofollow noopener" referrerpolicy="origin">new MacOSX updates</a>. Nothing I can do about that, sadly.<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/XcvDBR_sYh8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODY4MjYvNDI5NjU0LmdpZg==/original/Wumx9R.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvODY4MjYvNDI5NjU2LnBuZw==/original/%2BYndo6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODY4MjYvNDI5NjU1LmdpZg==/original/Dgghjs.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvODY4MjYvMjUwOTc5Ni5wbmc=/original/QrYpbK.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODY4MjYvMjUwOTc5Ny5wbmc=/original/J2Nw%2B2.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODY4MjYvMjUwOTc5OC5wbmc=/original/tJ3E0D.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODY4MjYvMjUwOTgwMC5wbmc=/original/ZOJdAs.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODY4MjYvMjUwOTc5OS5wbmc=/original/Q3uQwE.png]]
<h2>A Space-Cat Survival and Base-Building Game</h2>
<p></p>
<p>
	MewnBase is a game about wandering around a barren planet, finding resources and surviving. Scavenge around for items to keep you fed. Build up your base with new modules to replenish your suit power and oxygen.
</p>
<p>
	Because MewnBase is <span></span>in <strong>active development</strong>, there are <em>definitely</em> bugs, and features are subject to change. Many parts of the design I'm still working on figuring out as I go!  I try to post new builds every couple weeks.</p>
<h3>Features so far</h3>
<ul>
	<li>Explore a randomly generated planet.</li>
	<li>Collect resources and carry them in your inventory.</li>
	<li>Craft new tools and items.</li><li>Discover and research strange artifacts.</li>
	<li>Expand your base by building more habitat modules.</li>
	<li>Manage your base's power and air supply.</li>
	<li>Planet day/night cycles.</li><li>Supported languages: English, German, Spanish, French, Italian, Russian, Portuguese, Turkish. </li></ul>
<p><img src="https://img.itch.zone/aW1nLzg5MDI0Ni5wbmc=/original/X7nyH3.png" loading="lazy"></p>
<h4>System Requirements</h4>
<p>Requires a 64-bit OS (Windows, Mac, and Linux)<br>Graphics: Intel HD 4000 or better<br>Memory: 4GB+<br>Hard drive space:&nbsp;150MB</p>
<p><br></p>
<p>Email me comments, questions, problems: 
	<a href="mailto:steve@cairn4.com" rel="nofollow noopener" referrerpolicy="origin">steve@cairn4.com</a><br>
	 Follow me on: <a href="https://twitter.com/cairn4" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter</a> - <a href="https://mastodon.social/@cairn4" rel="nofollow noopener" referrerpolicy="origin">Mastodon</a> - <a href="http://cairn4.tumblr.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Tumblr<br></a></p>
<p>MewnBase Discord Server: <a href="https://discord.gg/mewnbase" rel="nofollow noopener" referrerpolicy="origin">https://discord.gg/mewnbase</a>
</p>
<hr>
<p>I also keep a <a href="https://trello.com/b/cCbkn0N8/mewnbase-by-cairn4" target="_blank" rel="nofollow noopener" referrerpolicy="origin">public Trello board</a> if you're interested in seeing what I'm currently working on / planning.<br><a href="https://itch.io/t/30308/known-bugs​"><br></a><strong>macOS note: There's currently some issues with the macOS version where sometimes it wont launch - still looking into these bugs.<br></strong></p>
<p><strong></strong>Also, if you're trying to play the Mac version and it's just getting stuck on a blank screen, try downloading and installing the game through the <a href="https://itch.io/app">itch desktop app</a>.<br>
</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/pVQtSBfIW3Y" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTEyMjEvMTQ4NDg4Mi5wbmc=/original/9Y4pRn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEyMjEvMTQ4NDg4My5wbmc=/original/567RHY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEyMjEvMTQ4NDg4NS5wbmc=/original/7sa%2FNa.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEyMjEvMTQ4NDg4Ny5wbmc=/original/XXuBN%2F.png]]
<p>This is a tribute to two of my favorite games of my childhood called Boulder Dash (C-64) and Metroid (NES).<br></p>
<p>In the middle 1980's I was a kid of seven or eight years. My uncle had got a brand new commodore 64
computer and my younger brother and I used to play all the exciting games of that times.
For me at this time, the world was full of monsters dungeons and dragons hiding in the shadows.
It was a fantastic time and I remember myself fighting through all this particularly hard games lost in the
8-Bit worlds that turned into real adventures.<br></p>
<p>Micro Dash is Boulder Dash like game but with a lot of new elements and metroidvania features like tiny story-line, power-ups and a lot of secrets and hidden caves.&nbsp;The graphics and sound is close to the one from the original C-64 Boulder Dash from 1986. Also the game-play is similar to the original.&nbsp;The player controls Nano, who must dig through caves collecting gems and diamonds and reach the exit, while avoiding various types of dangerous creatures as well as falling rocks or get killed by an underground explosion.<br></p>
<p><br></p>
<h3>Features:</h3>
<ul><li>Up to four game save slots. Players can use different game slots to play together by player-rotation</li><li>Six worlds with about 10 to 20 caves per world to eke out plus bonus world</li><li>Up to six power-ups. Each power-up gives you a unique ability</li><li>Secrets and hidden rooms that are waiting to be found</li><li>A lot of new elements like Emeralds, Ghosts and Spiders, Keys, Doors and Portals, Laval, Slime and more</li><li>Up to six different color themes and six different extra cave themes</li><li>&nbsp;Multiple goals such like:&nbsp;<ul><li>Solve all caves&nbsp;</li><li>find all power-ups&nbsp;</li><li>find THE lost diamond&nbsp;</li><li>find all secrets and opals and unlock the bonus world&nbsp;</li><li>make a high score&nbsp;</li></ul></li></ul>
<p><br></p>
<h3>Info:</h3>
<p class="text-center"></p>
<pre>Story-Design....................Andrevv
Programming.....................Andrevv
Graphics........................Andrevv
Color Palette...............Dawnbringer
Music...........Micaela * Garami@fiverr
Testing...........Max:Katja:Andreas:Tim
..............Zwingli:Karl:Tommi:Chrigu
Original.........Peter Liepa:Chris Gray
....................First Star Software</pre>
<p></p>
<h5>Keyboard Control:</h5>
<p></p>
<pre>Up.......................W and Arrow UP
Right.................D and Arrow Right
Down...................S and Arrow Down
Left...................A and Arrow Left
Set Bomb......................Right ALT
Select or Grab....................Space
Back or Pause....................Escape</pre>
<p></p>
<h5>Game-Pad Control (Tested with a 8BitDo SN30 Pro+):</h5>
<p></p>
<pre>Up...................................Up
Right.............................Right
Down...............................Down
Left...............................Left
Set Bomb..............................A
Select or Grab........................B
Back or Pause....................Select
</pre>
<p>If something is not running properly on your system, please post it in the comments/forum or send an e-mail.</p>
<p><br></p>
<h4><strong>Have a lot of fun!<em></em></strong></h4>
<p></p>
<p><br></p>
<h3>Installation:</h3>
<p>Unzip the downloaded file wherever you want. Start the file microdash or microdash_demo by double-click.</p>
<p><br>For windows you can add the including icon.ico file as an app-icon and if you want to run the game from Desktop or anywhere else, create a shortcut by right-click on the exe file and choose Create Shortcut. Drag the shortcut file wherever you want to start the game<br></p>
<p><br>For Linux you will find a prepared script named desktopSetup that will create&nbsp; a microdash.desktop file for you. Just run the desktopSetup script and place the generated microdash.desktop file wherever you want. Double-click for startup.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODQzOTk1LzgwMTAzMTkuZ2lm/original/FlImPX.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvODQzOTk1LzQ3MzE0ODQucG5n/original/IM6gYs.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODQzOTk1LzQ3MzE0ODYucG5n/original/u0QFKa.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODQzOTk1LzQ3MzE0ODMuZ2lm/original/PTZ01g.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvODQzOTk1LzQ3MzE0ODUucG5n/original/dSkXHG.png]]
<p><em><strong>Claire Barnes is about to discover what kind of horrors lurk in the darkness of a deserted road.</strong></em></p>
<blockquote>In tonight's episode <em>The Highway</em>, we follow Claire on her attempt to resume her journey after an unexpected obstacle appears in front of her car.</blockquote>
<p>---</p>
<p>"Midnight Scenes are the perfect Halloween weekend bite-sized games."<br>— <a href="https://www.theverge.com/2018/10/28/18009646/midnight-scenes-halloween-game-twilight-zone" target="_blank" rel="nofollow noopener" referrerpolicy="origin">The Verge</a></p>
<p>"This tiny adventure is a perfect slice of The Twilight Zone."<br>— <a href="https://waypoint.vice.com/en_us/article/59y948/twilight-zone-adventure-midnight-scenes-the-highway" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Waypoint</a></p>
<p><br></p>
<p><strong>IMPORTANT NOTE: This game is currently incompatible with MacOS Catalina and later versions. Sorry for the inconvenience.</strong></p>
<p></p>
<p>Turn off the lights and enter the mysterious world of&nbsp;<em>Midnight Scenes: The Highway.</em></p>
<ul><li>First in a&nbsp;series of&nbsp;<strong>short horror tales with adventure elements&nbsp;</strong>by&nbsp;Octavi Navarro; creator of&nbsp;<a href="http://pixelshuh.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Pixels Huh</a>&nbsp;and artist on games like&nbsp;<a href="https://thimbleweedpark.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Thimbleweed Park</a>&nbsp;and&nbsp;<a href="http://eightyeightgames.com/photographs/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Photographs</a>.</li></ul>
<ul><li>Atmospheric black and white pixel art, inspired on&nbsp;horror and mystery shows from the 60's like&nbsp;<em>The Twilight Zone</em>&nbsp;or&nbsp;<em>The Outer Limits.</em></li></ul>
<ul><li>Eerie soundtrack written by Navarro himself.</li></ul>
<p>Welcome to a dimension of horror.
Welcome to&nbsp;<em>Midnight Scenes</em>.</p>
<p><br></p>
<p><strong>The Special Edition&nbsp;includes:</strong><br>- The original 2017 game with some small visual improvements.<br>- An Art Book in PDF.<br>- The Original Soundtrack.<br>- Localization to 7 languages!</p>
<p>---</p>
<h4><a href="http://eepurl.com/drCjuH" target="_blank" rel="nofollow noopener" referrerpolicy="origin">· Subscribe to our mailing list to keep updated on new game releases!·</a></h4>
<blockquote><em><strong><em><em>If you enjoyed the game and would like to help with the creation of future titles,&nbsp;please consider&nbsp;supporting my work on&nbsp;<a href="https://www.patreon.com/octavinavarro" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Patreon</a>.</em>&nbsp;<br></em><br>And don't forget to rate the game!! </strong>It helps a lot.<br><br></em><em>Thank you! :</em><em>) &lt;3</em><span></span></blockquote>
<p>---</p>
<p><span style="color: inherit">Stay tuned for news on:</span><br></p>
<p><strong>Twitter:</strong> <a href="http://www.twitter.com/pixelshuh" rel="nofollow noopener" referrerpolicy="origin">www.twitter.com/OctaviNavarro</a><br><strong>Facebook:</strong> <a href="http://www.facebook.com/pixelshuh" rel="nofollow noopener" referrerpolicy="origin">www.facebook.com/octavinavarroAG/</a><br><strong>Youtube:</strong>&nbsp;<a href="http://www.youtube.com/c/pixelshuh_official" rel="nofollow noopener" referrerpolicy="origin">www.youtube.com/c/pixelshuh_official</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/OfFlEF1cz3E" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTczNTAwLzgyNzM2NS5naWY=/original/87D7Kh.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTczNTAwLzgyNzM2Ni5naWY=/original/eFRY6N.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTczNTAwLzgyNzM3MC5naWY=/original/8pbbwT.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTczNTAwLzgyNzM3MS5naWY=/original/DpCjbr.gif]]
<p><strong><em>"Taking this plane was a mistake. I trapped myself."</em></strong></p>
<blockquote>In tonight's episode&nbsp;<em>of Midnight Scenes</em>, we follow Dr. Richard P. Griffin<br>during the scariest journey of his life.</blockquote>
<p>---</p>
<p>"Navarro’s Midnight Scenes are nothing short of masterpieces."<br>— <a href="https://www.rockpapershotgun.com/2018/10/27/priceless-play-27th-october-2018/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Rock Paper Shotgun</a></p>
<p>"Midnight Scenes are the perfect Halloween weekend bite-sized games."<br>— <a href="https://www.theverge.com/2018/10/28/18009646/midnight-scenes-halloween-game-twilight-zone" target="_blank" rel="nofollow noopener" referrerpolicy="origin">The Verge</a></p>
<p>"Halloween games don’t get better than Midnight scenes."<br>— <a href="https://itch.io/blog/52391/itchio-recommends-even-more-halloween-games" target="_blank">itch.io Recommends</a></p>
<p><br></p>
<p><strong>IMPORTANT NOTE: This game is currently incompatible with MacOS Catalina and later versions. Sorry for the inconvenience.</strong><br></p>
<p>Turn off the lights and enter the mysterious world of<em>&nbsp;</em><em>Midnight Scenes: The Goodbye Note.</em></p>
<ul><li>Enjoy this second episode in the series of&nbsp;<strong>short horror tales with adventure elements&nbsp;</strong>by&nbsp;Octavi Navarro; creator of&nbsp;<a href="http://www.octavinavarro.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Pixels Huh</a>&nbsp;and artist on games like&nbsp;<a href="https://thimbleweedpark.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Thimbleweed Park</a>&nbsp;and&nbsp;<a href="http://eightyeightgames.com/photographs/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Photographs</a>.</li></ul>
<ul><li>Discover the secrets of the Elysian; a mysterious artifact of unknown origin.</li></ul>
<ul><li>Atmospheric black and white pixel art, inspired on&nbsp;horror and mystery shows from the 60's like <em>The Twilight Zone</em> or <em>The Outer Limits</em>.</li><li>Eerie soundtrack written by Navarro himself.</li></ul>
<p>Welcome to a dimension of horror.<br></p>
<p>Welcome to <em>Midnight Scenes</em>.</p>
<p><strong>The Special Edition&nbsp;includes:</strong><br>- The original 2018 game with some small visual improvements.<br>- An Art Book in PDF.<br>- The Original Soundtrack.<br>- Localization to 7 languages!<br></p>
<p>---</p>
<p><a href="http://eepurl.com/drCjuH" target="_blank" style="font-size: 16px" rel="nofollow noopener" referrerpolicy="origin"><strong>· Subscribe to our mailing list to keep updated on new game releases!·</strong><br></a></p>
<p><em><em>If you enjoyed the game and would like to help with the creation of future titles, <strong>please consider </strong><strong>supporting my work on&nbsp;</strong><a href="https://www.patreon.com/octavinavarro" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Patreon</a>.</em>&nbsp;</em><br></p>
<p><strong>And don't forget to rate the game!!</strong> It helps a lot.<br></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p><em>
<p><em>Thank you! :</em><em>) &lt;3</em></p>
</em><p><em></em><br></p><p><em></em><br></p>
<p><em></em><br></p>
<p><em></em></p>
<p>---</p>
<p>Thank you for playing and for your support!<br>None of this would be possible without your help.</p>
<p>Stay tuned for news on:<br></p>
<p><strong></strong>Twitter:&nbsp;<a href="http://www.twitter.com/pixelshuh" rel="nofollow noopener" referrerpolicy="origin">www.twitter.com/OctaviNavarro</a><br>Facebook:&nbsp;<a href="http://www.facebook.com/pixelshuh" rel="nofollow noopener" referrerpolicy="origin">www.facebook.com/octavinavarroAG/</a><br>Youtube:&nbsp;<a href="http://www.youtube.com/c/pixelshuh_official" rel="nofollow noopener" referrerpolicy="origin">www.youtube.com/c/pixelshuh_official</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/EQNVftW1RM4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzExOTkzLzE1NjUwMDgucG5n/original/BONXJf.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzExOTkzLzE1NjUwMDcucG5n/original/8BGdvu.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzExOTkzLzE1NjUwMTIucG5n/original/bcnsgV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzExOTkzLzE1NjUwMTAucG5n/original/zwwOn7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzExOTkzLzE1NjUwMTEucG5n/original/GnWE9b.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzExOTkzLzE1NjUwMDkucG5n/original/TB1lSW.png]]
<figure><img src="https://cdn.akamai.steamstatic.com/steam/apps/1771070/extras/SteamPage_Title.png?t=1634897635" loading="lazy"></figure>
<p><strong>This game is a bite-sized experience (~40 minutes). Perfect for your coffee break!</strong><br><br>In tonight's episode of&nbsp;<em>Midnight Scenes</em>, we follow Oliver and Tina, two siblings facing some unusual situations in their quest to find their nanny, who disappeared in the middle of the night. Turn off the lights and enter the mysterious world of&nbsp;<em>Midnight Scenes: The Nanny</em>.<br><br>This is the third in a series of short horror tales with adventure elements by Octavi Navarro, creator of the critically acclaimed games&nbsp;<em>The Supper</em>&nbsp;and&nbsp;<em>The Librarian</em>, and artist on games like<em>&nbsp;Thimbleweed Park</em>&nbsp;and&nbsp;<em>Photographs</em>.<br><br><img src="https://cdn.akamai.steamstatic.com/steam/apps/1771070/extras/oliver1_lr.gif?t=1634897635" loading="lazy"><br><br><img src="https://cdn.akamai.steamstatic.com/steam/apps/1771070/extras/Features.png?t=1634897635" loading="lazy"></p>
<ul><li>Enjoy this exciting and intense tale through the eyes of Oliver, an eight-year-old kid.<br>
</li><li>Story-driven point-and-click horror experience.<br>
</li><li>Explore, interact with your surroundings... and be very afraid!<br>
</li><li>Colorful pixel art based on '80s aesthetics, inspired by horror and mystery classics like&nbsp;<em>The Twilight Zone</em>&nbsp;and&nbsp;<em>The Outer Limits</em>.<br>
</li><li>Eerie soundtrack.<br>
</li><li>Atmospheric sound effects.
</li></ul>
<p>Do you dare to play this new episode?<br><br></p>
<h4><a href="http://eepurl.com/drCjuH" target="_blank" rel="nofollow noopener" referrerpolicy="origin">· Subscribe to our mailing list to keep updated on new game releases!·<br><br></a></h4>
<p>Follow us on:<br><strong>Twitter:</strong>&nbsp;<a href="http://www.twitter.com/OctaviNavarro" target="_blank" rel="nofollow noopener" referrerpolicy="origin">www.twitter.com/OctaviNavarro</a><br><strong>Facebook:</strong>&nbsp;<a href="http://www.facebook.com/octavinavarroAG/" rel="nofollow noopener" referrerpolicy="origin">www.facebook.com/octavinavarroAG/</a><br><strong>Youtube:</strong>&nbsp;<a href="http://www.youtube.com/c/pixelshuh_official" rel="nofollow noopener" referrerpolicy="origin">www.youtube.com/c/pixelshuh_official<br></a><strong>Instagram:&nbsp;</strong><a href="https://www.instagram.com/octavi_navarro/" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin"></a><a href="https://www.instagram.com/octavi_navarro/" target="_blank" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">https://www.instagram.com/octavi_navarro/</a><span></span></p>
<p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/HGPl28Bp9GY" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI0OTI2MS83MjgwMjgzLnBuZw==/original/RoesOE.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0OTI2MS83MjgwMjg1LnBuZw==/original/XX7SEZ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0OTI2MS83MjgwMjg3LnBuZw==/original/qmDiiS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0OTI2MS83MjgwMjg0LnBuZw==/original/BbJPuv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0OTI2MS83MjgwMjg2LnBuZw==/original/IVjzBL.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0OTI2MS83MjgwMjg4LnBuZw==/original/jVockJ.png]]
<hr>
<p class="text-justify" style="color:#9f9f9e"><img src="https://img.itch.zone/aW1nLzc2MDgxMjAucG5n/original/I6vemH.png" width="120" height="120" align="left" loading="lazy">Millikan's Reach is largely feature complete, in that all major game mechanics and playstyles have been implemented. The game is currently in Early Access, however, as large amounts of content are still in the works!</p>
<hr>
<h4 class="text-center">About</h4>
<p class="text-justify">Set in a war-torn star system on the fringes of civilized space, Millikan's Reach is a single-player open-world space shooter with trading and mining elements. A clean art style, fluid dogfighting and an easy-to-learn economy ensure an experience you can quickly pick up and play, without compromising the freedom that the best in the genre has to offer.</p>
<p class="text-justify">Start with a small scout craft and claw your way up into grander and more powerful vessels through whatever means you choose. Become a bounty hunter, wiping out the system's criminal scum. Go mercenary and take a side in the war between the proud Terran Empire and the alien Millikan Hive-Mind. Mine ore or trade cargo, playing the market for the best deals in the system. You can even become a space pirate, and raid cargo ships for loot and profit.</p>
<hr>
<h4 class="text-center">Current Features</h4>
<ul><li>Eighteen playable spacecraft, each filling a unique role in their respective fleet</li><li>A variety of weapons systems, ranging from basic plasma blasters to space shotguns and&nbsp;homing seeker-cannons</li><li>Several commodities that can be bought, sold, extracted from asteroids, or even stolen from less-fortunate pilots</li><li>A dynamic reputation system, allowing you to side with whomever you desire</li><li>Five unique freelance mission types, from basic cargo runs to clearing minefields</li></ul>
<hr>
<h4 class="text-center">Still To Come</h4>
<p class="text-center" style="color:#9f9f9e"><em>Subject to Change!</em></p>
<ul><li>Several new locations to explore, including the mysterious clouded rings of the planet Loki!</li><li>New freelance mission types, including jobs to perform for the criminal faction, the Atropos Cartel!</li><li>New NPC types, expanding to include all playable spacecraft plus at least one additional capital ship!</li><li>Rare, unique secret fighter craft to unlock and pilot!</li><li>Improved controls and UI for the PC build!</li><li>Storyline missions: involve yourself in the war effort and uncover the secrets behind the mysterious Inrathan ruins!</li></ul>
<hr>

<iframe width="720" height="450" src="https://www.youtube.com/embed/HnIuUXFeiLs" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzM2MDkwLzc2MDkzOTIucG5n/original/itQV0B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzM2MDkwLzc1Nzg4NjgucG5n/original/dLTEwP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzM2MDkwLzUxODE4OTcucG5n/original/m8R1Qw.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzM2MDkwLzUxODE5MTAucG5n/original/3yUzhX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzM2MDkwLzc2MDkzOTcucG5n/original/YhNMth.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzM2MDkwLzc2MDU2MjkucG5n/original/oO2MLI.png]]
<p>After the Tower of Magic is taken over by an evil wizard, it's up to you – a young learner of magic – to save the world and restore order. Run and jump through forest, candyland and desert worlds, during the day and at night. Collect coins, fight monsters, face challenging bosses and live through this amazing side-scrolling adventure in more than 60 colorful platform game levels.</p><p>Features:</p><p> + 6 worlds with over 60 carefully designed levels</p><p> + 6 music platformer levels</p><p> + 12 time challenges</p><p> + 8 unique characters</p><p> + local coop multiplayer mode</p><p><br></p><p>Report problems on my e-mail: tomasz.kucza@gmail.com<br><span></span></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTE1MzMvMjI3NzI2LmpwZw==/original/Z67YkT.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTE1MzMvMjI3NzI3LnBuZw==/original/AjMoSs.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTE1MzMvMjI3NzI4LnBuZw==/original/UXsy7q.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTE1MzMvMjI3NzI5LnBuZw==/original/%2B5hP0T.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTE1MzMvMjI3NzMwLnBuZw==/original/ygPFvu.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTE1MzMvMjI3NzMxLnBuZw==/original/tomds6.png]]
<p>The <strong>MiniFolks - Humans</strong> pack contains 10 pixel art characters, with and without outline.&nbsp;All characters are made on canvas 32x32.</p>
<p>Animations:</p>
<p><strong>Spearman/Halberdman</strong></p>
<p>&nbsp; Idle - 4/4 frames</p>
<p>&nbsp; Walk - 6/6 frames</p>
<p>&nbsp; Jump&nbsp; - 3/3 frames</p>
<p>&nbsp; Attack - 5/5 frames</p>
<p>&nbsp; Hit - 3/3 frames</p>
<p>&nbsp; Death - 5/5 frames</p>
<p><strong>Archer/Crossbowman</strong></p>
<p>&nbsp; Idle - 4/4 frames
</p>
<p>&nbsp; Walk - 6/6 frames
</p>
<p>&nbsp; Jump&nbsp; - 3/3 frames
</p>
<p>&nbsp; Attack - 10/9 frames
</p>
<p>&nbsp; Hit - 3/3 frames
</p>
<p>&nbsp; Death - 4/4 frames
</p>
<p>&nbsp; Attack Melee - 5/4 frames</p>
<p><strong>Swordman/Shieldman</strong></p>
<p>&nbsp; Idle - 4/4 frames
</p>
<p>&nbsp; Walk - 6/6 frames
</p>
<p>&nbsp; Jump&nbsp; - 3/3 frames
</p>
<p>&nbsp; Attack - 5/5 frames
</p>
<p>&nbsp; Hit - 3/3 frames
</p>
<p>&nbsp; Death - 4/4 frames
</p>
<p>&nbsp; Block - -/5 frames</p>
<p><strong>Horseman/Cavalier</strong></p>
<p>&nbsp; Idle - 4/4 frames
</p>
<p>&nbsp; Walk - 6/6 frames
</p>
<p>&nbsp; Jump&nbsp; - 3/3 frames
</p>
<p>&nbsp; Attack - 6/6 frames
</p>
<p>&nbsp; Hit - 2/2 frames
</p>
<p>&nbsp; Death - 6/6 frames
</p>
<p><strong>Prince/King</strong></p>
<p>&nbsp; Idle - 4/4 frames
</p>
<p>&nbsp; Walk - 6/6 frames
</p>
<p>&nbsp; Jump&nbsp; - 5/5 frames
</p>
<p>&nbsp; Attack - 6/9 frames
</p>
<p>&nbsp; Hit - 3/3 frames
</p>
<p>&nbsp; Death - 6/6 frames
</p>
<p>&nbsp; Drink - -/5 frames</p>
<p class="text-justify"><strong>You can use this asset as you like, just don't resell it.</strong></p>
<p class="text-justify"><strong>Credit is not required but would be appreciated.</strong></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI4MDQwNC83NDUzOTQ2LmdpZg==/original/eINPFW.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI4MDQwNC83NDUzOTQ4LmdpZg==/original/yyyaWy.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI4MDQwNC83NDUzOTUwLmdpZg==/original/STY5V8.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI4MDQwNC83NDUzOTUyLmdpZg==/original/AF8RZI.gif]]
<p>The&nbsp;<strong>MiniFolks - Orcs</strong>&nbsp;pack contains 10 pixel art characters, with and without outline.&nbsp;All characters are made on canvas 32x32.</p>
<p>Animations:
</p>
<p><strong>Goblin/Goblin Thief</strong></p>
<p>&nbsp; Idle - 4/4 frames
</p>
<p>&nbsp; Walk - 6/6 frames
</p>
<p>&nbsp; Jump&nbsp; - 3/3 frames
</p>
<p>&nbsp; Attack - 4/4 frames
</p>
<p>&nbsp; Attack 2 - -/4 frames
</p>
<p>&nbsp; Hit - 2/2 frames
</p>
<p>&nbsp; Death - 4/4 frames
</p>
<p><strong>Orc/Orc Warrior</strong></p>
<p>&nbsp; Idle - 4/4 frames
</p>
<p>&nbsp; Walk - 6/6 frames
</p>
<p>&nbsp; Jump&nbsp; - 3/3 frames
</p>
<p>&nbsp; Attack - 5/5 frames
</p>
<p>&nbsp; Block - -/5 frames
</p>
<p>&nbsp; Hit - 2/2 frames
</p>
<p>&nbsp; Death - 6/6 frames</p>
<p><strong>Axe Thrower/Berserker</strong></p>
<p>&nbsp; Idle - 4/4 frames
</p>
<p>&nbsp; Walk - 6/6 frames
</p>
<p>&nbsp; Jump - 3/4 frames</p>
<p>&nbsp; Attack - 6/6 frames
</p>
<p>&nbsp; Throw - 6/6 frames</p>
<p>&nbsp; Attack 2 - -/6 frames</p>
<p>&nbsp; Rage - -/4 frames</p>
<p>&nbsp; Hit - 2/2 frames
</p>
<p>&nbsp; Death - 4/4 frames
</p>
<p><strong>Wolf Rider/Warg Rider</strong></p>
<p>&nbsp; Idle - 4/4 frames
</p>
<p>&nbsp; Walk - 6/6 frames
</p>
<p>&nbsp; Jump&nbsp; - 4/4 frames
</p>
<p>&nbsp; Attack - 6/6 frames</p>
<p>&nbsp; Hit - 2/2 frames
</p>
<p>&nbsp; Death - 4/5 frames
</p>
<p><strong>Veteran/War Chief</strong></p>
<p>&nbsp; Idle - 4/4 frames
</p>
<p>&nbsp; Walk - 6/6 frames
</p>
<p>&nbsp; Jump&nbsp; - 3/3 frames
</p>
<p>&nbsp; Attack - 5/5 frames
</p>
<p>&nbsp; Attack 2 - -/5 frames
</p>
<p>&nbsp; Warcry&nbsp;- -/5 frames
</p>
<p>&nbsp; Hit - 2/2 frames
</p>
<p>&nbsp; Death - 6/6 frames
</p>
<p><strong>You can use this asset as you like, just don't resell it.</strong>
</p>
<p><strong>Credit is not required but would be appreciated.</strong>
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM3MjgwMC83OTk0NzY2LmdpZg==/original/0vS121.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3MjgwMC83OTk0NzY3LmdpZg==/original/tjvFJT.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3MjgwMC83OTk0NzY5LmdpZg==/original/uj20ZB.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3MjgwMC83OTk0NzcwLmdpZg==/original/eGkmmz.gif]]
<p>The&nbsp;<strong>MiniFolks - Undead</strong>&nbsp;pack contains 10 pixel art characters, with and without outline.&nbsp;All characters are made on canvas 32x32.<br></p>
<p>Animations:
</p>
<p><strong>Skeleton/Skeleton Archer</strong></p>
<p>&nbsp; Idle - 4/4 frames
</p>
<p>&nbsp; Walk - 6/6 frames
</p>
<p>&nbsp; Jump&nbsp; - 3/3 frames
</p>
<p>&nbsp; Attack - 5/10 frames
</p>
<p>&nbsp; Attack 2 - -/5 frames<br></p>
<p>&nbsp; Hit - 4/3 frames
</p>
<p>&nbsp; Death - 6/6 frames</p>
<p><strong>Zombie/Zombie Butcher</strong></p>
<p>&nbsp; Idle - 4/4 frames
</p>
<p>&nbsp; Walk - 6/6 frames
</p>
<p>&nbsp; Jump&nbsp; - 6/3 frames
</p>
<p>&nbsp; Attack - 4/6 frames
</p>
<p>&nbsp; Attack 2 - 6/- frames</p>
<p>&nbsp; Hit - 2/2 frames
</p>
<p>&nbsp; Death - 4/4 frames
</p>
<p>&nbsp; Rising - 8/11 frames</p>
<p>&nbsp; Get up - 5/8 frames</p>
<p><strong>Ghost/Reaper</strong></p>
<p>&nbsp; Idle - 4/4 frames
</p>
<p>&nbsp; Walk - 6/6 frames</p>
<p>&nbsp; Attack - 8/8 frames
</p>
<p>&nbsp; Hit - 2/2 frames
</p>
<p>&nbsp; Death - 5/6 frames</p>
<p><strong>Death Knight/Dread Knight</strong></p>
<p>&nbsp; Idle - 4/4 frames
</p>
<p>&nbsp; Walk - 6/6 frames
</p>
<p>&nbsp; Jump&nbsp; - 3/3 frames
</p>
<p>&nbsp; Attack - 5/5 frames
</p>
<p>&nbsp; Spell - 8/8 frames</p>
<p>&nbsp; Hit - 2/2 frames
</p>
<p>&nbsp; Death - 4/5 frames
</p>
<p><strong>Necromancer/Lich</strong></p>
<p>&nbsp; Idle - 4/4 frames
</p>
<p>&nbsp; Walk - 6/6 frames
</p>
<p>&nbsp; Jump&nbsp; - 3/- frames
</p>
<p>&nbsp; Attack - 5/7 frames
</p>
<p>&nbsp; Spell - 7/8 frames</p>
<p>&nbsp; Spell 2 - -/6 frames</p>
<p>&nbsp; Hit - 2/3 frames
</p>
<p>&nbsp; Death - 8/7 frames</p>
<p><strong>You can use this asset as you like, just don't resell it.</strong>
</p>
<p><strong>Credit is not required but would be appreciated.</strong></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMwOTMyMS83NjE1NTEwLmdpZg==/original/Xvdrnb.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwOTMyMS83NjE1NTExLmdpZg==/original/COfdx%2B.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwOTMyMS83NjE1NTEyLmdpZg==/original/33LxjK.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwOTMyMS83NjE1NTEzLmdpZg==/original/x5axpX.gif]]
<p>Minit is a peculiar little adventure played sixty seconds at a time.&nbsp;</p>
<p>Journey outside the comfort of your home to help unusual folk, uncover countless secrets, and overcome dangerous foes, all in hopes of lifting a rather unfortunate curse that ends each day after just one minute.&nbsp;</p>
<p>Minit is a collaboration between <a href="http://twitter.com/kittycalis" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Kitty Calis</a>, <a href="http://twitter.com/jwaaaap" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Jan Willem Nijman</a>, <a href="http://twitter.com/jukiokallio" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Jukio Kallio</a> &amp; <a href="http://twitter.com/zerstoerer" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Dominik Johann</a>.<br></p>
<p><br></p>
<p><br></p>
<figure><img src="https://img.itch.zone/aW1nLzExNDgyMzguZ2lm/original/EiqACF.gif" style="color: inherit" loading="lazy"><span></span><br></figure>

<iframe width="720" height="450" src="https://www.youtube.com/embed/XNVez4pXOCc" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjQwNzk3LzExNDc1MTcucG5n/original/5VyF9%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjQwNzk3LzExNDc1MTQucG5n/original/BVSIAS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjQwNzk3LzExNDc1MTYucG5n/original/MHIcu8.png]]
<p>Buckle up: Minit Fun Racer is a peculiar little racing game with 100% of developer and Devolver's proceeds going directly to charity. Forever.</p>
<p>Hop on your scooter into the twisting traffic of the bustling city and the debris covered sands of the barren desert just in time to watch the sunset. Befriend your local shopkeeper, chase coins, hit big jumps, and accomplish fun goals along each lap until you’ve seen it all!</p>
<p>Minit Fun Racer is a collaboration between Kitty Calis, Jan Willem Nijman, Jukio Kallio &amp; Dominik Johann.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/7Jpxo3yfYrU" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTI0MTMyLzUyMjg5MDkuanBn/original/po5e4Y.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTI0MTMyLzUyMjg5MTQuanBn/original/gWLHSn.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTI0MTMyLzUyMjg5MTAuanBn/original/8QQzhX.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTI0MTMyLzUyMjg5MTMuanBn/original/widQOk.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTI0MTMyLzUyMjg5MTIuanBn/original/N5szcn.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTI0MTMyLzUyMjg5MTEuanBn/original/hS9nZV.jpg]]
<p><img src="https://img.itch.zone/aW1nLzY5ODgwODUuZ2lm/original/7fYR55.gif" loading="lazy"><br></p>
<p>
</p>
<h1>Solve the puzzle of decomposition</h1>
<hr>
<p>Dead&nbsp;things don't disappear by themselves. Millions of microscopic organisms live and die to perform one of nature's most common acts. The body of a recently deceased rat is on the menu and you are here to take part in the feast.<br></p>
<ul><li>Split microbes in two! Splitting divides them but they are strong and capable when they work together.</li><li>Attack and destroy your enemies!</li>
<li>Push things around as you see fit! If your enemies get crushed in the process, all the better!</li><li>A microbe's life is short and limited, make sure to spend it wisely.</li></ul>
<h1>Controls</h1>
<hr>
<p><span></span></p>
<h3>Keyboard / Mouse&nbsp;</h3>
<p><strong>Note:</strong> The entire game can be played using only mouse input.<br></p>
<p><img src="https://img.itch.zone/aW1nLzcwMzYzMDUucG5n/original/pgkSFF.png" loading="lazy"><br></p>
<h3>Gamepad</h3>
<p><img src="https://img.itch.zone/aW1nLzcwMTk1MzcucG5n/original/FEeWNR.png" loading="lazy"></p>
<p><br></p>
<h1>Talk To Us</h1>
<hr>
<p>If you are experiencing&nbsp;issues with the game please consider emailing us at <strong>support@kikimora.games</strong>, describing the issue in as much detail as possible, and we'll do our best to figure it out and hopefully solve it. If relevant to the issue please try to include a screenshot or video recording.</p>
<h1>Follow us</h1>
<hr>
<p><strong>Website </strong>-&nbsp;<a href="https://www.kikimora.games/" rel="nofollow noopener" referrerpolicy="origin">https://www.kikimora.games/</a></p>
<p><strong>Twitter</strong>&nbsp;-&nbsp;<a href="https://twitter.com/KikimoraGames" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@kikimoragames</a>&nbsp;</p>
<p><a href="https://twitter.com/knivspark" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@knivspark</a>&nbsp;- Game Design &amp; Level Design</p>
<p><a href="https://twitter.com/BrJackMcPuff" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@BrJackMcPuff</a>&nbsp;- Sound Design &amp; Music</p>
<p><a href="https://itch.io/profile/rymdlejon">@Rymdlejon</a>&nbsp;- Art &amp; Animation<br></p>
<p><a href="https://twitter.com/TheOrioli" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@TheOrioli</a>&nbsp;- Programming</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/oy3X-HBSkUQ" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTc0OTkyLzY5ODc2MjcuZ2lm/original/1GtLQ2.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvOTc0OTkyLzY5ODA3MTYuZ2lm/original/Z%2Bx6Q%2F.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvOTc0OTkyLzY5ODc0OTkuZ2lm/original/7%2B3dXz.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvOTc0OTkyLzY5ODAxNTguZ2lm/original/gKxpFV.gif]]
<p>A gruesome murder interrupts an evening party at a secluded mansion and you are the prime suspect! Explore the mansion, search for clues, and interrogate the other guests as you strive to unmask the killer in this open-ended mystery.<span></span><br></p><h2>A murder is committed in a secluded mansion, and it's up to you to solve it.</h2>MMM is a visual novel adventure with an open-ended mystery that puts your deductive skills to the test. A murder occurs in a secluded manor, and if you can't find the killer in time, you just might take the blame for the crime yourself! Gather information and search the house for clues as you form your own conclusions about the evening's mysterious events.<h2>Features</h2><ul><li><strong>Multiple Endings</strong>: Finding the true killer is ideal, of course, but maybe building a plausible case against one of the other characters is good enough to get you off the hook!</li><li><strong>Unique and Compelling Characters:</strong> Play as Miss Fortune, a delightfully caustic anti-heroine who has already been widowed nine times. But this time, she didn't do it (really!), and she'll have to solve the mystery herself to prove it!</li><li><strong>Immersive</strong> <strong>Story</strong>: Sharply written dialog full of choices ensures a thoroughly immersive narrative.</li><li><strong>Voice</strong>-<strong>acting</strong>: Each character is fully voiced, with over 1700 voiced lines throughout the game!</li><li><strong>Beautiful</strong> <strong>Visuals</strong>: Detailed, searchable backgrounds and slick visual effects like rain, fog and variable lighting enhance the aesthetic experience.</li><li><strong>Time</strong> <strong>runs</strong> <strong>Short</strong>: The incompetent police are on their way. Better solve the mystery before they arrive, lest they come to their own <i>(wrong)</i> conclusions.</li></ul><p>MMM is available for Mac, Linux &amp; Windows computers.</p><p>It has full-English voice acting, and text in English, Italian or Spanish.</p><p>Download (or listen to) the OST for free <a href="https://soundcloud.com/enteiler/sets/mmm-murder-most-misfortunate-ost" target="_blank" rel="nofollow noopener" referrerpolicy="origin">here</a>!</p><p>We're the Foolish Mortals, a small indie team based in the flat and desolate wastes of Saskatoon, Saskatchewan, Canada. Read more about the game and us here: <a href="http://www.foolish-mortals.net/mmm" rel="nofollow noopener" referrerpolicy="origin">http://www.foolish-mortals.net/mmm</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/BUlDO2Y4A8Y" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzM5MTQvNjE4NzUzLmpwZw==/original/Phmc3x.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzM5MTQvNjE4NzUxLmpwZw==/original/ZgQ%2Boh.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzM5MTQvNjE4NzUwLmpwZw==/original/um9xv%2F.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzM5MTQvNjE4NzUyLmpwZw==/original/q9cu8r.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzM5MTQvNjE4NzQ5LmpwZw==/original/Vy4m0g.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzM5MTQvNjE4NzQ4LmpwZw==/original/mWkUy7.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzM5MTQvNjE4NzQ3LmpwZw==/original/J30VbF.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzM5MTQvNjE4NzQ2LmpwZw==/original/Z7xlZH.jpg]]
<p>Discover the great Cathedral of the Seven and the surrounding monastery in this sprawling battlemap.<br></p>
<p>The Dungeondraft source file is available from 1$ up.</p>

[img width=500 [https://img.itch.zone/aW1nLzY1NzY5MDIucG5n/original/7dhEhs.png]]
<p><em>A portal has appeared in our world that leads to a realm of monsters! The environment is deemed safe, the natives peaceful, and ambassadors exchanged. Now a foreign exchange student program has been struck up between the two realms, and you’re one of the chosen few to go first! While attending school, you’ll be asked to record a journal about the different interactions you have with the other students and the different relationships you develop.</em></p>
<p>Monster Realm: Student Exchange Program is a solo journaling game about meeting people very different from you and reflecting on the reasons for the types of relationships you have with them. Each round is equivalent to a single month, and you’ll attend school for a year. All you need is a deck of playing cards (Jokers removed), three 6-sided dice,&nbsp;and a way to record your journaling.</p>
<p>For the young and young at heart, we hope you enjoy the new relationships you develop within this game!</p>
<p></p>
<p><br></p>
<p>Why do all the Adjectives start with S? Because I'm a sucker for alliteration and the restriction made it easier to decide which words to use. Just thought I'd explain this here before it's given any significant meaning.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM3NDE0NC84MzU4MTU4LnBuZw==/original/o4dWo6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3NDE0NC84MDAyNjgxLnBuZw==/original/sJkN8w.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3NDE0NC84MDAyNjgzLnBuZw==/original/PcDWEf.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3NDE0NC84MDAyNjg4LnBuZw==/original/Pi3cVo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3NDE0NC84MDAyNjkwLnBuZw==/original/5v3Ngb.png]]
<h3 style="color:#FFFFFF">Show Your Personality</h3>
<p>
	<strong>Moon Hunters</strong> is a 1 to 4 player co-operative action personality test RPG in a rich, ancient world that's different every time you play. Build your mythology as every action and choice contributes to how you're remembered, as a constellation in the night sky.
</p>
<h3 style="color:#FFFFFF">A Hero's Journey</h3>
<p>
	Play out 5 days from different angles to uncover new sides to characters, conflicts, and narratives. Try out all 4 player hometowns and 6 player character classes, each with their own abilities and randomly available upgrades.
</p>
<h3 style="color:#FFFFFF">Earn Your Reputation</h3>
<p>
	On your search for the missing Moon goddess, you will travel the world with your fellow Hunters and become a living legend for your deeds. How will you be remembered by your tribe in generations to come?
</p>
<p>
	<br>
</p>
<hr>
<p>
	<u><br>
	</u>
</p>
<p>
	<u>Awards:</u><br>
</p>
<ul>
	<li>Indie MegaBooth - PAX Prime 2015 and PAX East 2016 Showcase</li><li>Indie Prize Europe 2016 Winner: Most Promising Game in Development</li>
	<li>Indie Prize Europe 2016 Finalist: Critic's Choice Best in Show, Best Multiplayer</li>
	<li>Montreal International Game Festival - Narrative Design Award</li>
	<li>Curse PAX East 2015 - Best Co-Op Experience</li>
</ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/UdGOvzXa4N8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTQ3MDYvMzM0MDE2LnBuZw==/original/e%2F9%2FTH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQ3MDYvMjQ0MjI0LnBuZw==/original/NVs84X.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQ3MDYvMjQ0MjI1LnBuZw==/original/IdC8C7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQ3MDYvMjQ0MjIyLnBuZw==/original/8dwQUp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQ3MDYvMjQ0MjIzLnBuZw==/original/xlhKHi.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQ3MDYvMjQ0MjI2LnBuZw==/original/AHBLc7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQ3MDYvMzM0MDE5LmpwZw==/original/h%2BTgaa.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQ3MDYvMzM0MDE3LnBuZw==/original/rxJvro.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQ3MDYvMzM0MDE4LnBuZw==/original/8yGxpT.png]]
<h1></h1>
<p>Sign up for updates <a href="https://www.getrevue.co/profile/whatkylewrites" rel="nofollow noopener" referrerpolicy="origin">here</a>&nbsp;at my newsletter!</p>
<p>Content Warning: Blood, gore, sacrifice, death</p>
<p><span></span></p>
<p><em>Aeruth was once a land of wonder, a place where none knew hunger or poverty or fear. A happy place, where no one wanted for anything. And yet, there were those that wanted. Those that yearned to have more. None could say for certain how greed curled its way around the heart of the people who had what they wished. Whatever the cause may have been, the fact was that those who took from others soon began to take from the land itself.</em></p>
<p><em>As man took from the land, the Gods who had built and preserved it watched. Waited. Observed, to see if they would turn back from their path of destruction. Finally, after centuries of deliberation and the slow, aching death of the world, they passed their judgment. The land that had been exploited fought back, bringing death and destruction upon humanity. Millions were lost to the flames that ate through steel and brick mercilessly, to the floods that capsized even the sturdiest ships, to the earthquakes that felled mighty bridges and thunderstorms that smote the tallest of towers.&nbsp;</em>
</p>
<p><em>Even now, the fury of the Gods remains unabated. Only an impassioned plea to the divine will quell their anger, but the voices of mankind cannot be heard when shouted from the land below.</em></p>
<p><img src="https://img.itch.zone/aW1nLzgwMzMwODYuanBn/original/ofuFH5.jpg" loading="lazy"></p>
<figcaption>A stone altar, protecting a gate of thorns. Art by Tony Tran.</figcaption>
<p>MORIAH is a simple role-playing game of ordinary people facing the extraordinary. It is a game of sacrifice, where people living quiet lives at the base of a holy mountain must attempt to ascend it in order to ask for the mercy of the gods. It is a meditation on what it means to give for others, inspired by<em> LISA, Soul Sacrifice</em>,&nbsp;and <em>Blessed Messiah and the Tower of AI</em>.&nbsp;</p>
<p>You can contact myself, <a href="https://twitter.com/PercyPropa" rel="nofollow noopener" referrerpolicy="origin">Kyle T.</a>, for a link to the Moriah Press Kit!</p>
<h2>PLAY THIS GAME FOR:</h2>
<ul><li>A sacrifice mechanic that sees you weighing up life and limb in order to overcome the challenges before you.</li><li>A simple DICE mechanic that evolves the more that you give, going from the humble d4 to the divine d100.</li><li>The means to become a DEITY, testing the players who were once your friends for their worthiness.</li><li>A character sheet that allows you to graphically illustrate what you have given, and what you have lost.</li><li>Challenges that span the breadth of flora, fauna, demonic, and divine, to be overcome with the use of DICE.</li><li>Three preset Roads for the indecisive Deity (The Road Less Travelled, The Road of Thorns, The Road of Beasts) to use during a standard Journey.</li></ul>
<p></p>
<h1><img src="https://img.itch.zone/aW1nLzgxNjk5MjMucG5n/original/00xpFo.png" alt="Moriah Character Sheet Preview" title="Moriah Character Sheet Preview" loading="lazy"><figcaption>A preview of the MORIAH character sheet by Dyer Rose, depicting a human silhouette and sections to write down Memories and Relationships.</figcaption></h1>
<p>Paying for Moriah means you will have access to both the initial ashcan plain text/HTML product, as well as the final DIGITAL product inclusive of layout, character sheet, and illustration! Currently there are no plans to print Moriah, although if any distributors are willing to take this project on I would be absolutely delighted to hear from you. <strong>PLEASE NOTE THE CURRENT MORIAH PDF FILE IS A PLACEHOLDER.</strong></p>
<p><strong>THE ASHCAN CONTAINS THE FOLLOWING:</strong></p>
<ul><li>Rules for sacrifice of the self and otherwise, as well as how to utilize the DICE</li><li>Character and town generation rules for simple play</li><li>An explanation of the Challenges and Places of Respite you will face along the way</li><li>The Road Less Travelled, for pilgrims making their first attempt at ascending Mt. Moriah</li></ul>
<p>Although the Itchfund is over, you can still purchase MORIAH at the following tiers. However, since we are in the post-funding phase, PLEASE NOTE THAT WE CANNOT GUARANTEE YOUR NAME WILL BE INCLUDED IN THE MORIAH FILE.&nbsp;Note that for every copy of MORIAH purchased or dollar added as a tip on top of a pledge, a Community Copy will be added.</p>
<ul><li><strong>The Villager ($3):&nbsp;</strong>Access to the Ashcan of MORIAH.&nbsp;</li><li><strong>&nbsp;The Pilgrim ($10)</strong>: Access to the Ashcan and eventual full PDF and all stretch goals and content.&nbsp;</li><li><strong>The Wanderer ($20)</strong>: Access to the Ashcan and eventual&nbsp;full PDF and all stretch goals and content. You will be able to submit a suggested Challenge (pending review)&nbsp;for a special Backer Road tentatively titled the Road of Shattered Dreams.&nbsp;</li><li><strong>The Journeyman ($15):&nbsp;</strong>Access to the full PDF and all stretch goals and content.&nbsp; You will receive a download code for any two of my other paid games as of this release. This includes:<ul><li>Beloved</li><li>Turo-Turo&nbsp;</li><li>&nbsp;What Lies Beneath&nbsp;</li><li>&nbsp;RASPUTIN: The Mystic, The Mundane</li><li>End of the Line</li></ul></li><li><strong>The Wayfarer ($35)</strong>: Access to the Ashcan and eventual&nbsp;full PDF and all stretch goals and content. You will be able to submit a suggested Place of Respite and rest prompts (pending review)&nbsp;for a special Backer Road tentatively titled the Road of Shattered Dreams.&nbsp;</li><li><strong>The Prophet ($100): </strong>Access to the Ashcan and eventual&nbsp;full PDF and all stretch goals and content. I will run a session of MORIAH or one of my other games&nbsp;for you and your group for up to 3 hours (scheduling required, with advanced notice I am in GMT+8).&nbsp;</li></ul>
<p><strong>GOALS:</strong><br></p>
<ul><li><del>$300 - The excellent <a href="https://twitter.com/metitenryo" rel="nofollow noopener" referrerpolicy="origin">J. Madamba</a>, who worked with me on End of the Line, stretches his editing muscles to make Moriah really sing! -</del> PREFUNDED!</li><li><del>$500 - The incredible <a href="https://twitter.com/Armandah17" rel="nofollow noopener" referrerpolicy="origin">Armanda Haller</a>, whose beautiful layout can be seen in works like Paranoid Android and Faster than Light, will be doing layout for the game!&nbsp;</del>&nbsp;FUNDED ON THE FIRST DAY!!</li><li>$<del>700 - The fantastic <a href="https://stuartmartynhall.wixsite.com/mysite" rel="nofollow noopener" referrerpolicy="origin">Stuart Martyn</a>, whose credits include writing for White Wolf and Stygian Fox, will write a new (and fiendishly difficult) Route for ordinary people to be tested with! </del>FUNDED ON THE SECOND DAY!</li><li><del>$1000 - The amazing <a href="https://www.instagram.com/mrcattears/" rel="nofollow noopener" referrerpolicy="origin">Tony Tran</a> will be creating beautiful internal art pieces to be peppered throughout the book!&nbsp;</del>FUNDED ON THE SIXTH DAY!</li><li><del>$1100 - The wondrous <a href="https://twitter.com/BasiliskOnline" rel="nofollow noopener" referrerpolicy="origin">Dyer Rose</a> will be creating a character sheet to accompany your ascent, complete with a model of the body for you to mark off what you choose to sacrifice to the mountain!</del> FUNDED ON THE SEVENTH DAY!&nbsp;</li><li><del>$1300 - The electrifying <a href="https://mishapanarin.itch.io/">Misha Panarin</a>, the iconic creator of Tall Vampire Ladies and Cantrip for LATAM Breakout, will write a new Route for Moriah’s aspirants to ascend!</del> FUNDED ON THE TENTH DAY</li><li>STRETCH - $2400- This comfortably covers the layout and editing work to be done for ALL the stretch goal writing!</li><li>STRETCH - $3000 - I get paid for writing the initial ashcan! Dang!</li><li>STRETCH - ??? - More art? Maaaaybe one more author for the Road...?</li></ul>
<p>While my current goal as of the time of this writing is a total $1300 for the base work, Moriah's production will also be supplemented by purchases of my other work during the months of January and February. So far, this means that upon launch on February 1st, our goal will be reduced by $401.48!</p>
<h2>What People Have Been Saying</h2>
<blockquote>Mt. Moriah is a hungry beast. The sacrifice of your character’s body, community, and mind will undertake to Mount the World is a terrible price. However, even the ultimate sacrifice is not the end. Hopefully one of you will make it down the Road to plead for the survival of the World. If you do, I thank you. You are far stronger than I.</blockquote>
<p><a href="https://twitter.com/hessan_yongdi" rel="nofollow noopener" referrerpolicy="origin">Bryon, A Lowly Peasant</a></p>
<blockquote>Beautifully written and brutal in its execution, Moriah commands attention with the authority of jilted gods</blockquote>
<p><a href="https://twitter.com/aaronsxl" rel="nofollow noopener" referrerpolicy="origin">A.A. Voight</a></p>
<blockquote>Moriah is beautiful, evocative, and tragic. It is a game about doom, but it doesn’t hide that fact from the very start. Instead, it asks the players again and again how much they’re willing to give and gives them the opportunity to push forward or walk away. It is a gorgeous game that I would bring to any group willing to talk honestly about hope, sacrifice, and vulnerability.</blockquote>
<p><a href="https://twitter.com/kw_writing" rel="nofollow noopener" referrerpolicy="origin">Kay W.</a></p>
<blockquote>Moriah is a game of sacrifice, that will grab your soul and drag it on a journey through a decadent world. It's one of the most intimate games I found, and I cannot wait to bring my players on a journey where we'll face our darkest, hidden, and obscure part, answering the question: what are we willing to sacrifice to ascend Mt. Moriah and save the mankind?</blockquote>
<p><a href="https://twitter.com/MasterRPG" rel="nofollow noopener" referrerpolicy="origin">Matteo Sciutteri</a></p>
<blockquote>Moriah asks you to reflect on its mechanics in a deeply engaging way. Even the type of die you roll is given meaning."</blockquote>
<p><a href="https://twitter.com/ShrikeTabletop" rel="nofollow noopener" referrerpolicy="origin">Robin Belle, Shrike Tabletop</a><br></p>
<blockquote>When we traverse MORIAH, we inhabit a sunless and brutal parable of sacrifice and resilience. &nbsp;We say goodbye to our reliable relationships, goodbye to our foundational memories, goodbye to our useful limbs. &nbsp;We consider the allure of quiet return to normalcy, and the festering regret that always accompanies such a move.&nbsp;We look back as we push forward, and come to understand that we are attrition embodied.&nbsp;</blockquote>
<blockquote>A game of MORIAH, like the mountain itself, is a bold and scraggy journey. &nbsp;Like the myths and folktales it references, stories of MORIAH will be long remembered and retold by players who travel down its road.</blockquote>
<p><a href="http://twitter.com/seanpatrickcain" rel="nofollow noopener" referrerpolicy="origin">Sean Patrick Cain, Designer of Long Haul 1983</a></p>
<h2>Featured In:</h2>
<ul><li>Dice Stew:&nbsp;<a href="https://dicestew.substack.com/p/roots-ramblings-issue-7?r=zryta&amp;utm_campaign=post&amp;utm_medium=web" rel="nofollow noopener" referrerpolicy="origin">https://dicestew.substack.com/p/roots-ramblings-issue-7?r=zryta&amp;utm_campaign=pos...</a></li><li>Geek Native:&nbsp;<a href="https://www.geeknative.com/139075/moriah-is-a-zine-month-rpg-of-bloody-sacrifice/" rel="nofollow noopener" referrerpolicy="origin">https://www.geeknative.com/139075/moriah-is-a-zine-month-rpg-of-bloody-sacrifice...</a></li><li>Cannibal Halfling:&nbsp;<a href="https://cannibalhalflinggaming.com/2022/02/01/zine-month-round-up-1/" rel="nofollow noopener" referrerpolicy="origin">https://cannibalhalflinggaming.com/2022/02/01/zine-month-round-up-1/</a></li><li>Tabletops &amp; Tentacles:&nbsp;<a href="https://www.youtube.com/embed/Eq77OGHQwlU" rel="nofollow noopener" referrerpolicy="origin">https://www.youtube.com/embed/Eq77OGHQwlU</a></li><li>In The News:&nbsp;<a href="https://m.youtube.com/watch?v=uz_9yEfI12M&amp;feature=youtu.be" rel="nofollow noopener" referrerpolicy="origin">https://m.youtube.com/watch?v=uz_9yEfI12M&amp;feature=youtu.be</a></li><li>PlusOne Exp (Top 10 Most Anticipated ZiMo Games):&nbsp;<a href="https://youtu.be/8WdFAVvteMs" rel="nofollow noopener" referrerpolicy="origin">https://youtu.be/8WdFAVvteMs</a></li><li>Wyrd Science:&nbsp;<a href="https://www.wyrdscience.online/post/zine-month-2022-part-1" rel="nofollow noopener" referrerpolicy="origin">https://www.wyrdscience.online/post/zine-month-2022-part-1</a></li><li>The Weekly Scroll:&nbsp;<a href="https://m.youtube.com/watch?v=tomnmtbUTyo&amp;feature=youtu.be" rel="nofollow noopener" referrerpolicy="origin">https://m.youtube.com/watch?v=tomnmtbUTyo&amp;feature=youtu.be</a></li><li>A. A. Voigt:&nbsp;<a href="https://m.youtube.com/watch?v=0m2zBV5Ggyk&amp;feature=youtu.be" rel="nofollow noopener" referrerpolicy="origin">https://m.youtube.com/watch?v=0m2zBV5Ggyk&amp;feature=youtu.be</a></li><li>HYPT Weekly News:&nbsp;<a href="https://www.haveyouplayedthis.com/posts/hypt-weekly-news-2-8-22" rel="nofollow noopener" referrerpolicy="origin">https://www.haveyouplayedthis.com/posts/hypt-weekly-news-2-8-22</a></li><li>Dicebreaker:&nbsp;<a href="https://www.dicebreaker.com/topics/zinemonth-2022/news/zine-month-2022-rpg-list-week-2" rel="nofollow noopener" referrerpolicy="origin">https://www.dicebreaker.com/topics/zinemonth-2022/news/zine-month-2022-rpg-list-...</a></li><li>Dice, Drinks, and Drama: [Twitch stream - link pending]</li><li>The RPG Internationale:&nbsp;<div class=""><iframe width="500" height="281" src="https://www.youtube.com/embed/VMnyI9ae9rs" frameborder="0" allowfullscreen=""></iframe></div></li></ul>
<p><br></p>
<h2>Recommended Campaigns to Back</h2>
<ul><li>If you enjoyed the back and forth between gods and mortals, and trying to prevent catastrophe: <em><a href="https://the-snow-queen.mailchimpsites.com/" rel="nofollow noopener" referrerpolicy="origin">The Snow Queen</a> by Jeeyon Shim</em></li><li>If you enjoyed discussions of faith and dialogues with the divine:&nbsp;<em><a href="https://tori-truslow.itch.io/tending">Tending</a> by Tori Truslow</em></li><li>If you enjoyed facing nigh insurmountable challenges: <em><a href="https://hopefulweirdwonder.itch.io/sunguard">Pilgrimage of the Sun Guard</a> by Amanda P.</em></li><li><em></em>If you enjoyed arduous and bittersweet journeys<em>: <a href="https://monkeys-paw-games.itch.io/chalice">Chalice</a> by Monkey’s Paw Games</em></li><li>If you enjoyed the varied forms and trials of the gods<em>:<a href="https://feral-indie-studios.itch.io/as-the-gods-demand">As The Gods Demand</a> by Feral Indie Studio</em></li><li>If you're interested in a journey the other way, descending into darkness: <em><a href="https://www.indiegogo.com/projects/lost-below-the-earth-a-horror-storytelling-rpg#/" rel="nofollow noopener" referrerpolicy="origin">Lost Below The Earth</a> by Michael Whelan</em></li><li>If you enjoyed the author’s writing<em>: </em><a href="https://www.afterthought.games/" style="" rel="nofollow noopener" referrerpolicy="origin">Flip #1</a><em> from Afterthought Committee</em></li><li>If you want to cheer yourself up and feel powerful again:&nbsp;<em><a href="https://babblegumsam.itch.io/lumen-ryder-core"></a><a href="https://babblegumsam.itch.io/lumen-ryder-core">Lumen Ryder Core</a> by Samuel Mui</em></li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/VMnyI9ae9rs" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM1OTE4NC84MDQ3Njc1LmpwZWc=/original/rRtxiw.jpeg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM1OTE4NC84MDMzMDk0LmpwZw==/original/EY57Xr.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM1OTE4NC84MDY0MTIzLmpwZWc=/original/SvPn5R.jpeg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM1OTE4NC84MDY0MTI0LmpwZWc=/original/8Qkvow.jpeg]]
<p>Mostly Harmless Meetings is a TTRPG zine containing tables for system-neutral random countryside encounters with birds, beasts, trees, plants, and landscapes.</p>
<p>The encounters themselves are whimsical and, as the title implies, mostly harmless. They are inspired by the animal and plant life of the English countryside, and associated folklore. Here are a few examples:</p>
<p>Wren: The king of birds, the wren, sings from a branch. Its call is almost deafening, and drowns out all other sounds, generally annoying everyone in the area. If hunted or harried it will rapidly summon thousands of assorted small birds to come to its aid. In fact, it may do so just for fun.</p>
<p>Flea: "Hey! Hey, you! Yes, you, lofty! Wanna know the prince's darkest secrets?" At first, the voice appears to come from nowhere. It takes quite some searching to find the talking flea inside your underwear. The flea is an incorrigible gossip, passing on all manner of stories about the people it has lived upon. Some of them are even true.</p>
<p>Oak: A circle of twisted, ancient oaks. The ground inside the circle, and the bottom halves of the tree, are covered in soft, thick moss an almost unnaturally bright green. This place has a good feeling about it, and would be an ideal spot to camp for the night. Anyone doing so sleeps very deeply, as will anyone who tries to stay awake and keep watch. They will awake feeling more invigorated than they have in years. However, in the night, fairies have been playing practical jokes, a different one on each person who slept here. They may find their shoelaces tied together; their hair plaited with nettles or braided together with somebody else's; clothes may be swapped around, or altered with incredibly fine needlework: perhaps sleeve-ends are sewn up, gussets are removed or tightened, or the words "KICK ME" embroidered upon somebody's back. A very detailed search may reveal the fairies sleeping in acorn cups scattered among the trees.</p>
<p>The zine is 48 pages long, A5, full color, featuring 100 encounters, plus art by dead artists.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI1NjgzMS84MjM4MDAyLmpwZw==/original/1oePBd.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1NjgzMS84MjM3NzY4LmpwZw==/original/bNsBc6.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1NjgzMS84MjM3NzU2LmpwZw==/original/2%2Bx%2Bp%2B.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1NjgzMS84MjM3OTQ3LmpwZw==/original/%2BSUr8n.jpg]]
<div class="text-center"><iframe style="width: 500px; height: 281px" src="https://www.youtube.com/embed/BCYFlSsmqMI" frameborder="0" allowfullscreen=""></iframe></div>
<p class="text-center"><strong>STEAM Key included on purchase!</strong><br></p>
<p><img src="https://img.itch.zone/aW1nLzIyOTY5MjQucG5n/original/cwVHKC.png" loading="lazy"></p>
<p>Defend your home dungeon against a bunch of impolite humans in this humorous tower/lane defense game. Summon monsters, change tactics on the fly &amp; skip funny dialogue to defeat waves and waves of the most generic heroes mankind has ever seen!<br><br>Classic lane defense action, a fresh new tactics switching mechanic and a bunch of funny dialogue!</p>
<p><img src="https://img.itch.zone/aW1nLzIyOTY5MjcucG5n/original/fKcCwx.png" loading="lazy"><br></p>
<ul><li>16 levels of MOSTLY INTENSE tower defense action!</li><li><strong>ENDLESS MODE</strong>&nbsp;with randomized waves of survival goodness!</li><li>Hundreds of lines of kind of funny dialogue from your Summoner sidekick!</li><li>An amazingly round &amp; ergonomic TACTICS WHEEL to help you switch tactics on the fly!</li><li>A squishy squashy pixel art style</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/BCYFlSsmqMI" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDUzMDc5LzIzMDAwNzQucG5n/original/Dh0t9E.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDUzMDc5LzIyOTY5NDQucG5n/original/SdhTDP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDUzMDc5LzIyOTY5NDMucG5n/original/kyZa%2BT.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDUzMDc5LzIyOTY5NDUucG5n/original/GhH5Lo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDUzMDc5LzIyOTY5ODMucG5n/original/KaR87O.png]]
<p>Did you know that if you match at least two cute square shaped beings by color then you get at least two fields with grass and flowers in the same color. No!? Now you know.</p>
<p>Move 'n' Bloom is&nbsp;a simple but also challenging puzzle game about moving, pushing and matching colors.&nbsp;But watch out! It gets harder than it looks ;)<br> </p>
<h3>DRM free &amp; no installer. Just unzip it and play!</h3>
<h4><br>Or if you prefer to play on your Android device.</h4>
<p><a href="https://play.google.com/store/apps/details?id=waldemar.umaniz.movenbloom" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Get it there on Google Play</a><br><a href="http://movenbloom.com/game/android/Move_n_Bloom.apk" rel="nofollow noopener" referrerpolicy="origin">Or just download the APK directly<br></a>Or find it below under the Demo builds (FULL VERSION)</p>
<h3>Features</h3>
<ul><li>Over sixty handcrafted puzzles</li><li>Non-linear world map</li><li>Match mechanic based on whole 3 colors</li><li>Moving, pushing, combining, cloning, sticking and of course matching!</li><li>Very handy scrolls of incomplete knowledge</li></ul>
<h3>System Requirements</h3>
<p>Windows</p>
<ul><li>OS:&nbsp;Windows 7 (SP1+) and Windows 10</li><li>Processor:&nbsp;x86, x64 architecture with SSE2 instruction set support.</li><li>Memory:&nbsp;360 MB RAM</li><li>Graphics:&nbsp;Graphics card with DX10 (shader model 4.0) capabilities.</li><li>DirectX:&nbsp;Version 10</li><li>Storage:&nbsp;265 MB available space</li><li>Additional Notes:&nbsp;Hardware vendor officially supported drivers.</li></ul>
<p>Mac OS X</p>
<ul><li>OS:&nbsp;Sierra 10.12+</li><li>Processor:&nbsp;x64 architecture with SSE2.</li><li>Memory:&nbsp;360 MB RAM</li><li>Graphics:&nbsp;Metal capable Intel and AMD GPUs</li><li>Storage:&nbsp;245 MB available space</li><li>Additional Notes:&nbsp;Apple officially supported drivers.</li></ul>
<p>Linux</p>
<ul><li>OS:&nbsp;Ubuntu 16.04 and Ubuntu 18.04</li><li>Processor:&nbsp;x64 architecture with SSE2 instruction set support.</li><li>Memory:&nbsp;260 MB RAM</li><li>Graphics:&nbsp;OpenGL 3.2+, Vulkan capable.</li><li>Storage:&nbsp;255 MB available space</li><li>Additional Notes:&nbsp;Gnome desktop environment running on top of X11 windowing system. Other configuration and user environment as provided stock with the supported distribution (such as Kernel or Compositor) Nvidia and AMD GPUs using Nvidia official proprietary graphics driver or AMD Mesa graphics driver.</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/PTZW2fqUvUc" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjg0NzgwLzQ0OTg3OTIucG5n/original/lsrC8r.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjg0NzgwLzQ0OTg3OTMucG5n/original/fAlOoU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjg0NzgwLzQ0OTg3OTYucG5n/original/E9xjC%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjg0NzgwLzQ0OTg3OTQucG5n/original/o3LTHv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjg0NzgwLzQ0OTg3OTUucG5n/original/ltpokk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjg0NzgwLzQ0OTg3OTcucG5n/original/e8PpXe.png]]
<p>Welcome to Muffin Fight! A&nbsp;high action multiplayer game developed for Virtual Reality!<br><br>Get into the game, take on your friends, or play against strangers. Players can bake muffins using many different recipes to create many different effects, and the person with the most points, wins!</p>
<p><strong><br>Update 2021-08-05 - Release Notes: 4.3.0.0</strong></p>
<p><strong>Release Notes</strong></p>
<ul><li>Addition of Single Player mode
</li><li>Exit Menu model updated
</li><li>New Splash Screen
</li><li>Chocolate bars removed from Chocolate Cherry Muffin Explosion effect
</li><li>Oven Doors are properly aligned and don't jitter while opening
</li><li>Spatulas are bigger
</li><li>Start Button can only be activated by Avatar's hands.
</li><li>Resolved various issues with Blueberry, Banana &amp; Cherry Muffins
</li><li>Muffin reset state issues resolved
</li><li>Most visual effects can be seen by all players now
</li><li>Duplicate Photon ID issues resolved
</li><li>Vacuum Ray Reworked
</li><li>Muffin Mondays Timer deactivated
</li><li>Lighting improvements to all scenes
</li><li>Updated Credits
</li><li>Custom Match timer syncs with all players
</li><li>Players now have their own client based pool of Muffins to draw from rather than all players sharing the same pool
</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/TdArmDrNpNQ" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA0NzAxNi81OTg0NDgyLnBuZw==/original/ZAVw1t.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0NzAxNi81OTg0NDg0LnBuZw==/original/paJffu.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0NzAxNi81OTg0NDgxLnBuZw==/original/HVJqSS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0NzAxNi81OTg0NDgzLnBuZw==/original/17dQ30.png]]
<p>
	Multi Platformer Tileset is a pack of various environmental assets ready to use in your side-scrolling games. It includes, on each environment, a terrain tileset, additional assets, animations and layered parallax backgrounds. All assets were made to fit really well in any level design you want.
</p>
<p>
	<br>
</p>
<p>
	<img src="https://www.dropbox.com/s/5885oc1w209vwvz/Store%20text1.png?raw=1" loading="lazy">
</p>
<p>
	The images were made using Pico-8 palette (16 colors) using a grid of 16 x 16 px. Some assets have more than 1x1 grid.&nbsp;All assets are in .PNG lossless format and works with almost all existing game creation tools.</p>
<p>
	It uses the CC0 license (Creative Commons Zero), so you can use it for your personal/commercial projects. There is no need to credit back, but it will be greatly appreciated.
</p>
<p>NOTE: The free tileset is an old version of the Grassland environment, as it was revamped. If you like it, consider to get the paid version.</p>
<p>
	<br>
</p>
<p>
	<img src="https://www.dropbox.com/s/f0xbl57tyr8n8am/Store%20text2.png?raw=1" loading="lazy">&nbsp; (03/16/2018)
</p>
<ul><li><strong>Grassland:</strong> 149 assets</li>
	<li><strong>Dungeon: </strong>131 assets</li>
	<li><strong>Desert:</strong> 134 assets</li>
	<li><strong>(Updated) Snowland:</strong><strong> </strong>130 assets</li><li><strong>Stronghold: </strong>127 assets</li></ul>
<hr>
<p>
	To be informed about futures updates, just follow me or check the discussion board below.
</p>
<p>
	<a href="https://twitter.com/shackhal" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://www.dropbox.com/s/8a1gmvefk8nsd6r/Twitter.png?raw=1" loading="lazy"></a> <span style="padding-left:10px"><a href="http://shackhal.tumblr.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://www.dropbox.com/s/co8krb0c0glhdcq/Tumblr.png?raw=1" loading="lazy"></a></span>
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjUyNTgvMTExOTM4NS5wbmc=/original/JN9O%2Fk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjUyNTgvNzM0MjE4LnBuZw==/original/7ENaAk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjUyNTgvMTAyNTIyMC5wbmc=/original/rppz%2BE.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjUyNTgvNzM0MjE5LnBuZw==/original/83Lbh0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjUyNTgvMTExOTE2My5wbmc=/original/lQxGle.png]]
<p>After a successful (and stressful) cat show competition, three women, Claudette, Aberdeen, and Illia,&nbsp;head back to their hotel rooms to decompress and unwind. The next day, two women get a knock on their doors: Claudette is dead. Was Claudette murdered by one of her competitors, or was it suicide...?&nbsp;</p>
<p><em>Murder at the Cat Show&nbsp;</em>is the 2nd installation of the Detective Series. Episode 1 is <a href="https://shonte.itch.io/murder-by-candlelight" target="_blank">Murder by Candlelight.</a>&nbsp;But don't worry, you can play the games out of order. Or you can just not play them at all! It's all your choice!</p>
<p>If you enjoy <em>Ace Attorney</em>, <em>Famicom Detective Club</em>, and Agatha Christie novels, then boy do I have a game for you. This one!</p>
<p><strong>Features:</strong></p>
<ul><li>(Hopefully) funny dialogue</li><li>A light-hearted, but serious, murder!</li><li>Multiple (3, to be exact) endings</li><li>Some cute cats, and some whacky women!</li></ul>
<p><strong>Made by:</strong></p>
<ul><li><a href="https://twitter.com/ShonteWrites" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Shonté</a>: Writing, UI design</li><li><a href="https://itch.io/profile/nephel" target="_blank">Nephel</a><strong><strong></strong>:</strong>&nbsp;Character art, cat art<strong>&nbsp;</strong><strong>&nbsp;</strong></li></ul>
<p><strong>Music:</strong></p>
<ul><li>Jazzy Vibes #36 - Loop - Smooth Jazz by <a href="https://soundcloud.com/tri-tachyon/albums" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Tri-Tachyon</a></li><li>Sazzy by <a href="https://freesound.org/people/ADnova/sounds/367661/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">ADnova</a>&nbsp;</li><li>You Like some Jazz? by <a href="https://freesound.org/people/Migfus20/sounds/559850/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Migfus20</a>&nbsp;</li><li>Game music - Jazz loops by <a href="https://freesound.org/people/anechoix/sounds/456797/" rel="nofollow noopener" referrerpolicy="origin">anechoix</a>&nbsp;</li></ul>
<p><br></p>
<p><strong>Special Thanks to my Playtesters!</strong></p>
<p>Paul,&nbsp;<a href="https://alwaysweasel.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Sven</a>, Nephel, and&nbsp;<a href="https://www.breakrpg.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Reynaldo</a>!</p>
<p><br></p>
<p>Update 1/11/2022:</p>
<p>Found a typo. Fixed it.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIzNjgzMS83MzU5NDU3LnBuZw==/original/X8fN0I.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIzNjgzMS83ODU5MDI2LnBuZw==/original/VA4aoJ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIzNjgzMS83ODU5MDI1LnBuZw==/original/WbxPNM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIzNjgzMS83MzU5NDI5LnBuZw==/original/QSUF2H.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIzNjgzMS83ODU5MDM2LnBuZw==/original/fFjktd.png]]
<p>The time for plundering is upon yee!<br>Journey through a vibrant and bustling pirate-themed open-world setting that changes day-to-day.<br><br>The game start is simple. You begin on an island, survive on it long enough to gather some materials, then build/use a temporary raft or ship (if you've purchased one) to explore more islands across the world. Throughout these islands, you will encounter various ports, eccentric NPCs, secret treasure, and dungeons.<br><br>Be wary sailor, The Red Dawn may find and hunt you down first!<br><br><strong><em>Main Features:</em></strong></p>
<ul><li>A completely open-world experience with full freedom from the start and minimal hand-holding</li><li>Light survival, crafting and RPG elements</li><li>Dry and Wet Seasons with unique hazards</li><li>Randomly generated elements such as loot, hazards and enemies making each playthrough feel different</li><li>Practice Mode with softer penalties and an alternate beginning + bonuses</li><li>Unique dialogue with NPCs and other interactions based on your characters stats</li><li>Starting Perks and Pirate Perks system</li><li>Real-time ship-to-ship combat</li><li>Developed and designed by solo dev Elushis</li></ul>
<p><strong><em>Secondary Features:</em></strong></p>
<ul><li>NPC's can be killed. You can INSTIGATE, INQUIRE and ROB them too! Responses change based on your characters equipment, bounty level &amp; stats</li><li>Various activities such as Sailing With A Crew and Raft Racing to build up your Treasure</li><li>Purchase a House in Port Arbor or Tortuga and rebuild the North Harbor Port by finding Construction Recipes and Building Materials</li><li>Form an Armada by speaking with the Harbormaster</li><li>Two seasons. 56 days. Different NPC's, treasure and events</li><li>Once you've bought a ship, form your own crew by boarding enemy ships and inquiring with NPC's</li><li>Secrets galore!</li></ul>
<p>Game is also available on Steam:</p>
<p><a href="https://store.steampowered.com/app/709490/Mutiny_Island/" rel="nofollow noopener" referrerpolicy="origin">https://store.steampowered.com/app/709490/Mutiny_Island/</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/lr2DONQUujE" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTA0NjM2LzMzNzY5NjMuanBn/original/hwAeS9.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA0NjM2LzMzNzY5NjUuanBn/original/Xzb3oN.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA0NjM2LzMzNzY5NjYuanBn/original/ND%2FT%2Be.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA0NjM2LzMzNzY5NjQuanBn/original/E5HU%2Bj.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA0NjM2LzI2MTc2NTYuanBn/original/KdVFzm.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA0NjM2LzI2MTc2NTcuanBn/original/Slxilr.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA0NjM2LzI2MTc2NTguanBn/original/M1x1%2Bf.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA0NjM2LzI2MTc3MDYuanBn/original/cxgNIP.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA0NjM2LzI2MTc3MDAuanBn/original/X87jFv.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA0NjM2LzI2MTc2OTcucG5n/original/63fIPb.png]]
<p><em>You are looking at the wishing star thinking about the things that you desire for your life. Suddenly, a Fae appears before you! This fae heard your heart’s desire and came to help you by granting you your wish. The only thing is that you need to make your wish clear to the Fae!</em></p>
<p>In this solo journaling game, your fairy Godmother visits you to grant you a wish. She asks you a series of questions in order to understand your heart's true desire. To answer her questions, you will pull from a deck of tarot cards. Using the image and/or meaning of the cards, you will construct your responses to her questions. The goal of the game is to have fun while also having a dialogue with one’s heart. How you get to that dialogue is up to you!
</p>
<p>To discover your wish, you will need:</p>
<p>Tarot cards</p>
<ul><li>A way to record your insights
</li></ul>
<p>For the price, you get access to two files. The first file is the story book version. The second file is a compressed, one page plain-text version in case you want to print it.</p>
<p><br></p>
<p>This game was written for the <a href="https://itch.io/jam/fae-jam-2021">#FaeJam2021</a><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIwMTQwOC83MDA4NzEyLnBuZw==/original/Yt2J1U.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwMTQwOC83MDA4NzEzLnBuZw==/original/7nu6oQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwMTQwOC83MDA4Nzk1LnBuZw==/original/dK5Lng.png]]
<p>_________________________________________________________________________<br></p>
<p><em><strong>Lake Ophelia. A strange little place full of fish from all around the world. Nobody is quite sure why, and it seems like most people don't really care to find out. Go ahead, sink your lure and see what you can catch.</strong></em></p>
<p>_________________________________________________________________________
</p>
<p><em><strong>We Got:</strong></em></p>
<ul><li><strong><em>30+ Fish To Catch</em></strong></li><li><strong><em>Cookin'</em></strong><br>
</li><li><strong><em>A Buncha&nbsp;Lures And Rods To Collect</em></strong><br>
</li><li><em><strong>Full Controller&nbsp;</strong><strong>Support</strong></em><br>
</li><li><strong><em>Some Other Stuff</em></strong></li></ul>
<p>_________________________________________________________________________<br></p>
<p><strong>DEFAULT KEYBOARD CONTROLS:</strong>
</p>
<p>Walk - WASD
</p>
<p>Run - Shift
</p>
<p>Inventory - Q
</p>
<p>Interact - E
</p>
<p>Cast &amp; Reel&nbsp;- Right Mouse</p>
<p>Menu - Esc</p>
<p>_________________________________________________________________________
</p>
<p><strong>CREDITS:</strong>
</p>
<p>Created By:&nbsp;<a href="https://bryce-bucher.itch.io/" target="_blank">Bryce Bucher</a>
</p>
<p>Music:&nbsp;<a href="https://simonepeltier.bandcamp.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Simone Peltier</a>
</p>
<p>Additional Programming: <a href="https://twitter.com/FeverDevJohnny" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Johnny Feverdream</a></p>
<p>Additional Assets: <a href="https://twitter.com/ModusPwnin" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Modus Interactive</a>, <a href="https://twitter.com/kitetOfficial" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Kitet</a>, <a href="https://twitter.com/Goim3d" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Tim</a></p>
<p>VHS Conversion: <a href="https://twitter.com/Socpens" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Scorpy</a></p>
<p>_________________________________________________________________________
</p>
<p><strong>Follow me on Twitter:</strong>&nbsp;<a href="https://twitter.com/98DEMAKE/" rel="nofollow noopener" referrerpolicy="origin"></a><a href="https://twitter.com/BouletMom" rel="nofollow noopener" referrerpolicy="origin"></a><a href="https://twitter.com/BryceBucher" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/BryceBucher</a>
</p>
<p>_________________________________________________________________________
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI1NDYzMy83MzE3ODI0LnBuZw==/original/ns9NX7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1NDYzMy83MzE3ODMwLnBuZw==/original/%2B%2BGB4e.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1NDYzMy83MzE3ODI3LnBuZw==/original/ZhQXmK.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1NDYzMy83MzE3ODI4LnBuZw==/original/BfxGwM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1NDYzMy83MzE3ODI1LnBuZw==/original/BRQZgS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1NDYzMy83MzE3ODI5LnBuZw==/original/%2BgnU7N.png]]
<p><strong>M</strong><strong>YTHMAKER</strong> is a&nbsp;journaling game for one player. You tell your story as&nbsp;the titular <strong>Mythmaker</strong>, the legendary antagonist in myths and legends — and forge their story over time in relation to&nbsp;<strong>Challengers</strong>, the protagonists of these legends. They will either rise to fame or fall into obscurity&nbsp;through meeting you.</p>
<p>You are bound to your Purpose. You cannot die. You are always part of a Challenger's story.</p>
<p>This game requires no dice or cards. It needs time, pen and paper or another device to write with, and quiet.</p>
<p>This game is based, with much appreciation, on Mousehole Press's Lost and Found SRD.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIwNDU2Mi83MDY5NTUzLnBuZw==/original/fZaFBw.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwNDU2Mi83MDY5NTQzLnBuZw==/original/sUiFM0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwNDU2Mi83MDY0NzA5LnBuZw==/original/h48wQm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwNDU2Mi83MDY0NzA4LnBuZw==/original/9rFHaX.png]]
<p><strong><img src="https://img.itch.zone/aW1nLzc2ODE1MDEucG5n/original/bVf0jS.png" loading="lazy"><br></strong></p>
<p><strong>Naughty Elves</strong>&nbsp;is a Christmas themed 2D pixelart puzzle game. Your goal is to help Santa Claus to get back the presents from the naughty elves who want them all for themselves.<br></p>
<p><em>You better watch out, you better not cry<br>You better not pout, I'm telling you why<br>Santa Claus is coming to town</em><br><br>... but wait, what's this:<br><br>His minions have stolen all the gorgeous presents because they want them all for themselves!<br>It is time for a hero to help Santa get back the presents from these&nbsp;<strong>Naughty Elves</strong>.</p>
<ul><li>Hit the elves with a snowball to knock them out!</li><li>Make use of the environment to reach them in their tiny huts!</li><li>Get back the presents so the children of the world can celebrate a merry Christmas!</li></ul>
<p>Oh, you better watch out, you better not cry<br>Better not pout, I'm telling you why<br>Santa Claus&nbsp;<strong>is actually coming to town</strong>!</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/qPJamkMZnI0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjA2Nzc4Lzk2ODcxMC5wbmc=/original/SHbEMu.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjA2Nzc4Lzk2ODcwNy5wbmc=/original/604Un%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjA2Nzc4Lzk2ODcwOS5wbmc=/original/5IwT9b.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjA2Nzc4Lzk2ODgxMC5wbmc=/original/ym4k9j.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjA2Nzc4Lzk2ODgxMy5wbmc=/original/xqQqMM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjA2Nzc4Lzk2ODgxNC5wbmc=/original/2sbN5s.png]]
<h4 class="text-center">Out now!&nbsp;</h4>
<p>We've updated Nauticrawl&nbsp;with&nbsp;Chinese and Russian! As well as&nbsp;English, German, Spanish, French and Italian!</p>
<p class="text-center"><br>“...a complicated board of screens and levers and buttons begging to be pressed and pulled—the best kind of UI. It looks fantastic.”</p>
<p><a href="https://www.pcgamer.com/learn-how-to-pilot-a-stolen-alien-vehicle-in-nauticrawl/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">PC Gamer</a></p>
<h5>Join our community</h5>
<p></p>
<h4><a href="https://discord.gg/Uh3Yc43" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzM0MTMwMDUucG5n/original/SS2tzu.png" alt="Discord" title="Discord" loading="lazy"></a></h4>
<h4></h4>
<h4>About this game</h4>
<p></p>
<h4><img src="https://img.itch.zone/aW1nLzI0MDcxNzUucG5n/original/pyUXXk.png" style="color: inherit; font-size: inherit" loading="lazy"></h4>
<p>In a grasp for salvation with sentinels closing in, you've stolen a Nauticrawl. You check the radar, turn a few knobs, press some buttons… then you realize</p>
<p><em>I don’t know how to move this hunk of metal...</em><br><br>If the pursuing forces or the crushing atmosphere don't kill you first, the Nauticrawl - designed to be piloted only by the ruling elites - just might. This instrument, your only hope of survival, could also be your demise.<br></p>
<p><img src="https://img.itch.zone/aW1nLzI0MTAwMDIuZ2lm/original/YTlgCk.gif" loading="lazy"><br></p>
<p>With the right amount of experimentation your escape plan just might succeed. Pull levers, redirect power, hack devices, uncover communications, try&nbsp;<em>anything</em>&nbsp;and&nbsp;<em>everything</em>.&nbsp;</p>
<p>You've heard the rumors. You know many have died doing what you're doing. But as the corners of the story pull back and you learn your way around the consoles, you just might get off this wretched rock.<br><br><strong>Nauticrawl</strong>&nbsp;unfolds through turn-based exploration, as you puzzle out how everything fits together. Begin each run anew, but bring with you what you’ve learned along the way.&nbsp;<br><br>Think it through. Make mistakes and experiment.&nbsp;<br><em><br>You can do this.</em><br></p>
<p><img src="https://img.itch.zone/aW1nLzI0MTAwMDMucG5n/original/NK6Yf4.png" style="color: inherit; font-size: inherit" loading="lazy"></p>
<p>~</p>
<p>Twitter:&nbsp;&nbsp;<a href="https://twitter.com/nauticrawl" rel="nofollow noopener" referrerpolicy="origin">@nauticrawl</a><br>A game by&nbsp;<a href="https://twitter.com/andreintg" rel="nofollow noopener" referrerpolicy="origin">@andreintg<br></a>Published by <a href="https://armorgamesstudios.com/" rel="nofollow noopener" referrerpolicy="origin">Armor Game Studios<br></a></p>
<p>News from the press:<br><a href="https://www.pcgamer.com/learn-how-to-pilot-a-stolen-alien-vehicle-in-nauticrawl/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">pcgamer.com</a><br><a href="https://www.pcinvasion.com/nauticrawl-is-a-steampunk-ship-panel-simulation-out-on-september-16/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">pcinvasion.com</a><br><a href="https://www.flickeringmyth.com/2019/08/atmospheric-adventure-nauticrawl-20000-atmospheres-gets-a-release-date/" target="_blank" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">flickeringmyth.com</a><br><a href="https://www.hardcoregamer.com/2019/08/14/puzzling-out-a-lumbering-beast-of-a-machine-in-nauticrawl-release-date-trailer/354681/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">hardcoregamer.com</a><span></span><br><a href="https://nichegamer.com/2019/08/15/puzzle-adventure-nauticrawl-launches-in-september/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">nichegamer.com</a></p>
<p>Early prototype&nbsp;press:<br><a href="http://indiegames.com/2018/05/20000_atmospheres_promises_a_d.html" target="_blank" rel="nofollow noopener" referrerpolicy="origin">rockpapershotgun.com<br>indiegames.com</a><br><a href="http://www.siliconera.com/2017/07/04/piloting-complex-machine-way-explore-20000-atmospheres-hostile-world/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">siliconera.com</a><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/PDPUQpsELXk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQ3MzU5LzEyNjA4MzIuZ2lm/original/14HSlP.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQ3MzU5LzEyNzEyNDMuZ2lm/original/I0FftG.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQ3MzU5LzI0MDcxODcucG5n/original/CutwO4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQ3MzU5LzI0MDcxODkucG5n/original/Nfgc4t.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQ3MzU5LzI0MDcxOTAucG5n/original/otTzv8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQ3MzU5LzI0MDcxOTEucG5n/original/Q1sPpq.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQ3MzU5LzI0MDcxOTIucG5n/original/mRfc%2BQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQ3MzU5LzM0MTI3NjUuanBn/original/YwqKYq.jpg]]
<p><img src="https://img.itch.zone/aW1nLzE2NzAwNTAuZ2lm/original/4AxWO0.gif" loading="lazy"><br></p>
<p>Nebs 'n Debs is a new game for the original Nintendo Entertainment System. Run, jump, and dash your way through 12 levels as you search for the missing parts of Debs's ship to escape the hostile alien planet Vespasian 7MV! Nebs 'n Debs runs on the same type of game cartridge as the original Super Mario Bros.</p>
<h1>Features</h1>
<ul><li>    12 unique levels</li><li>
<strong>HAAAAARRRRRDDDDDDDDD </strong>Mode (unlocked after beating all 12 levels)
</li><li>Run-jump-dashing-platforming-crystal-collecting action</li></ul>
<p><img src="https://img.itch.zone/aW1nLzE2NzAwNTEuZ2lm/original/28lAa%2B.gif" loading="lazy"></p>
<p><img src="https://img.itch.zone/aW1nLzE2NzAwNTIuZ2lm/original/gHka5t.gif" loading="lazy"></p>
<figure><img src="https://img.itch.zone/aW1nLzE2NzAwNTQuZ2lm/original/Srw78X.gif" loading="lazy"><br></figure>

[img width=500 [https://img.itch.zone/aW1nLzc1NTI3ODguanBn/original/EQrnA%2F.jpg]]
<p><strong>Description:<br><br></strong>In this puzzle-platform game, you must make mistakes in order to progress. Place blocks when you fail, and shape the level in your favor.</p>
<p>Discover how to use blocks with different effects to escape from within yourself while learning to live with your mistakes.<br></p>
<p><br></p>
<p><strong>Controls:</strong></p>
<p>W/Space - jump&nbsp;</p>
<p>A - move left&nbsp;</p>
<p>D - move right&nbsp;</p>
<p>Esc - pause&nbsp;</p>
<p>&nbsp;Z - Undo<br></p>
<p><br></p><p><strong>Made by:</strong>
</p>
<p><a href="http://mikomoares.itch.io/" target="_blank">mikomoares</a>
</p>
<p><a href="http://roguetaver.itch.io/" target="_blank">roguetaver</a>
</p><p><br></p>
<p><span></span></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/lZmwt5M3PWM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMxNzQyMC83NjYwODYxLnBuZw==/original/SlCWL5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMxNzQyMC83NjYwODYyLnBuZw==/original/oJdsiI.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMxNzQyMC83NjYwODU5LnBuZw==/original/g0ZSwq.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMxNzQyMC83NjYwODY0LnBuZw==/original/Y3AqZh.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMxNzQyMC83NjYwODYwLnBuZw==/original/XTjT4n.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMxNzQyMC83NjYwODYzLnBuZw==/original/RshHIw.png]]
<p>You are Jillian Cleary: an ex-spy on the run, framed for treason and hunted by your former agency. You must move in secret, survive off the grid, and find a way to clear your name. Old friends and new allies will lend their support; but with the eyes of the world upon you, who can you trust?</p><h3>Stealth</h3><p>Keep in the shadows, move in silence, and stay out of sight. Escape from tight situations by scrambling your enemies' vision. Enhance your performance with black market stims.</p><h3>World</h3><p>Explore a concrete-and-neon brutalist vision of the modern surveillance state. Undertake eight missions spanning two continents. Meet a diverse range of interesting characters.</p><h3>Music</h3><p>Featuring an 18-song soundtrack by electronic rock band The Home Conversion.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/llginnqhMBI" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjQ0NDgvMjkxMjExLmpwZw==/original/K0gnMj.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjQ0NDgvMjkxMjEwLmpwZw==/original/cBX4Xq.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjQ0NDgvMjkxMjA4LmpwZw==/original/r%2FfVby.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjQ0NDgvMjkxMjEyLmpwZw==/original/Vw7ZrZ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjQ0NDgvMjkxMjA5LmpwZw==/original/kjgvNQ.jpg]]
<h2>You wake up with no memory. Your day is starting off great!</h2>
<p>Nepenthe is a hand-drawn RPG with a terrible sense of humor. Set in the strange world of Carithia, you play as a creepy bald dude who lost his memory. Yes, you read that right. Meet some very polite monsters, and battle both them and your sense of self-dignity in epic bullet-hell fight scenes.<br></p>
<h2>Definitely not a potato in a trench coat</h2>
<p>Sporting a childish hand-drawn art style, Nepenthe is sure to either make you love it at first glance, or throw your computer away. The developer of Nepenthe takes no responsibility for such actions, and recommends drinking chamomile tea. “It’s really soothing,” he says. “You should really try it one day,” he says. “What was I talking about?” He asks. There is an awkward pause.<br></p>
<h2>designed for non-psychopaths, mostly</h2>
<p>With three different endings, and countless side-quests, Nepenthe is designed for ultimate replayability. This can get quite annoying if you need to share a computer with someone else. Trust me. Almost every monster can be spared, for added challenge and less violence. They can also be killed - don’t worry, you psychopaths! If you enjoy dad-jokes or Chinese water torture, Nepenthe is for you.</p>
<figure><img alt="Be psychoanalyzed by a monster!" class="" src="https://ksr-ugc.imgix.net/assets/018/707/222/5a267916d118a94973773cf01d8395b4_original.jpg?w=680&amp;fit=max&amp;v=1507739189&amp;auto=format&amp;q=92&amp;s=daffa43130ba942bd7ac4f6a8cfd0468" style="margin: 0px; padding: 0px; border: 0px; max-width: 100%" loading="lazy"><figcaption>Be psychoanalyzed by a monster!</figcaption></figure>
<p>Nepenthe is designed for both casual and hardcore gamers alike. Explore two "modes," "Adventure" or "Story," to find the play-style that best suits you.</p>
<figure><img alt="Story or Adventure?" class="" src="https://ksr-ugc.imgix.net/assets/018/707/461/b3332a2eecf4628253a5c240f021f637_original.png?w=680&amp;fit=max&amp;v=1507739894&amp;auto=format&amp;lossless=true&amp;s=ca560d3867151ae761be3839a8fac6c4" style="margin: 0px; padding: 0px; border: 0px; max-width: 100%" loading="lazy"><figcaption>Story or Adventure?</figcaption></figure>
<p>"Adventure" mode is a bullet-hell extravaganza, with ever increasing difficulty as the game progresses.</p>
<figure><img src="https://img.itch.zone/aW1nLzEwNTIwNTkucG5n/original/ybx3sC.png" loading="lazy"><figcaption>Battling legislation&nbsp;is always hard</figcaption><p><br></p>
<figcaption><br></figcaption></figure>
<p>"Story" mode's battles are easy one-click things, designed for those who just want the story, not the gameplay.</p>
<p><img src="https://img.itch.zone/aW1nLzEwNTIwNTMucG5n/original/S1LF5t.png" loading="lazy"></p>
<figcaption>Battle Ninjas! ...if you want to, of course, we're not suggesting you actually do it..</figcaption>
<p>Join us, as we stare into the Orb together.</p>
<p>(also, feel free to&nbsp;join the Nepenthe Discord&nbsp;<a href="https://discord.gg/VtcyUB" rel="nofollow noopener" referrerpolicy="origin">https://discord.gg/VtcyUB</a>)</p>
<figure><img alt="Stare into the orb..." class="" src="https://ksr-ugc.imgix.net/assets/018/707/375/d0d4312bdf50744c2b47c02b4aa64fcf_original.png?w=680&amp;fit=max&amp;v=1507739618&amp;auto=format&amp;lossless=true&amp;s=4255e905117725aad4cfeca048f9d67a" style="margin: 0px; padding: 0px; border: 0px; max-width: 100%" loading="lazy"><figcaption>Stare into the orb...<br></figcaption></figure>

<iframe width="720" height="450" src="https://www.youtube.com/embed/UoP9NH76P0w" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTc0NDAxLzEwNTIwNDcuanBn/original/X5nqPe.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc0NDAxLzEwNTIwNDgucG5n/original/%2B4r9I4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc0NDAxLzg1NjkzMy5qcGc=/original/luI%2Bx6.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc0NDAxLzEwNTIwNDUuanBn/original/FoBdwB.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc0NDAxLzEwNTIwNDQuanBn/original/eMfxMH.jpg]]
<h2>No map for these territories.</h2>
<p><strong>60 pages, 22k words, 52 thoughts, 21 pictures, 8 campaign types, 4 interconnected settings with different sci-fi flavours, 11 vehicle modifications, 9 drugs, 13 stigmata, 3 appendixes, 1 intuitive game system, 1 deck of cards, 1 procedural toolkit to create infinite sectors.</strong>&nbsp;<br></p>
<h2>The future have been cancelled.&nbsp;</h2>
<h2></h2>
<p>The centralised consumer society has fallen under its own weight following the Black Monday stock market crash of 1987 and the Black Friday revolution of 1989.<span class="">&nbsp;</span><br></p>
<p><br></p>
<p><strong></strong><strong>Pirate utopias</strong> face off against the autocratic power of titanic <strong>hyper-technologic Citadels</strong>, endlessly built by self-replicant and self-repairing automatons.</p>
<p><strong>Solar towers and biomass generators</strong> sporadically flare-up in the boundless Off-grid: a melting pot of <strong>drifters and revolutionaries</strong>, cargo cults and acid communes, plowed by slavers’ convoys and tekno tribes.
</p>
<p><strong>Obsolete and futuristic</strong> technologies coexist next to each other: neural headsets for accessing K-space and organic 3d printers. Punch cards and second-hand cyber limbs. Wars are fought with laser weapons and plasma cutters, on radio frequencies as well as on Arpanet nodes. <br><strong>Tears in reality</strong> overlook the ever-changing xenoscapes of the Interzone, lost in its folds are hidden forgotten civilisations, alien technology and inorganic demons.
</p>
<p><strong>There’s no map yet for these territories.</strong></p>
<p>Utopia and dystopia face each other in a clash of civilisations, while entropy flows undisturbed.</p>
<p><strong>Thoughts matter</strong>: Technonikilist or Algomaster? Insurrectionist or electric sheep? Mercenary or merchant? Founder or destroyer?<span class="">&nbsp;</span>
</p>
<p>The truce is over, the hunt is on!<span class="">&nbsp;</span>
</p>
<p>Join the revolution, or the destruction.&nbsp;</p>
<h2></h2>
<h2>weird and wonderful Cyberpunk&nbsp;</h2>
<p></p>
<p><a href="https://mangustaexpress.com/product/network-23-rpg" rel="nofollow noopener" referrerpolicy="origin">You can order the print version HERE</a></p>
<p>And&nbsp;<a href="https://www.youtube.com/watch?v=11vE_iGTRVY&amp;t=1s" rel="nofollow noopener" referrerpolicy="origin">Here a tutorial I filmed for helping you print and bind this thing</a></p>
<p><br></p>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA0Njg1MC81OTgzMzkzLnBuZw==/original/jTyzWV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0Njg1MC81OTgzMzM0LnBuZw==/original/I5DzAg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0Njg1MC81OTgzMzM1LnBuZw==/original/CSYWd0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0Njg1MC81OTgzMzM2LnBuZw==/original/OP6P8B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0Njg1MC81OTgzMzM3LnBuZw==/original/LUSqks.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0Njg1MC81OTgzMzM4LnBuZw==/original/hfFgWu.png]]
<p>New Heights is the name some have given to the world’s one and only travelling ferris wheel: the one that has come to your hometown at long, long last. No form of payment is required for a ride, simply take a seat inside your carriage (or you may choose to stand if you prefer).&nbsp;</p>
<p>The Day and Night versions of the game are the same game with different covers and layouts: choose which one depending on the time you wish to take your ride&nbsp;or whichever you prefer aesthetically!</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIyNjIyMy83MTU4MTk2LnBuZw==/original/Gvysa2.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIyNjIyMy83MTc1MDg2LnBuZw==/original/1YfLMY.png]]
<div class=""><iframe src="https://www.youtube.com/embed/DlGOJmfpnow" allowfullscreen="" width="500" height="281" frameborder="0"></iframe></div>
<p>Manipulate your orbs and the fabric of gravity in order to achieve a perfect synergy in this space-themed puzzler. Complete dozens of levels or put your skills to the test with the 4 other game modes. Unlock new prizes, including lore, new music and backgrounds, or just chill by taking photos, all while listening to numerous originally composed tracks.</p>
<p>Setup all of your orbs gravitational fields and then play out your scenario to bring them all together and become the master of gravity<strong>.</strong><br></p>
<p><strong>⭕ Over 50 unique levels</strong><strong></strong><strong></strong><strong></strong><strong></strong><strong></strong></p>
<strong>
<p>⭕ 5 exclusive game modes, including Sandbox &amp; Endless</p>
<p>⭕ Soundtrack with over 12 songs</p>
<p>⭕ Dozens of prizes, lore packs and backgrounds<strong><strong></strong></strong><strong><strong></strong></strong><strong><strong></strong></strong><strong>
<strong></strong></strong><br></p></strong><p>
</p>
<p><strong>Gameplay</strong></p>
<p><em>Newtraction </em>is a puzzler in which the objective is to bring all of your orbs together in a certain amount of time. Select an orb to modify it's gravitational field using your given power, or harvest back power from other orbs, and then play out your scenario. Orbs with more powerful field attract others more, while stars remain fixed and their field cannot be modified. The goal is simple, make all of your orbs touch the central star. Unlock prizes, music, even new game modes and discover the lore of Newtraction's universe by completing prize tracks.<br></p>
<p><br></p>
<p>Originally rated top 5% in Brackeys Game Jam 2021.1.</p>
<p><a href="https://zexsoft.itch.io/newtraction-ost">Newtraction OST<br></a></p><p><a href="https://zexsoft.itch.io/project-marble">Project Marble</a><a rel="nofollow noopener" referrerpolicy="origin"></a><a rel="nofollow noopener" referrerpolicy="origin"></a><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/DlGOJmfpnow" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTI1NDY1LzY2MzMxMjUuanBn/original/tUkj1p.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTI1NDY1LzY2MzMxMzEuanBn/original/ANj3gk.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTI1NDY1LzY1Njg1MzcucG5n/original/jthjm0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTI1NDY1LzY2MzMxMjQucG5n/original/ym8q2Y.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTI1NDY1LzY2NTY0NjAucG5n/original/hwiq3n.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTI1NDY1LzY2MzMxMjYucG5n/original/JLX8u7.png]]
<$list filter="[all[current]has:field[url]]">
<$vars prevSection={{{ [has:field[url]before{!!title}] }}}
       nextSection={{{ [has:field[url]after{!!title}] }}}
			 upChapter={{!!parent}}>
<div class="gtw-section-manager">
	<div style="text-align: left;">
		<$list filter="[<prevSection>!is[blank]]">
			←&nbsp;<$link to=<<prevSection>>>Previous: <<prevSection>></$link>
		</$list>
	</div>
	<div style="text-align: right;">
		<$list filter="[<nextSection>!is[blank]]">
			<$link to=<<nextSection>>>Next: <<nextSection>></$link>&nbsp;→
		</$list>
	</div>
</div>
<div style="text-align: center; clear: both; padding-top: 1em;">
<!-- I have no idea why this div needs to be here, but everything breaks otherwise. -->
</div>
</$vars>

<style>
div.gtw-section-manager div {
	/*border-top: 1px solid <<color table-border>>;*/
	/*padding-top: 10px;*/
	/*margin-top: 6ex;*/
	width: 50%;
	float: left;
}
</style>
</$list>
<p>A mysterious serial killer stalks the streets of modern-day Paris. The body count rises, and the police are no closer to catching the culprit. You are a taxi driver and survivor to the killer’s most recent attacks, having barely escaped with your life. You have seven nights to help find the killer, or the police will pin it on you. These next few shifts will be far from ordinary or safe…<br> <br>Night Call is a non-linear, narrative-driven noire investigation game. You are no detective, but you do have a gift. Around you, people feel more at ease. They talk. They share their thoughts, their emotions, their stories… their <em>secrets.</em> To passengers, you are more than just a driver; you are also a friend, a confidant, a shrink. A voyeur catching a glimpse under the masked but very real lives throughout the City of Light. And you’ll need to play these roles well if you want to catch the killer.<br> <br>Use the limited time you have available each night to gather clues while earning money to pay your bills. Drive passengers to their destinations, hear their stories and choose your responses carefully—some are just regular people with a tale to tell, while others might reveal a clue that’s key to your investigation. Follow the right leads to uncover new info about the suspects, and don’t forget to make enough money to buy gas and pay your bills.<br> <br>Can you solve the mystery before it’s too late? Better hurry—both the clock and the meter are running…</p>
<p><br></p>
<p><em></em><img src="https://img.itch.zone/aW1nLzgyOTk3MTYuZ2lm/original/CNi9KU.gif" loading="lazy"><br></p>
<p><br></p>
<p>🚖 <strong>A VIVID AND ORIGINAL CAST: </strong>Meet over 85 original, surprising, realistic characters and share their lives for a few brief moments. Some may move you, inspire you, or upset you. Listen and help - they might have something useful for you.</p>
<p>🚖 <strong>GORGEOUS GAME NOIRE STYLE: </strong>Every character and location are lovingly hand-drawn in stunning black &amp; white, evoking the pure tension of the noire style of art.</p>
<p>🚖 <strong>INVESTIGATION VS. SURVIVAL: </strong> Will you forsake information for more money, or sacrifice your income to get the info you need? Make your choices quickly - time is running out!</p>
<p>🚖 <strong>MULTIPLE CASES, MULTIPLE KILLERS:</strong> Gather clues across three distinct cases. Can you uncover the identity of the killers? Be careful: a guilty suspect in one case may be completely innocent in the next.</p>
<p>🚖 <strong>ROAM THE STREETS:</strong> Investigating a murder is tough work. Free Roaming mode lets you relax and peruse the streets of Paris. Enjoy an interesting conversation or ten!</p>
<p><br></p>
<p>Game by <a href="https://twitter.com/MonkeyMoonGames" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Monkey Moon</a> &amp; <a href="https://twitter.com/BlackMuffinGame" target="_blank" rel="nofollow noopener" referrerpolicy="origin">BlackMuffin</a><span class=""><span class=""></span></span>.<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/NeNfS5qkflE" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNDI1OC84Mjk5OTU1LmpwZw==/original/n4smEJ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNDI1OC84Mjk5OTUzLmpwZw==/original/3CQeR%2F.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNDI1OC84Mjk5OTU2LmpwZw==/original/FAB7Bm.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNDI1OC84Mjk5OTU0LmpwZw==/original/hPOvW6.jpg]]

<h2>The year is 1994 and it is the future.</h2>
<p>NO THING is a minimalistic surreal action game set in a totalitarian regime of future. <br></p><p><br>Tells the story of an office clerk who is sent with an important message to the Queen of Ice.</p>
<h2>NO THING Features:</h2>
<ul><li>radical gameplay </li><li>migraine inducing </li><li>weird storyline </li><li>retro surrealistic full 3D graphic </li><li>full voiceover and speech synthesis </li><li>chiptune sounds </li><li>original cold wave music </li><li>simple controls </li><li>easy to play, very hard to master </li><li>platforms: Windows, Mac, Linux </li><li>the year is 1994 and it is the future</li></ul><h3>NO THING soundtrack: &nbsp;<a href="https://evilindiegames.bandcamp.com/releases" rel="nofollow noopener" referrerpolicy="origin">[here]</a></h3><h3>NO THING NINTENDO SWITCH: &nbsp;<a href="https://www.nintendo.com/games/detail/no-thing-switch/" rel="nofollow noopener" referrerpolicy="origin">[here]</a></h3>

<iframe width="720" height="450" src="https://www.youtube.com/embed/am7CaNBIa04" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjU3NzAvMjk3NzY5LnBuZw==/original/HJPJQC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjU3NzAvMjk3NzYwLmdpZg==/original/%2Fcom5m.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjU3NzAvMjk3NzYyLmdpZg==/original/Y5cMEp.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjU3NzAvMjk3NzYzLmdpZg==/original/UhX7Kz.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjU3NzAvMjk3NzY0LmdpZg==/original/Hyka32.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjU3NzAvMjk3NzY1LmdpZg==/original/IYkJcd.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjU3NzAvMjk3NzY3LmpwZw==/original/2dpMZ1.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjU3NzAvMjk3NzY2LmpwZw==/original/ZgHAc1.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjU3NzAvMjk3NzU5LmdpZg==/original/PzAEFa.gif]]
<p><iframe height="50px" scrolling="no" src="https://embed.keymailer.co/g/games/104861/request_button/_9287ed7ff2" style="" width="200px"></iframe><br></p>
<p><strong>⚽Update 0.6.0 out now!&nbsp;⚽<br></strong></p>
<p><strong></strong>⚽ Nonsense Soccer ⚽ is a platformer-soccer-hybrid for people who like chaotic local multiplayer games. At its core it's a fun little soccer game with simple controls for up to 4 players.&nbsp; With 8 cool multiplayer arenas and a short but sweet target practice mode for solo players, there's already hours of fun to be had with, with more content to be added in the future.<br></p>
<p><img src="https://img.itch.zone/aW1nLzI5NTUxODAuZ2lm/original/lVAhwR.gif" loading="lazy"><br></p>
<p><strong>⚽Update 0.6.0 out now!&nbsp;⚽</strong><br></p>
<p><strong>Changelist:</strong></p>
<ul><li><strong>Menu overhaul! Menus are prettier, I think :)</strong></li><li><strong>New replay feature! Each goal now has a replay :)
</strong></li><li><strong>Visual improvements here and there
</strong></li><li><strong>Fixed: Sometimes the ball and players were stuck inside walls
</strong></li><li><strong>Improved behaviour when running up and down slopes</strong></li></ul>
<p><strong>This game is in an early access state and does not represent the final quality of the product. Expect weird bugs, things looking &amp; behaving crazy and all the other fun things and some work-in-progress things that make the game not fun. It's highly recommended to give feedback and bug reports in the community, send me video links to YouTube, ping me on Twitter and all the stuff like that.</strong><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/1AqSKwG3CXg" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTQxOTQ1LzMwMDM0NjQuZ2lm/original/mmY6O4.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQxOTQ1LzMwMDM1NTEuZ2lm/original/EgNGTG.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQxOTQ1LzQ0ODUxMzQucG5n/original/HBdwvo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQxOTQ1LzQ0ODUxMzIucG5n/original/JhMFUt.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQxOTQ1LzQ0ODUxMzcucG5n/original/Q%2Fnly8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQxOTQ1LzQ0ODUxMzUucG5n/original/2AECyG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQxOTQ1LzQ0ODUxMzMucG5n/original/IDEOI0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQxOTQ1LzQ0ODUxMzYucG5n/original/3JzfkH.png]]
<h2>Reviews</h2><p>“Very different. Excitingly different.” <br><a href="http://www.rockpapershotgun.com/2012/11/15/heres-a-procedurally-generated-permadeath-stealth-game/" rel="nofollow noopener" referrerpolicy="origin">Rock Paper Shotgun</a> <br><br>“Pretty damn good stealth game, actually” <br><a href="http://www.youtube.com/watch?v=eQfqZEw5i5c" rel="nofollow noopener" referrerpolicy="origin">TotalBiscuit</a></p><h2>About This Game</h2><p>You are a robot in an office building. You have to eat furniture and not get caught. A mysterious story unfolds.&nbsp;</p><p><br>Not The Robots is this year’s most exciting Roguelike Stealth Furniture Eating Simulator. It’s a game with random levels, permadeath, and the goal of eating furniture. Same furniture is also your stealth cover. </p><ul><li>A seven-building Campaign Mode of increasingly brutal (and fully procedural) levels 
</li><li>Fearsome machine-gun-equipped patrolling guards to avoid and trick 
</li><li>Spotlights, lasers, bombs, and other traps to sidestep 
</li><li>Tons of crafty gadgets to master 
</li><li>Contains an unlockable sequel to "You Find Yourself In A Room," a previous game from 2DArray 
</li><li>Short/medium/long game modes for play sessions of any size 
</li><li>Mysterious and fully-voiced storyline to gradually explain the game's strange setting 
</li><li>Controller support 
</li><li>The year's most exciting furniture-eating stealth game!</li></ul><h2>About 2DArray</h2><p>2DArray is previously known for web game hits like&nbsp;<a href="http://armorgames.com/play/4918/the-company-of-myself" target="_blank" rel="nofollow noopener" referrerpolicy="origin">The Company of Myself</a>,&nbsp;<a href="http://armorgames.com/play/13070/fixation" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Fixation</a>,&nbsp;<a href="http://armorgames.com/play/12390/fisher-diver" rel="nofollow noopener" referrerpolicy="origin">Fisher-Diver</a>, and&nbsp;<a href="http://www.newgrounds.com/portal/view/494129" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Spewer</a>. This is their first commercial game, supported by tinyBuild GAMES.&nbsp;</p><ul><li>Follow <a href="http://twitter.com/2darray" rel="nofollow noopener" referrerpolicy="origin">@2DArray</a></li></ul><h2>About tinyBuild GAMES</h2><p>tinyBuild GAMES is an indie game development and publishing company. <a href="http://store.steampowered.com/app/227280" rel="nofollow noopener" referrerpolicy="origin">No Time To Explain</a> is their first game. It came out of a successful Kickstarter and Greenlight adventure. They're currently working on a bunch of games: </p><ul><li>Co-developing <a href="http://store.steampowered.com/app/207140/" rel="nofollow noopener" referrerpolicy="origin">SpeedRunners</a> -- currently in Early Access on Steam 
</li><li>Working with 3rd party devs on games like <a href="http://store.steampowered.com/app/257120/" rel="nofollow noopener" referrerpolicy="origin">Not the Robots</a> (live on Steam) 
</li><li>Preparing to release <a href="http://www.youtube.com/watch?v=AcAI1yClATw&amp;list=UUHLuN_JL66bD8fdJWmQ-gNw&amp;feature=c4-overview" rel="nofollow noopener" referrerpolicy="origin">Fearless Fantasy</a> and other unannounced titles 
</li><li>Unannounced super-secret in-house game</li></ul><ul><li>Follow <a href="http://twitter.com/tinybuild" rel="nofollow noopener" referrerpolicy="origin">@tinyBuild</a></li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/VchorougyuA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI0OTYvNDAyNjcuanBn/original/ZE%2F7db.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0OTYvNDAyNjguanBn/original/kfu88v.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0OTYvNDAyNjkuanBn/original/cav2XN.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0OTYvNDAyNzEuanBn/original/4xaZHf.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0OTYvNDAyNzIuanBn/original/X0kMG9.jpg]]
<p>O.R.B.I.T. Link is a rules-light SciFi miniatures skirmish game. Players battle against one another with teams of infantry and mechanized units, struggling to regain control of their ancestral homeworlds.</p>
<p>Success in the game relies heavily on the use of your O.R.B.I.T. units, large robotic support platforms that act as backbone of your assault force.&nbsp;When placed carefully an O.R.B.I.T. can help infantry rapidly redeploy and seize high-value targets.</p><p>The game is in "early access" while I rethink themeing and refine the mechanics. If I see an uptick in interest I'll further revisit the game with updated art and polishing!&nbsp;</p>
<p>Cover art adapted&nbsp; and used with permission from the&nbsp;&nbsp;<em>Stars Without Numbers Art Pack.&nbsp;</em>&nbsp;Original image by&nbsp;Tan Ho Sim:<a href="https://www.deviantart.com/alientan" rel="nofollow noopener" referrerpolicy="origin">https://www.deviantart.com/alientan</a><span></span><span></span><span></span></p>
<p>FAQ</p>
<p>28mm Scale: I used miniatures ranging from 25-40mm in scale for Infantry units, and 1:144 Gundam models for the O.R.B.I.T. units but action figures or large Transformers would also work well!</p>
<p>Basing:&nbsp;&nbsp;I recommend ~75mm base for the O.R.B.I.T. but any size will work as long as it is consistent across the match.&nbsp;</p>
<p>Playing in 15mm or Smaller: To scale the game down for 15mm or smaller I would recommend replacing all use of&nbsp;inches with centimeters. Adjust the playing surface size proportionally. 15mm infantry partnered with a 28mm scale mech or vehicle has a very nice visual sizing if you wish to pull from multiple areas of your miniature collection.</p>

[img width=500 [https://img.itch.zone/aW1nLzcyNzYxMjUucG5n/original/82SAeo.png]]
<p><strong>Players:</strong> 2 - 4&nbsp;</p>
<p><strong>Ages: </strong>12+ (cartoon violence)</p>
<p><strong>Avg Playtime: </strong>30 - 60 minutes</p>
<p><strong>Download includes separate&nbsp;full color and black &amp;&nbsp;white print sheets!</strong></p>
<p><strong><a href="https://www.thegamecrafter.com/games/odds-irons:-dino-combat-racing" rel="nofollow noopener" referrerpolicy="origin">Full retail version available on TheGameCrafter.com!!</a></strong></p>
<p><strong><a href="https://steamcommunity.com/sharedfiles/filedetails/?id=1636289783" rel="nofollow noopener" referrerpolicy="origin">Also available on Steam Workshop&nbsp;for Tabletop Simulator!!!<br><br></a>-------------------------------------------------------------------------------------------------------</strong></p>
<p>In <strong>ODDS &amp; IRONS: <em>Dino Combat Racing</em></strong><em>&nbsp;</em> players compete in a Victorian derby using prehistoric birds called Moamegus. Players pick their Moamegus species, and hire a jockey from a diverse cast of&nbsp;characters.&nbsp; Once the race begins&nbsp;they'll have to&nbsp;avoid obstacles, use unique weapons, and make the most of their feathery steed's stats and jockey's abilities.&nbsp;</p>
<p>First one to reach the finish line in one piece wins!&nbsp;&nbsp;</p>
<p>----------------------------------------------------------------------------------------------------------</p>
<p><strong>Choose the species of Dino that's right for your play style!</strong></p>
<p><em>Want to be as fast as possible?&nbsp;</em>Race with a <a href="https://ibb.co/nCNH76" rel="nofollow noopener" referrerpolicy="origin">Wretch</a>.</p>
<p><em>Want to be as strong as possible?&nbsp;</em>Ride a <a href="https://ibb.co/mJaFum" rel="nofollow noopener" referrerpolicy="origin">Broadhorn</a><span></span>.</p>
<p><em>Want to take a more balanced approach?&nbsp;</em>Try a <a href="https://ibb.co/cSiPn6" rel="nofollow noopener" referrerpolicy="origin">Continental</a>.&nbsp;</p>
<p>----------------------------------------------------------------------------------------------------------</p>
<p><strong>Even your odds by hiring one of the world's greatest jockeys!</strong></p>
<p>Pick from a cast of <a href="https://ibb.co/kHTFS6" rel="nofollow noopener" referrerpolicy="origin">Bruisers, Gamblers, Defenders, or Speedsters</a>...</p>
<p>----------------------------------------------------------------------------------------------------------</p>
<p><strong>Avoid obstacles and pick up unique contraptions to use against other players on a race track you can customize!</strong>&nbsp;</p>
<p>Make your own Circuit or Cup, or choose from one of the recommended <a href="https://ibb.co/haUw8b" rel="nofollow noopener" referrerpolicy="origin">tracks</a>.&nbsp;<br>Compete in a unique race every match!</p>
<p>----------------------------------------------------------------------------------------------------------</p>
<p><strong>Player Reviews:</strong></p>
<p><em>"The art of ODDS &amp; IRONS promises a fast-moving, light-hearted,&nbsp; and slightly nutty game, and the gameplay delivers. Our game at PAX was marked by several lead changes, unexpected turns (literal and metaphoric), and shifting alliances as players ganged up on the leader. The mechanics were easy to pick up, and players were presented with meaningful choices both in set-up and in each turn during gameplay."&nbsp;</em>-Mark (gamer and educator)&nbsp;</p>
<p><em>"ODDS &amp; IRONS effortlessly maintains a balance that many AAA games strive for but do not achieve. Half bumper cars, half bag of tricks, wholly enjoyable. O&amp;I is truly the thinking man's racing game."</em>&nbsp;-Stephanie (gamer and student)</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjAxMTAwLzMxODg4NjYuanBn/original/xX1wU7.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjAxMTAwLzMxODg4NjUuanBn/original/Ml7bUu.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjAxMTAwLzMxODg3MjMuanBn/original/wzQ08z.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjAxMTAwLzMxODg3MjEuanBn/original/uN24Zb.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjAxMTAwLzMxODg3MjcuanBn/original/ev2t0R.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjAxMTAwLzMxODg3MjUuanBn/original/WEsdZu.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjAxMTAwLzMxODg3MjYuanBn/original/OCu5ft.jpg]]
<h2>Old Gods and Young Guns</h2>
<p>There came a time when the <strong>Old Gods</strong> died! The wild died with the weary! The magnificent perished, locked in battle with the unforgivable! It was the last day for them! An ancient era was passing in a <strong>Great Disaster!</strong></p>
<p>Now in a world after theirs, young gunslingers carve out a living on the <strong>Meteoric Planes</strong>. Bounty hunters and bandits drifting through asteroid towns. Lawmen appointed by mining corps barons enforcing their iron grip. Labourers being pushed to breaking point ready to take destiny into their own hands. Preachers looking for legacies of <strong>Old Gods</strong> in the dust. Truth is the only reliable professions on the belt are undertakers and bartenders.&nbsp;</p>
<p><strong>Old Gods and Young Guns </strong>is a marble-based story game. It is a game in dyad. It is a GMfull game for three to seven players. You will require a set of marbles (10-15 marbles which can be split in two and marbles to act as shooters) and somewhere to use them. You’ll also benefit from something to write on and something to write with.</p>
<p>In the first phase of the game, <strong>The Time of the Old Gods</strong>, you play a game of marbles which you use to define the Cosmic and Chthonic Gods, doomed gods inspired by the work of Jack Kirby. You tell their story and leave behind the world you’ll play in during the second phase of the game.
  </p>
<p>The second phase of the game<strong>, The Dangerous Lives of the Young Guns</strong>, uses the marbles you scored in the first face to make an asymmetric token system. You play gunslingers living in the Meteoric Planes, the devasted remains of the Old Gods’ world, who wield dangerous weapons containing the power of the Old Gods.
  </p>
<p>The game was initially conceived of for one-shot play, however it may work as a short campaign of multiple sessions, depending on your session length preferences.
  </p>
<p>Get your shooter ready.
</p>
<h2>The Olivia Hill Rule</h2>
<p></p>
<p>If you’re a fascist, you’re not welcome to play this game. It’s against the rules. If you’re reading this and thinking, “You just call everyone you disagree with a fascist,” then you’re probably a fascist, or incapable of drawing inferences from context and acknowledging a dangerous political climate that causes the oppressed to be hyperbolic. Don’t play this game. Heal yourself. Grow. Learn. Watch some Mr. Rogers’ Neighborhood or something.&nbsp;</p>
<h2>A Storygame by The Dice</h2>
<p>The Dice are a trans plural system of at least ten members. They are based in London and work as a teacher. Their hobbies (not all shared) include painting, making clay models and TTRPGs. They are a collection of artists, writers and game-designers.
</p>
<h2>Content Warnings and Safety Considerations</h2>
<p><strong>Old Gods and Young Guns </strong>is a game that fundamentally involves violence and is likely to involve violence between player characters. <strong>The Time of the Old Gods</strong> phase deals with the death of the characters you create. The exact form this takes and the detail of such is player-controlled, be considerate of each other and understanding as you find the level you’re all comfortable with.</p>
<p><strong>The Dangerous Lives of the Young Guns</strong> phase is a essentially space western. The western genre is soaked with racism and misogyny, be thoughtful of the tropes you deploy in your game and how else you can avoid replicating this hate.</p>
<p>Engaging with the western genre means engaging with this and engaging with the genre’s relationship with settler colonialism. Settler colonialism enacts and perpetuates generations of injustice and cruelty. The setting of the game is a science fantasy setting that does not have a relationship to the history of Earth. We did not create sci-fi/fantasy analogues of Indigenous people and cultures as that is not something we felt comfortable or even qualified to do, as a white designer. This does mean however we’ve written a western setting without Indigenous peoples. That gives us pause. It is worth thinking about how this can affect your experience of play and how best to be kind and patient with each other.&nbsp;</p>
<p><strong></strong><br></p>
<p></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIwMDI5MS83ODE0MDE5LnBuZw==/original/3lWOKP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwMDI5MS83ODE0MDY2LmpwZw==/original/m%2B3G4C.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwMDI5MS83ODE0MDY0LmpwZw==/original/ai1vEE.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwMDI5MS83ODE0MDY1LmpwZw==/original/hj6fPt.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwMDI5MS83MDAyMDU5LnBuZw==/original/YcoxVs.png]]
<p><em>Old Man's Journey</em>, a soul-searching puzzle adventure, tells a story of life, loss, reconciliation, and hope. Entrenched in a beautifully sunkissed and handcrafted world, embark on a heartfelt journey interwoven with lighthearted and pressure-free puzzle solving.</p>
<p>A visual narrative about life's precious moments, broken dreams, and changed plans, uncover stories of the old man's life told through beautiful vignettes of his memories. Interacting with the serene and whimsical environment, solve playful puzzles by shaping the landscape, growing the hills to create the old man's path forward.</p>
<p>During this compact gameplay experience, you'll be transported to a vibrant and wishful world, exploring life's complexities through the old man's eyes. Meditatively delightful and reflective, <em>Old Man's Journey</em> invites you to immerse yourself in quiet and inquisitive puzzles, and experience the old man's heartache, regret, and hope.<br><br></p>
<p><strong>Features</strong></p>
<ul><li>A powerful and emotional narrative told only through imagery</li><li>Gorgeously whimsical landscapes with hand-drawn art and frame-by-frame animations</li><li>Handcrafted, pressure-free puzzles</li><li>Unique delightful landscape-shaping mechanic</li><li>A compact game experience perfect for a wanderlust-evoking escape </li><li>Original and emotionally compelling soundtrack by SCNTFC</li><li>Crisp drawings rendered in native resolution - even on your 4K monitor</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/tJ29Ql3xDhY" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQ0ODczLzY2NDEyNC5wbmc=/original/Iv4z62.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQ0ODczLzY2NDEyNi5wbmc=/original/qfuGiw.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQ0ODczLzY2NDEyNy5wbmc=/original/JOduMn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQ0ODczLzY2NDEyNS5wbmc=/original/0%2FMvqP.png]]
<p>You are the last pilot of the Earth Alliance, our only resort: the Omeganaut!<br></p>
<h2>Features</h2>
<ul><li>Fast-paced gameplay with <strong>randomly generated levels</strong></li><li><strong>No loading time</strong>, no cuts between levels</li><li><strong>Small footprint</strong>: the entire game can fit inside a good old floppy disk</li></ul>
<figure><strong><img src="https://img.itch.zone/aW1nLzIwNjQ5NjMuanBn/original/A5Rhmk.jpg" loading="lazy"></strong><br></figure>
<h2>How to play?</h2>
<p>It is recommended to use an&nbsp;<strong>Xbox controller</strong>. But you can play with a keyboard or a touchscreen too, just activate the virtual gamepad in the Setup screen.</p>
<ul><li>Move around to avoid obstacles</li><li>Fire to destroy enemies that come in your way</li><li>Hold Fire to charge your laser</li><li>Press the Roll buttons to turn faster</li><li>Double tap a Roll button to avoid danger and to slap nearby enemies</li></ul>
<p><img src="https://media.giphy.com/media/1r8SO9hFlZIq7vapGt/giphy.gif" alt="Omeganaut - Warning! Incoming Enemy" width="100%" loading="lazy"><br></p>
<h2>Virtual Reality</h2>
<p>You can turn on VR in the Setup screen. I only have a Google Cardboard, but maybe it will work with fancy headsets? Please give me feedback if you have the chance to play with such a device ❤️</p>
<table width="100%">
    <thead>
        <tr><th width="50%">Working</th>
          <th>Not working :(</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td><ul><li>Google Cardboard</li><li>Samsung Gear VR</li><li>DreamGlass Air</li></ul></td><td><ul><li>HTC Vive</li><li>Oculus Rift / Quest</li></ul></td>
        </tr>
    </tbody>
</table>
<p><img src="https://img.itch.zone/aW1nLzIwNjg0NTMucG5n/original/crRiqF.png" loading="lazy"><br>
</p>
<h2>Development note</h2>
<p>Omeganaut is still under construction, using the awesome ZGameEditor, which allows a tiny footprint, and two external&nbsp;libraries for&nbsp;physics and modular music.</p>
<p>The downside of a tiny footprint in this modern world is that <a href="http://www.emix8.org/forum/viewtopic.php?f=1&amp;t=1339" target="_blank" rel="nofollow noopener" referrerpolicy="origin">a few antivirus software will go nuts and return a false positive</a>. It's annoying, but there's no reason to worry. I like making games, not viruses.</p>
<p>By buying the game, you help me to continue making it. Right now, I focus on building the engine and getting rid of all the bugs, while adding new enemy ships and obstacles now and then.</p>
<figure><img src="https://media.giphy.com/media/fjy9mUM5Bn9ioTCla7/giphy.gif" alt="Omeganaut - Fasten your seatbelt!" width="100%" style="color: inherit; font-size: inherit" loading="lazy"></figure>
<h2>Thanks</h2>
<ul><li><a href="http://www.zgameeditor.org" target="_blank" rel="nofollow noopener" referrerpolicy="origin">ZGameEditor</a><span></span> by Ville Krumlinde</li><li><a href="https://github.com/Rado-1/ZgeBullet" target="_blank" rel="nofollow noopener" referrerpolicy="origin">ZgeBullet</a><span></span> by Radovan Cervenka</li><li><a href="http://www.warmplace.ru/soft/sunvox/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">SunVox</a><span></span> by Alexander Zolotov</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/0DYCH8rvFmc" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDE1NDYzLzgzMzUzMzUucG5n/original/w1EaWn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDE1NDYzLzgzMzU0MjkucG5n/original/d9f8Wc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDE1NDYzLzgzMzUzMjcucG5n/original/AD8QUP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDE1NDYzLzgzMzUzMzYucG5n/original/L1mQ0r.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDE1NDYzLzgzMzUzMzQucG5n/original/5MUrmI.png]]
<p></p>
<h1>You have two stats: HMM and FUCK.</h1>
<p><em>You are Monster Slayers of the Jackal Conclave, and you're investigating a strange incident...</em></p>
<p>Inspired by <em>The Witcher</em> by Andrzej Sapkowski,&nbsp;On The Path is a hack of Honey Heist by Grant Howitt, where players take on the roles of Monster Slayers investigating a mystery after receiving a strange letter.
</p>
<p>Included are generation tools for GMs to create the adventure, and adaptations of Honey Heist's much-loved mechanics.
</p>
<p>Download contains:
</p>
<ul><li>Stylised PDF
</li><li>Printer-friendly PDF
</li><li>Plain text, dyslexia-friendly font PDF
</li></ul>
<p>Purchase this game at $3.50 or higher to receive the adventure frame&nbsp;<em>The Vengeful Sea</em>, a ready-to-play story with minimal GM prep required.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAyNzAzOC81ODg2MzUyLnBuZw==/original/V7Elcr.png]]
<p>"Do you believe in fairies? Say quick that you believe. If you believe, clap your hands!" ~James M. Barrie</p>
<p><br>You and your magical friends are throwing a surprise birthday party for someone special. In this enchanted land, anything can happen.&nbsp;Will there be a happy ending?<br><br>Life is a fairytale in this magical micro-RPG! Choose from 6 character options:</p>
<ul><li>Fairy Godmother</li><li>Enchanted Animal</li><li>Kindly Old Wizard</li><li>Nanny</li><li>Wise Witch</li><li>Pixie</li></ul>
<p>Each character specializes in a different skill, and is equipped with a unique tool to help them in their tasks.</p>
<p><img src="https://img.itch.zone/aW1nLzQ3NDk2NDEucG5n/original/jymwhP.png" loading="lazy"><br><br>Background image by <a href="https://pixabay.com/users/darkmoonart_de-1664300/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=4369116" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">DarkmoonArt_de</a> from <a href="https://pixabay.com/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=4369116" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">Pixabay</a>; game description art by <a href="https://pixabay.com/users/jo-b-246441/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=5442762" rel="nofollow noopener" referrerpolicy="origin">Jo-B</a> from <a href="https://pixabay.com/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=5442762" rel="nofollow noopener" referrerpolicy="origin">Pixabay</a>;&nbsp;cover image by&nbsp;<a href="https://pixabay.com/users/pixel2013-2364555/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=2160539" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">S. Hermann &amp; F. Richter</a>&nbsp;from&nbsp;<a href="https://pixabay.com/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=2160539" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">Pixabay</a>; internal game art&nbsp;by Gordon&nbsp;Johnson from <a href="https://pixabay.com/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=3244163" rel="nofollow noopener" referrerpolicy="origin">Pixabay</a>.&nbsp; All free for commercial use.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODQ2MTU4LzQ3NDk2ODMuanBn/original/8f47bv.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODQ2MTU4LzQ3NDk3MTQuanBn/original/tWxZN0.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODQ2MTU4LzQ3NDk2ODUuanBn/original/umP78x.jpg]]
<p>Welcome to Oniria - a place where Dreams and Nightmares come to life and make the city their own. In this game you play as a member of the Quixotic Society and are tasked with investigating and containing the Reveries when they start becoming too messy.&nbsp;<br></p>
<p><span></span></p>
<p>Inside this book&nbsp;you will find&nbsp;<br></p>
<p>- 4&nbsp;new roles (or backgrounds)<br>- intriguing abilities and&nbsp;dreamy items<br>-&nbsp;rules for Reveries (the manifestation of one's psyche)<br>- enigmatic characters who will assist, oppose or entertain you<br>-&nbsp;descriptions of several&nbsp;exciting locations in Oniria<br>- strange incidents to use as adventure hooks or tales from the past&nbsp;<br>- an introductory adventure to discover Oniria and its mysteries<br>- 48 pages filled with colourful and evocative art</p>
<p>Use your ethereal abilities and extraordinary items to discover what motivates the Reveries, decide whether you want to help or stop them and explore the marvelous city of Oniria!</p>
<p class="text-center">---</p>
<p><strong><em>The print version is available from </em><em><br>- Rook's Press:&nbsp;<a href="https://www.rookspress.com/products/onirias-slumber" rel="nofollow noopener" referrerpolicy="origin">https://www.rookspress.com/products/onirias-slumber<br></a></em></strong><strong><em>- IglooTree:&nbsp;<a href="https://iglootree.com/onirias-slumber-461-p.asp" rel="nofollow noopener" referrerpolicy="origin">https://iglootree.com/onirias-slumber-461-p.asp<br></a>- Exalted Funeral: </em></strong><a href="https://www.exaltedfuneral.com/collections/neoteric-codices/products/onirias-slumber-pdf" rel="nofollow noopener" referrerpolicy="origin"><strong><em>https://www.exaltedfuneral.com/collections/neoteric-codices/products/onirias-slu...</em></strong></a><strong><br></strong><em><strong>- Ratti Incantati:</strong></em><strong>&nbsp;<em><a href="https://rattiincantati.com/products/onirias-slumber" rel="nofollow noopener" referrerpolicy="origin">https://rattiincantati.com/products/onirias-slumber</a></em></strong></p>
<p>The character sheet is available in the "Demo" section.</p>
<p>This book is many things at once. It was first thought of as a small setting for Troika!, then it was written into a small hack and now it's a bit of both. You can play it on its own, or use its setting as a sphere for <em>Troika!</em>.<br></p>
<p>A very late submission to the Dreaming Jam.</p>
<p><em>Oniria's Slumber</em> is an independent production by Jean Verne and is not affiliated with the Melsonian Arts Council.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTAxMjg3LzUwODgzOTguanBn/original/1xUmJb.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTAxMjg3LzUwODg0MDAuanBn/original/D7suou.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTAxMjg3LzUwODg0MDEuanBn/original/Ge8gnO.jpg]]
<p class="text-center"><img src="https://img.itch.zone/aW1nLzY2OTAzMjAuZ2lm/original/AZhqcU.gif" loading="lazy"><br></p>
<p>Avoid a hard landing with <strong>Only One Burn!</strong><em><br></em><br></p>
<ul><em><li>On reserve fuel, you have to reach the landing pad to avoid disaster.
</li><li>Time your burn just right as you have no other way to slow down.
</li><li>Simple controls, rapid gameplay, tons of fun.
</li><li>Try to perfect your landing on lots of levels across 4 unique worlds.
</li><li>Challenge yourself to rank among the best landing scores.
</li></em><li><em>Try not to blow up!</em></li></ul>
<p><br></p>
<p><em><img src="https://img.itch.zone/aW1nLzY2ODg1MzcucG5n/original/Z6yXyJ.png" loading="lazy"><br></em></p>
<p><em></em><br><br></p>
<p><em><strong>"A really fun game! Rather short, but it doesn't take away from the experience or the price, and I'd gladly play through it again."</strong>&nbsp;&nbsp;&nbsp; </em><em>-Steam user review</em><em></em></p>
<p><em><strong>"This game is pretty good! I had fun with it. The levels were challenging but never too hard to get through."</strong>&nbsp; &nbsp;-Steam user review</em></p>
<p><em><strong>"This game is actually really fun.  It's also got a surprising amount of detail.  I'd say it's definitely worth it."</strong> &nbsp; &nbsp;-Steam user review</em><br></p>
<p></p>
<p class="text-center"><em><em><img src="https://img.itch.zone/aW1nLzY2ODg1NzYucG5n/original/cQxxpk.png" loading="lazy"><br></em></em></p>
<p><em></em><br><br><br><br></p>
<p><em></em></p>
<p><em></em></p><em>
<p class="text-center">**note - 60 frames per second is recommended for optimal experience.**<em></em><em></em><em><em></em></em><em></em><em><em></em></em></p>
</em><p><em></em></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/9N7_f9Vv05Q" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE0ODgyNi82NjcwNzM5LmpwZw==/original/Quzz9H.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0ODgyNi82NjcwNzQxLmpwZw==/original/oqMgHq.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0ODgyNi82NjcwNzQwLmpwZw==/original/aFQ%2F1c.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0ODgyNi82NjcwNzQ2LmpwZw==/original/m%2B3CDz.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0ODgyNi82NjcwNzQ0LmpwZw==/original/GO9OsC.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0ODgyNi82NjcwNzQzLmpwZw==/original/C8JAZB.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0ODgyNi82NjcwNzQyLmpwZw==/original/gB%2Fzc1.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0ODgyNi82NjcwNzQ3LmpwZw==/original/OF5I26.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0ODgyNi82NjcwNzQ1LmpwZw==/original/hwEuJb.jpg]]
<h2 class="text-center">A shoot-em-up with roguelike elements<br>and beautiful hand-drawn graphics.</h2>
<p class="text-center"><br><img style="" src="https://img.itch.zone/aW1nLzI4MDE1OTYucG5n/original/mlKeAf.png" loading="lazy"><br><br></p>
<h3>Game features:</h3>
<ul><li>Procedurally generated levels with randomised enemy waves and pickups</li><li>Branching paths - select from 20+ levels</li><li>25+ weird and wonderful bosses</li><li>35+ unique weapons and items to find</li><li>Upgrade your ship between levels at the shop</li><li>Boss Rush mode</li><li>Online leaderboards</li><li>Awesome soundtrack by the amazing&nbsp;<a href="https://soundcloud.com/dolphin/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Dolphin</a>!</li></ul>
<h3>Purchase the Soundtrack here:</h3>
<h4><a href="https://keysounds.bandcamp.com/album/operation-steel-original-soundtrack" rel="nofollow noopener" referrerpolicy="origin">https://keysounds.bandcamp.com/album/operation-steel-original-soundtrack</a></h4>
<figure>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="https://img.itch.zone/aW1nLzI3OTk3NzYuZ2lm/original/jMgs4h.gif" loading="lazy"></figure>
<h3>Reviews</h3>
<ul><li><strong>"It ****ing slaps"</strong> -&nbsp;<em>A random tester</em></li><li><strong>"Suck it! I&nbsp;beat the first level!"</strong> -&nbsp;<em>My wife</em></li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/DBZbSJdy-cc" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDg3OTgyLzcxMTYwODgucG5n/original/DlQq%2Bc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg3OTgyLzQ3MjE5MjkuanBn/original/swIKkD.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg3OTgyLzgxNDY1NTQucG5n/original/UOgtli.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg3OTgyLzQ3MjE5MjMuanBn/original/gXRJ%2Fc.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg3OTgyLzQ3MjE5MjQuanBn/original/oOSbHa.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg3OTgyLzQ3MjE5MjUuanBn/original/3m41Vv.jpg]]
<h2><a href="http://store.steampowered.com/app/499140/Operator_Overload/" rel="nofollow noopener" referrerpolicy="origin">Operator Overload</a></h2>
<p>- the soundtrack -</p>
<p><del>IIII</del></p>
<p>1. cluster - 02:19&nbsp; &nbsp;<br>2. museum - 02:54&nbsp; &nbsp;&nbsp;<br>3. almond - 02:21&nbsp; &nbsp;&nbsp;<br>4. trestle - 02:28&nbsp; &nbsp;<br>5. content - 02:28</p>
<p>~rich ambience in&nbsp;5 track form -&nbsp;<a href="http://errent.bandcamp.com/album/operator-overload" rel="nofollow noopener" referrerpolicy="origin">preview</a></p>
<p><del>IIII</del></p>
<p><a href="http://errent.bandcamp.com" rel="nofollow noopener" referrerpolicy="origin">errent</a> = <a href="http://mohumohu.com" rel="nofollow noopener" referrerpolicy="origin">mohu</a>/<a href="http://underscorediscovery.ca" rel="nofollow noopener" referrerpolicy="origin">underscorediscovery</a></p>
<p><small><em>note: this soundtrack was created for operator overload,&nbsp;<br>and may not be used for other purposes.</em></small></p>
<p><small></small></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjE2ODQ5LzEwMjM0MjgucG5n/original/tNIe21.png]]
<p class="text-center"><strong><span class=""><em>A </em>Tabletop Role-Playing Game&nbsp;</span><span class="" style="color: inherit; font-size: inherit"><em>regarding&nbsp;</em></span>Orchid Hunting&nbsp;</strong><strong><span class=""><em><br></em></span></strong></p>
<p class="text-center"><strong><em>during&nbsp;</em><em>the </em>Reign<em> of </em>Queen Victoria<span></span></strong></p>
<p class="text-center">-</p>
<p>
</p>
<p class="text-center"><strong><span class=""><em>for</em></span> 2 <span class=""><em>to</em></span> 6 Persons <span class=""><em>of</em></span> Fine Repute&nbsp;Inclusive <span class=""><em>of a</em></span> Games Master&nbsp;</strong></p>
<p class="text-center"><strong><span></span>Requiring <span class=""><em>a</em></span> Deck <span class=""><em>of</em></span> Playing Cards,<span class="">&nbsp;&nbsp;</span>2 Six-Sided Dice, &amp; 6 Pennies</strong></p>
<p class="text-center">-<strong><br>Numbered&nbsp;first edition copies from the&nbsp;<a href="https://www.kickstarter.com/projects/aethercorp/orchidelirium/" rel="nofollow noopener" referrerpolicy="origin">Kickstarter</a>&nbsp;<br></strong><strong>and free digital community copies&nbsp;available!</strong><span></span></p>
<p>Take on the mantle of a grizzled and hardy orchid hunter in 1865, traversing the depths of unchartered territories in search of rare, elusive, and above all, expensive orchids for your shady employer, J. Carmichael &amp; Associates.</p>
<p>For the Games Master, Orchidelirium provides a simple ruleset, an adventure, and improvisation tools to help build an adventure of discovery at the table.</p>
<p>Files included with purchase:</p>
<ul><li>32 page rule book&nbsp;(standard page&nbsp;&amp; double page spreads versions)</li></ul>
<p>Files available for free:</p>
<ul><li>Character sheet (A4 / letter)</li><li>Expedition preparatory aid (A4 / letter)</li><li>Playing mat&nbsp;(A4 / letter)</li><li>Kickstarter poster (A4)</li><li>PlayingCards.io room (<a href="https://playingcards.io/zvnrxd" rel="nofollow noopener" referrerpolicy="origin">demo</a>)</li></ul>
<p>Create a <a href="https://playingcards.io/" rel="nofollow noopener" referrerpolicy="origin">PlayingCards.io</a><span></span>&nbsp;room by dropping the .pcio&nbsp;onto this page:&nbsp;<a href="https://playingcards.io/import" rel="nofollow noopener" referrerpolicy="origin">https://playingcards.io/import</a></p>
<p><img src="https://img.itch.zone/aW1nLzQ5NDc3NzUuanBn/original/A5vADh.jpg" alt="Photo of first edition zine with pink cover surrounded by orchids and print outs" title="Photo of first edition zine with pink cover surrounded by orchids and print outs" loading="lazy"></p>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDU1NjQyLzQ5NDc3NTcuanBn/original/nGNdlT.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU1NjQyLzQ5NDc3NTguanBn/original/bCmu58.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU1NjQyLzQ5NDc3NTkuanBn/original/cmSY2X.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU1NjQyLzQ5NDc3NjAuanBn/original/C2nD4i.jpg]]
<$list filter="[is[current]has:field[url]]">
''Original Url'': {{!!url}}&nbsp;&nbsp;&nbsp;
</$list>
<p><br></p>
<p><span></span>Orion player is a lightweight and easy to use video player, and it does not consume many requirements.<br></p>
<h5>Features</h5>
<ol><li>Mp4 support<br>
</li><li>MKV support<br>
</li><li>WEBM support</li><li>&nbsp;Open YouTube from clipboard and web browser</li></ol>
<p><br></p>
<p><strong>(Linux)<br></strong></p>
<p><strong><a href="https://kagarisoft.itch.io/orion-video-player/devlog/277041/how-to-use-orion-player-as-default-player-linux">How set orion as default video player</a><br></strong><strong><br></strong></p>
<p><strong>Note: Installing an update requires uninstalling and reinstalling the .deb package.</strong><strong><br></strong></p>
<p><strong>(Open YouTube video from web browser)</strong><br></p>
<p>Open YouTube video from webbrowser: orion://https.youtube.com/watch?v=[video_id]</p>
<p><a href="https://kagarisoft.itch.io/orion-video-player/devlog/313433/how-to-play-youtube-video-on-orion-player">How to play YouTube video on orion player</a><br></p>
<p><a href="https://kagarisoft.itch.io/orion-video-player/devlog/337729/patch-142">How to play remote video files (without downloading: Patch 1.4.2)</a><br>
<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAxODczNi83NDEyMTE4LnBuZw==/original/DCukr2.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAxODczNi83NDMxMjAxLnBuZw==/original/aBlBdH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAxODczNi83NDEyMTIyLnBuZw==/original/Qb5vei.png]]
<p>by <a href="http://futureproofgames.com" rel="nofollow noopener" referrerpolicy="origin">Future Proof Games</a></p>
<p>The last thing you remember is receiving an unsatisfying answer. A plunge through the fundamental chaos takes you to a place of bones. Great power can be found within the Ossuary, but those who are not lying to themselves are lying to you.</p>
<p>Ossuary is a dark, funny, puzzling game about talking to people and corrupting them with sins that are really virtues. It's a stark, unsettling satire where you cure cabbages of being people and expose the terrible lies that we tell ourselves so we don't have to change. It's inspired by Discordianism, a postmodern nonsense religion.</p>
<p>The prequel demo, The Hodge-Podge Transformer, can be downloaded for free and consists of story, dialogue, and puzzles that don't appear in the full game.</p>
<p>Ossuary was designed by Gregory Avery-Weir, creator of "<a href="http://futureproofgames.com/games/majesty" rel="nofollow noopener" referrerpolicy="origin">(I Fell in Love With) The Majesty of Colors</a>," "<a href="http://futureproofgames.com/games/dragon" rel="nofollow noopener" referrerpolicy="origin">How to Raise a Dragon</a>," and "<a href="http://ludusnovus.net/my-games/looming/" rel="nofollow noopener" referrerpolicy="origin">Looming</a>."</p>
<p><strong>Note: MacOS support for this title will end beginning in 2022. For more information, see&nbsp;<a href="https://futureproofgames.com/blog/2021/08/17/mac-support-ending-2022/" rel="nofollow noopener" referrerpolicy="origin">our blog post and FAQ</a>.</strong><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/pFg5ytdgkPw" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTY0NzYvNTkzNTkucG5n/original/0SvqjJ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY0NzYvNTkzNjAucG5n/original/aA3uwz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY0NzYvNTkzNjEucG5n/original/ze3p0W.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY0NzYvNTkzNjIucG5n/original/YAcIk%2F.png]]
<h3 class="text-center">About the Game</h3>
<p>Other Minds is a pixel art style game where you play as Ed and Sage. Ed is your human who you can use for your standard platforming action, whereas Sage can fly around freely and take control of any other character.</p>
<p>You will take advantage of the other character’s abilities to solve puzzles, beat levels and uncover the nefarious plot of Dr Death. Ed and Sage must save the world because everybody else is too busy standing around thinking about things.</p>
<p><strong>Key Features:</strong><br></p>
<ul><li>4 hours+ of classic platforming action with puzzles, collectibles and tough bosses</li><li>Use Sage, a floating green consciousness, to possess and take control of&nbsp;basically anything that moves</li><li>Loads of secrets and collectibles which are used to unlock time trials and rhythm levels</li><li>Mostly made by one person</li></ul>
<p><a href="https://edwardatkin.co.uk/other-minds" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Visit here for more information and press pack of images!</a></p>
<h3 class="text-center">Other Stuff</h3>
<h3 class="text-center"><img src="https://img.itch.zone/aW1nLzQ2OTI4ODQucG5n/original/MrsKd2.png" style="color: inherit; font-size: inherit" loading="lazy"></h3>
<ul><li>Stuck on something?&nbsp;Check out my <a href="https://www.youtube.com/watch?v=IJQ1HT4kFHg" target="_blank" rel="nofollow noopener" referrerpolicy="origin">100% longplay/walkthrough</a> of the game!</li></ul>
<p><strong>Soundtrack:</strong></p>
<ul><li>Includes a 38-track soundtrack by a variety of artists!</li></ul>
<p><strong>Source code:</strong></p>
<ul><li>Source code is packaged as a .yyz file and made with version&nbsp;2.3.2.558 of Gamemaker Studio 2
</li><li>Open GMS2 and choose "Import" to load the project</li></ul>
<h3 class="text-center">Credits</h3>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzQ2OTI4ODQucG5n/original/MrsKd2.png" loading="lazy">
</p>
<ul><li>Programming, art and basically everything else by Edward Atkin (<a href="https://www.twitter.com/EAtkin" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@EAtkin</a>)
</li><li>Music by Richard Kerry (<a href="https://twitter.com/RichardAKerry" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@RichardAKerry</a>)
</li><li>Sound design and additional music by Mark Mauer (<a href="https://twitter.com/JustWallGames" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@JustWallGames</a>)
</li><li>Cover art by GrafxKid
</li><li>Trailer by Michael Electric</li><li>Testing and moral support by many, many people! Thank you!</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/0AfXycXbqj8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTQwMDE1LzQ2OTcxMTUuZ2lm/original/dISxZU.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQwMDE1LzQ2OTcxMTkuZ2lm/original/zA5wQE.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQwMDE1LzQ2OTcxMTguZ2lm/original/dQHfP5.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQwMDE1LzQ2OTcxMTYuZ2lm/original/MmzyDu.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQwMDE1LzQ2OTcxMTcuZ2lm/original/HYLW8P.gif]]
<p>A new setting, new mechanics, and a new spin on what community looks like.&nbsp;<em>Our Hero Neighbors 2E</em> is for everyone and anyone who wants to play a game about building community to overcome weird and wild happenings. Centered on neighbors living in the same apartment building, players take on the role of a tenant trying to make it when strange events conspire to test the mettle of neighborly bonds. Will you and your neighbors stand together or falter in the face of both mundane and fantastical obstacles?</p>
<p><em>Our Hero Neighbors 2E</em> is a GMless storytelling game for 3-5 players.&nbsp;<br></p>
<p>It's been three years since <a href="https://jamieoduibhir.itch.io/ourheroneighbors-rpg">the original&nbsp;Our Hero Neighbors</a> was released. Hopefully you enjoy this latest installment as much as you enjoyed the original.</p>

[img width=500 [https://img.itch.zone/aW1nLzc5NjI5NjYucG5n/original/j6f0AE.png]]
<p>In August of 2014, a demo innocently appeared on the PlayStation Store. It had a spooky old tombstone with <em>P.T.</em> painted on it, sitting silently in a wooded area. Playing this demo would take players to a rather ordinary hallway, one that would lead to one of the most terrifying horror games ever made.</p>
<p>And now you can't get it any more.</p>
<p>Even just as a short demo,&nbsp;<em>P.T.&nbsp;</em>created a powerful atmosphere of terror, dragging the player into its ordinary environments and steadily filling them with dread. Through its steady erosion of reality, striking visuals, cryptic completion criteria, and the chilling ghost, Lisa, it creates a fear that can sicken in its intensity, leaving players begging for the ghost to just appear and end it all.</p>
<p>It was to show what Hideo Kojima, the man behind&nbsp;<em>Metal Gear</em>, could do with horror and the&nbsp;<em>Silent Hill</em>&nbsp;series. It was to set a new bar for horror. Then, not even a year later, it was gone, pulled from the store for nebulous reasons as relations between its creator and Konami broke down.</p>
<p><em></em><em>P.T.: A Video Game Ghost Story</em>&nbsp;is an unofficial investigation into the strange history behind this lost horror game, how players came to solve its complex puzzles, and what makes it so effective at scaring its players. Featuring interviews with the first player to complete it, the Let's Players who broke its mysteries,&nbsp;<em>P.T.</em>&nbsp;speedrunners, video game historians, and Konami staff, it looks to shine a light on what made the experience so compelling, why we subject ourselves to these horrors, and what will happen as this fearful experience fades from memory to become its own real-world ghost story.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjU0MjgwLzEyMTc3OTMucG5n/original/0Br6HE.png]]
<p>a sort-em-up labyrinth<br>with one ending</p>
<p>cw: light body horror</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDM3MjY0LzIxOTQ1NjcuZ2lm/original/aaD19U.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNDM3MjY0LzIxOTQ1NjguZ2lm/original/wsAkgq.gif]]
<p class="text-center"><em></em></p>
<p>
</p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzQ2OTg3NTIuanBn/original/3lNctr.jpg" loading="lazy"><br></p>
<p class="text-center">In this Gothic story of deep bonds and chilling mystery, <strong>a young girl named</strong> <strong>Esther </strong>ventures deep within a forgotten forest.</p>
<p class="text-center">There, she seeks out a potential cure for her mysterious illness:<br>a life-leeching plague known as <strong><em>the&nbsp;Pale Cachexia.</em></strong></p>
<p class="text-center">But when Esther meets <strong>Seina</strong>, who lives all alone in a towering manor, the two girls are drawn to each other in a tale&nbsp;of friendship, sorrow, and bitter loneliness. <br><br>Their story is shadowed by the dark secrets of the manor and its <strong>cemetery</strong>, which haunts Esther even in her deepest dreams.</p>
<p class="text-center"><br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzQ2OTg3NTMuanBn/original/h0x3Fl.jpg" loading="lazy"><br></p>
<p class="text-center"><strong>Genres:</strong> Visual novel, Gothic fantasy, drama, horror<br><strong>Rating: </strong>PG-13 (language/mild horror)<br><strong>Story Type:</strong> Kinetic (no choices)<br><strong>Length:</strong>&nbsp;49k words<br></p>
<p class="text-center"><strong>Accessibility Features:</strong> Sound/Music <strong>closed captions,</strong> <br><strong>OpenDyslexic</strong> font option, disable bright flashes option<br></p>
<p class="text-center"><br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzQ2OTg3NTQuanBn/original/6OfizV.jpg" style="max-width: 100%; font-size: 14px; background-color: rgb(17, 17, 17)" loading="lazy"><br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzU2NzE5NjQuanBn/original/bNH8Ay.jpg" loading="lazy"><br></p>
<p class="text-center"><br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzU2NzE5NjUuanBn/original/6OG8ih.jpg" loading="lazy"><br></p>
<p class="text-center"><br></p>
<p><img src="https://img.itch.zone/aW1nLzQ3NjI5MDUuanBn/original/O1cWKF.jpg" loading="lazy"><br></p>
<p><br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzQ2OTg3NTUuanBn/original/Qmt5y6.jpg" style="max-width: 100%; font-size: 14px; background-color: rgb(17, 17, 17)" loading="lazy"><br></p>
<p class="text-center"><strong>Writing/Design/Programming:</strong> Dovah<br><strong>Management/Programming:</strong> Gamma<br><strong>Sprite Art:</strong> <a href="https://twitter.com/nicnicco" target="_blank" rel="nofollow noopener" referrerpolicy="origin">NicCo</a><br><strong>CG Art/Key Visual: </strong><a href="https://www.deviantart.com/numiren" target="_blank" rel="nofollow noopener" referrerpolicy="origin">NumiRen</a><br><strong>Background Art: </strong><a href="https://www.deviantart.com/malthuswolf" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Malthus Wolf</a><br><strong>Music:</strong> <a href="http://superrray.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Ray Kim</a>, <a href="https://soundcloud.com/murcielo" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Murcielo</a>, <a href="https://linktr.ee/Scarlessarms" target="_blank" rel="nofollow noopener" referrerpolicy="origin">scarless arms</a></p>
<p class="text-center"><br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzQ2OTg3NzQucG5n/original/ccc%2B%2B6.png" loading="lazy"><br></p>
<p class="text-center"><strong><u>Join our community/follow us&nbsp;on:</u></strong><br></p>
<p class="text-center"><a href="https://discord.com/invite/p3pM8rj" target="_blank" rel="nofollow noopener" referrerpolicy="origin">AG Discord</a> | <a href="https://twitter.com/argent_games" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter</a> | <a href="https://blog.argentgames.co/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Dev Blog</a>&nbsp;| <a href="https://www.twitch.tv/argent_games" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Dev Stream</a></p>
<p class="text-center"><span style="color: inherit; font-size: inherit"></span><br></p>
<p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/E4r75b3oXkM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjAyNjI0LzQ3NTg4NjQucG5n/original/guo15u.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjAyNjI0LzU2NDE4ODIucG5n/original/UnCmtB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjAyNjI0LzU2NDE4NzkucG5n/original/rA0LpP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjAyNjI0LzU2NDE4ODAucG5n/original/TZyRO3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjAyNjI0LzU2NDE4ODEucG5n/original/O4HzB5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjAyNjI0LzU2NDE4ODMucG5n/original/45JTRb.png]]
<p><strong>PANIC FACTORY</strong>&nbsp;is a short action&nbsp;<strong>platform</strong>-<strong>shooter for Windows.</strong><img src="https://img.itch.zone/aW1nLzc1NTIxMjEuZ2lm/original/9Eqqwd.gif" style="color: inherit; font-size: inherit" loading="lazy"></p>
<p>A group of environmental activists have entered the industrial complex of the infamous Dr Paiipozz and his monstrous mutants. Will you escape from the Panic Factory alive?</p><p>One review of the game by&nbsp;<a href="https://air-gaming.com/panic-factory-le-test-sur-pc/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Airgaming.com</a>&nbsp;(French)<br></p>
<p><img src="https://img.itch.zone/aW1nLzc1NTY0ODYuZ2lm/original/kHf2SK.gif" loading="lazy"><br></p>
<p><img src="https://img.itch.zone/aW1nLzc1NDk0MjMucG5n/original/7nL1La.png" loading="lazy"><br></p>
<p>Compatible with Xbox controller<br></p>
<figure><img src="https://img.itch.zone/aW1nLzc1NDgwNjYucG5n/original/dFzh1u.png" loading="lazy"></figure>
<p></p>
<p></p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzc1NTUxOTQuZ2lm/original/2YgEKn.gif" loading="lazy"><br></p>
<p></p>
<p><img src="https://img.itch.zone/aW1nLzc1NDk1MjUucG5n/original/1XvQh8.png" loading="lazy"><br></p>
<figure><img src="https://img.itch.zone/aW1nLzc1NDkyODEuZ2lm/original/v9%2FTzk.gif" loading="lazy"><span></span></figure>
<iframe style="border: 0; width: 640px; height: 120px" src="https://bandcamp.com/EmbeddedPlayer/album=1851086464/size=large/bgcol=ffffff/linkcol=0687f5/tracklist=false/artwork=none/transparent=true/"><a href="https://pixgrinder.bandcamp.com/album/panic-factory-original-game-soundtrack" rel="nofollow noopener" referrerpolicy="origin">Panic Factory (Original Game Soundtrack) by Pix Grinder</a></iframe>
<p>(Included in the download file)<br></p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzc1NDk1NjMucG5n/original/gDElFa.png" loading="lazy"><br></p>
<p>Program, Pixel art &amp; Music by <a href="https://twitter.com/Pix_Grinder" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@Pix_Grinder</a></p>
<p>Producer: <a href="https://twitter.com/_marinasunshine" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@MarinaSunshine</a></p>
<p>Testers: <a href="https://www.instagram.com/nico.van_de_grou/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Koki Link</a>&nbsp;(GIFS Maker) &amp; <a href="https://twitter.com/Wynter__Sky" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Wynter Sky</a></p>
<p>Voices: <a href="https://twitter.com/guetbns" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Jarod Bones</a></p>
<p><img src="https://img.itch.zone/aW1nLzc1NDgzNjUuZ2lm/original/8P6lto.gif" loading="lazy"><br></p>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/NJEi9Tcvx64" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI5NjEzMy83NTU2NDUyLmdpZg==/original/hF3Zu6.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5NjEzMy83NTU2NDI4LmdpZg==/original/j4NbuV.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5NjEzMy83NTU2NDI1LmdpZg==/original/eRKKDx.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5NjEzMy83NTU2NDYwLmdpZg==/original/JOrQN3.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5NjEzMy83NTU2NDk1LmdpZg==/original/2x01b4.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5NjEzMy83NTU2NDQ0LmdpZg==/original/GCyIRC.gif]]
<p>A dreadful tome of visions of Paradise. Portraits of killers, sycophants, criminals and demons. Postcards from an island of mutable truths, bizarre facts and a scorching sun. Memories of the earliest days of Island Sequence 24. Glimpses into lost realities. Words from dreadful cosmic artists. Please enjoy.<br><br>Paradise Killer Art Works collects the beautiful character art, and sun drenched environments from Paradise Killer. It also includes early development images and commentary from the developers.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/9hvx2CW7u4U" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODc3OTgzLzQ5NDExMjkucG5n/original/ulkWAA.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODc3OTgzLzQ5NDExMjcucG5n/original/1cIcgY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODc3OTgzLzQ5NDExMjUucG5n/original/LUmBSh.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODc3OTgzLzQ5NDExMjYucG5n/original/lrpaiC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODc3OTgzLzQ5NDExMjgucG5n/original/lXFRrJ.png]]
<p><em>Paradise Mountain</em> is a singular region within the Land of Blades. Ruled by the Yue Dynasty, it is the forge of heroes and scholars, and the home for those with an unbreakable spirit. This system agnostic supplement for tabletop roleplaying games is designed to be used as a stand-alone micro setting or a "plug-and-play" addition to a larger world.<br></p>
<p>Compatible supplements that I've designed include <em>Denizens of Mountains &amp; Seas </em>(vol. 1 &amp; 2) and <em>Blades of the Lunar Kingdom</em>. They are optional tools with creatures and weapons to help you flesh out your adventures within the Land of Blades.&nbsp;</p>
<p>*From now until January 22, 2022, you can get the&nbsp;<em></em><a href="https://itch.io/s/63687/denizens-of-mountains-seas-bundle">Denizens of Mountains &amp; Seas&nbsp;bundle</a>!</p>

[img width=500 [https://img.itch.zone/aW1nLzc3MzQ3MDYucG5n/original/%2BYuFnf.png]]

<p><br></p>
<figure><img src="https://img.itch.zone/aW1nLzI4NDY2MTQuZ2lm/original/nIDfyF.gif" style="color: inherit; font-size: inherit" loading="lazy"><br></figure>
<p><strong><em>"It's a long walk home..."</em></strong></p>
<p>After finishing her bar tending shift at 3am, Erica Yu encounters a strange man who claims to know her. Before things escalate, the man suddenly disappears. Terrified, Erica reluctantly decides to make her way home... but little does she know, the nightmare has only just begun.</p>
<p>PARANOIHELL is a pixel horror game that takes inspiration from the gameplay of PSX-style survival horror games. Use weapons to defend yourself from enemies, set traps, or hide. But don't be reckless, your resources are limited. Thorough exploration and careful item management will be key to survival.</p>
<h2 class="text-center">- Press -</h2>
<blockquote><strong>"[...] through unsettling art and clever sound design,&nbsp; Paranoihell&nbsp; delivers both a spine-tingling world and pulse-quickening jump scares."</strong></blockquote>
<p><em>- Andrew King,&nbsp; &nbsp;</em><em><a href="https://bloody-disgusting.com/reviews/3609446/review-paranoihell-creepily-effective-retro-survival-horror-game/" rel="nofollow noopener" referrerpolicy="origin">Bloody Disgusting</a></em></p>
<blockquote><strong>"PARANOIHELL&nbsp;may give it a supernatural slant, but it captures that awful fear that curls up within us when we find ourselves all alone on that long walk home."</strong></blockquote>
<p><em>- Joel Couture,&nbsp; &nbsp;</em><em><a href="https://indiegamesplus.com/2019/09/paranoihell-takes-you-on-a-chilling-walk-home" rel="nofollow noopener" referrerpolicy="origin">IndieGamesPlus</a></em></p>
<h2 class="text-center">- Content Warning -</h2>
<p>Blood, gore, and strong language</p>
<p>Themes of stalking, and police violence</p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzI4NDY2MTYuZ2lm/original/HfSX4i.gif" loading="lazy"><br></p>
<ul><li>Explore a surreal, dying city</li><li>Pixel art style that uses modern lighting techniques</li><li>Light RPG elements</li><li>Satisfying melee-combat</li><li>Estimated play time: 1 - 3 hours</li><li>Multiple endings</li><li>Multiple difficulty settings</li><li>Controller Support</li></ul>
<figure><img src="https://img.itch.zone/aW1nLzI4NDY2MzQuZ2lm/original/eydxeT.gif" loading="lazy"><span></span><br></figure>
<p>Thanks for playing &lt;3<br></p>
<p>-lum</p>
<p><br></p>
<p><strong>**********************************************************************************</strong></p>
<h3><strong>Warning:</strong>&nbsp;currently no support for Mac OSX Catalina on itch.io&nbsp;</h3>
<p>The game will run fine via Steam however. If you are running Catalina and want to play the game, I recommend buying it on Steam:&nbsp;</p>
<p><a href="https://store.steampowered.com/app/1160440/PARANOIHELL/" rel="nofollow noopener" referrerpolicy="origin">https://store.steampowered.com/app/1160440/PARANOIHELL/</a></p>
<p>If you've purchased the game before July 17th, 2020&nbsp; you will be able to redeem a Steam key.&nbsp;</p>
<p>If you are having trouble related to Mac OSX Catalina, send me an e-mail (with a receipt or invoice for the game)&nbsp;at: gamesbylum@gmail.com</p>
<p>**********************************************************************************</p>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/H644vDdnnB8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTQ0MTAyLzI4NDY2MDMuZ2lm/original/6SCzZt.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQ0MTAyLzI4NDY2MDguZ2lm/original/U%2F7Uks.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQ0MTAyLzI4NDY2MDEucG5n/original/6gvSsY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQ0MTAyLzI4NDY2MDUucG5n/original/bFRfzJ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQ0MTAyLzI4NzMwODkuanBn/original/fKpVGd.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQ0MTAyLzI4NzMwODYuanBn/original/1u%2FxPM.jpg]]
<p><a href="https://therolistes.bigcartel.com/product/full-boxset-paris-gondo-the-life-saving-magic-of-inventorying" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><del>PHYSICAL COPIES NOW SHIPPING WORLDWIDE!</del></a>&nbsp;(SOLD OUT except via the <a href="https://rattiincantati.com/products/paris-gondo-the-life-saving-magic-of-inventorying-boxset" rel="nofollow noopener" referrerpolicy="origin">Ratti Incantati online store</a>)</p>
<p>Art by&nbsp;<a href="https://www.slowquest.com/" rel="nofollow noopener" referrerpolicy="origin">Bodie Hartley</a>.</p>
<p><em>"The play-based GonParis Method is a simple, smart, and effective way to banish encumbrance forever.&nbsp; Adopt this dungeoneering strategy, and you’ll never be overloaded again."</em>
</p>
<h1>A Simple Effective Play-Based Method&nbsp;To Banish Encumbrance Forever</h1>
<p><span></span>This game is a tongue-in-cheek tribute to encumbrance rules and other tropes found in beloved dungeon-crawling games.
</p>
<p>It is a GM-less storytelling game for 3 to 6 players, designed to be played in a few hours with polyhedral dice and no preparation.
</p>
<p>Players in this game embody Adventurers who, as a group called a Party, have reached the last level of a Dungeon and defeated the Boss who presided over it. Play starts as Adventurers discover Loot you create. The objects you decide your Adventurer carries home makes up what you pack as their Final Inventory.
</p>
<p>If Adventurers hold on to possessions that spark joy, they might feel invigorated and satisfied for the rest of their existence, or at least until their next adventure. But letting go of less emotionally charged but useful Belongings might prove to be a deadly mistake for the Party on their Journey Home.
</p>
<h1>Content</h1>
<h5>Replay</h5>
<p>It’s the transcript of a complete play session, edited for your enjoyment, to give you an overview of how the game works. This is inspired by the TRPG (Tabletalk Roleplaying Game) format popular in Japan.
</p>
<h5>Complete Rules</h5>
<p>This includes the rules and everything you need to play the game in step-by-step instructions. This game is a collaborative storytelling game. You can jump straight to the GonParis Method and follow its Six Steps without prior reading. However, it works better if one player facilitates your first session by reading the rules in advance.
</p>
<h5>Play-Aids and Card Decks</h5>
<p>You will find in the Appendix links to all the Play-aids and Card Decks in both JPG and PDF formats that you will need to play around a table.
</p>
<p>Those are also included as a Miro board that you can copy to very easily play the game online.</p>
<h2>Credits</h2>
<p>A game designed by&nbsp;<a href="https://twitter.com/rolistespod" target="_blank" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">Kalum</a>&nbsp;from&nbsp;<a href="https://rolistespod.com/" target="_blank" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">The Rolistes Podcast</a>.</p>
<p>Rules Editor:&nbsp;<a href="https://chrisssims.itch.io/?ac=6hKcoR9Jch" target="_blank">Chris S. Sims</a>.
</p>
<p>Graphic design: <a href="https://byfrancita.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Francita Soto</a> and Kalum&nbsp;</p>
<p>Art by <a href="https://www.slowquest.com/" rel="nofollow noopener" referrerpolicy="origin">Bodie Hartley</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/sUH5mlZ903o" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE4NTEzMS82OTE3MDM1LnBuZw==/original/r%2BuHfp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE4NTEzMS82OTE5MDA5LnBuZw==/original/IeliJ4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE4NTEzMS82OTE5MDEwLnBuZw==/original/xHRHXo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE4NTEzMS82OTE5MDExLnBuZw==/original/KDuCT9.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE4NTEzMS82OTE5MDEyLnBuZw==/original/To4c42.png]]
<p><strong>Parselings&nbsp;</strong>is a modern Deck building RPG about using collaborative word magic and discovering your place in it. The game takes place in a world like our own, but with one major difference – to some, words have literal power.&nbsp;<strong>Parsecytes</strong>, swarms of ravenous ink-like parasitic organisms, have emerged into the world causing irreversible changes to society and our ecosystem.&nbsp;<br><br>When a Parsecyte invades a human host, it forms a symbiosis with them, together becoming an entity known as a Parseling. At a glance, Parselings are indiscernible from most other humans except for the labels on their skin and the ink mixed into their blood. When brought together in groups, these individuals become greater than the sum of their parts. The infected hosts can use their tattoos to form phrases and sculpt the world to their desires. This power has come to be known as a Parse.</p>
<p>You will play as one of these beings. Struggling to strike a balance between appeasing the Parsecyte within, and proving you are a complex human being who cannot only be defined by a few careless words. This is both a curse and a blessing, but with the others that share your affliction, the world is your oyster.&nbsp;
</p>
<p>Purchase now in order to experience this unique game or download the teaser PDF below to get a better idea of how it plays.
</p>
<p><img src="https://img.itch.zone/aW1nLzU1MjQwMjgucG5n/original/GWSshD.png" loading="lazy"><br></p>
<p><strong></strong><em>Nominal City, or The Wellspring of Infection as it later came to be known, began as a dark metropolis. The weak and watery sunlight shone feebly through the gray sky for only several hours of the day, before the smothering dusk fell upon the tall cluster of buildings. We now know it as the ground zero of the parseling phenomenon, the very soil fertile with meaning and words.</em>&nbsp;<em>In the germination stage of the infection, the stench of paranoia and hushed whispers filled the air. I suppose it was only fitting that in such a place every thought and the stray word became enriched with such intensity of significance.</em>&nbsp;<em>Perhaps the most distinctive thing about Nominal City is that large areas of the city were torn from their roots and rose into the air where they have been ever since. The catastrophe of this created many victims and refugees still clustered within the city, to which the rest reacted poorly to. The memory of this event remains a stain in the collective psyche of the people.</em></p>
<p>&nbsp;<em>The old city encircled by a new wall, sits quarantined on a peninsula away from the rest of the mainland. Underneath in the craters and shadows, it smells like a dense forest of tall gray buildings with faded and peeling pastel paints. Posters are layered over each other like rings of wood in a tree. Replace the forest animals with people rugged up in their thick coats and scarves becoming anonymous figures. There’s a feeling of oppression in the concrete, the enclosing wall bordering the entirety of Nominal City and the nearby mountain range, the fall of the government, and the rise of large private corporations to take over public interests. It doesn’t help that there’s a new movement, spoken of only in quiet corners. Something that might be a threat.&nbsp;</em>
</p>
<p><em>Parselings, have you heard of them?</em></p>
<p></p>
<p><strong><img src="https://img.itch.zone/aW1nLzU1MjM5NzIucG5n/original/67%2BztG.png" loading="lazy"></strong>
</p>
<h2>A Deck of Cards For Each Player</h2>
<p>In the&nbsp;<strong>Choice System</strong>, each player controls a single character and a deck constructed out of a set of regular playing cards. The cards you choose will represent your character’s health and mentality. The larger the deck, the more options, and health they have, while in comparison with fewer cards, the more limited their actions are.
</p>
<p>You will need to make some hard decisions when constructing your deck because of one simple reason: Parselings are not gods, nor are they omnipotent. They will need others to help do what they themselves cannot. As the game progresses your deck can change and twist as your character progresses through different scenarios.
</p>
<h2>A Set of Dice For Your Game Master</h2>
<p>Though predominantly a deck-building game, you will still need a set of dice to be shared by your group. When sitting down to play the game, only the GM will actually need these dice. While many NPC actions could be replicated with cards, it is faster for the GM to use dice on lesser challenges.
</p>
<ul><li>A small pool of d6s (six-sided dice) to represent the small enemies and obstacles in the campaign.
</li><li>A single d10 (ten-sided dice), d12 (twelve-sided dice), and d20 (twenty-sided dice) to help decide the words a Parseling can use.
</li></ul>
<p><strong>Your Imagination</strong>
</p>
<p>As a roleplaying game, stories are at the heart of these systems and the rules offer a systematic way of translating actions into a format that everyone else agrees upon. We are utilizing our imagination to fuel the game, putting our time and our effort to create our own fun and a story we would want to listen to. For players, this means you’ll need to be able to describe your character and what they want to do. For the GM, you’ll need to create an adventure with your players in a way that everyone enjoys.
</p>
<p>Parselings is a game where you get to tell any story that you can imagine.&nbsp; &nbsp;</p>
<p><img src="https://img.itch.zone/aW1nLzU1MjM5NzkucG5n/original/ZLfxXz.png" loading="lazy"><br></p>
<p><strong></strong>Whether you are undertaking a devious deal or enacting a daring distraction, the circumstances are never the same for any two people. Governing the mechanical side of the game, the Choice System is built to embody the individuality of your own character, to represent how you want to play. By choosing your cards it’s more than just a gamble, your choices are will change fate.&nbsp;</p>
<p>Each card in your deck tells a story about your character. You’ll know what it feels like to step into their shoes, watching the odds change with every card you spend and every move you make. Whatever happens in your story, the choice is yours.</p>
<p><br></p>
<figure><span class=""><img src="https://img.itch.zone/aW1nLzU1MjQwMjEucG5n/original/kfJD4Q.png" loading="lazy"></span></figure>
<p><em><br></em></p>
<p><em>By uniting we stand, by dividing you will fall.</em>
</p>
<p>If the Choice System is the gears directing the fate of your characters, Parses are the heart and soul of the game. The Parse System is where your imagination and will to co-operate with others truly matters. Parsing is the supernatural phenomena or magic that is carried out by two or more Parselings with a simple touch and uttering a small string of words. Through using this power to redefine the world, you’ll be able to achieve amazing feats that would be otherwise impossible.
</p>
<p>A Parseling’s words are determined by their perceived role in the world. These come from anywhere – from strangers, friends, and even from the Parseling themselves. All players are involved in the process of determining the potential words each character may possess. Dice are used to mix things up and represent the haphazard nature of the Parsecyte they've bonded.
</p>
<p>Do what you will with your gifts, but ask yourselves, how will your words define you?</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTQxMjMyLzUzMzMzMjguanBlZw==/original/IG8w7D.jpeg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTQxMjMyLzUzMzM0MDEucG5n/original/QHNXk9.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTQxMjMyLzUzMzM0MDIucG5n/original/shkqDs.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTQxMjMyLzUzMzM0MDAucG5n/original/wCxgJm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTQxMjMyLzUzMzMzOTkucG5n/original/tRHRN4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTQxMjMyLzUzMzMzOTgucG5n/original/6PMxxs.png]]
<p><em>Infer Memorial station</em>&nbsp;is the perfect introductory module to introduce a table to Parselings, as well as making a tentative foray into a city that is on the cusp of a great change. &nbsp;It's suitable for up to 6 players and has a run time of about 1 to 2 hours.&nbsp;&nbsp;</p>

[img width=500 [https://img.itch.zone/aW1nLzUzMzM5MzQucG5n/original/Wg5TNP.png]]
<p>************<br></p>
<p>Because Itch.io is rad and has always been incredibly supportive of indie development, PARTICLE MACE will always be $1 less here than on other platforms!</p>
<p>************</p>
<p>PARTICLE MACE is a 1-4 player game by Andy Wallace about defending yourself in a hostile universe by swinging particles into enemies.<br></p>
<p>PARTICLE MACE is a game about capturing the thrill of classic arcade games with a new, physics based mechanic.</p>
<p><span></span>PARTICLE MACE is a game about trying not to die, but that's impossible.</p>
<p><br></p>
<p><img src="http://andymakes.com/particlemace/img/particleMaceAction2_250x250.gif" loading="lazy"></p>
<p>---------------------------------------------<span></span><br>
	<br>
	Features: <br>
	■ 3 Endless and Brutal Arcade Modes <br>
	■ 150 Missions<br>
	■ 9 Ships to Unlock <br>
	■ 2-4 Player Deathmatch <br>
	■ 2-4 Player Arcade Co-op <br>
	■ Leaderboards <br>
	■ PS3, PS4, Xbox One &amp; Xbox 360 Controller Support <br>
	■ Color Blind Support<br>
	<br>
	Those with photosensitivity may experience difficulties playing PARTICLE MACE because of the intense flashing lights and rapid movement during gameplay.<br>
	<br>
	Game by <a href="http://www.andymakesgames.com" rel="nofollow noopener" referrerpolicy="origin">Andy Wallace</a><br>
	Music by <a href="http://bubblepipemedia.bandcamp.com/" rel="nofollow noopener" referrerpolicy="origin">Nathaniel Chambers</a><br>
	Audio by <a href="https://twitter.com/Safety_Orange" rel="nofollow noopener" referrerpolicy="origin">K Anthony Marefat</a> &amp; <a href="https://twitter.com/whereisbobbynow" rel="nofollow noopener" referrerpolicy="origin">Bobby Fata</a><br>
	PR by Maya Kramer<span></span><br>
</p>
<p>
	<br>
</p>
<p><img src="http://andymakes.com/particlemace/img/1v1.gif" height="200" width="200" loading="lazy"><br></p>
<p>
	---------------------------------------------
</p>
<p>
	<em>"Your thumbs ride the analog sticks as if a space cowboy with a mean lasso technique."<br>
	- </em><a href="http://killscreendaily.com/articles/news/get-swing-things-particle-maces-non-shooting/" rel="nofollow noopener" referrerpolicy="origin">Kill Screen</a>
</p>
<p>
	<em>"A rad little game, all controlled with a single joystick/thumbstick.<span></span>"<br>
	- <a href="http://www.gamerevolution.com/preview/particle-mace" rel="nofollow noopener" referrerpolicy="origin">Game Revolution</a><span></span></em></p>
<p>
	<em>"A complex physics based battle royal.<span></span>"<br>
	- <a href="http://greenlitgaming.com/preview-particle-mace/" rel="nofollow noopener" referrerpolicy="origin">Greenlit Gaming</a></em></p>
<p>
	---------------------------------------------
</p>
<p>
	Drop secret notes/send feedback to<br>
	andy[at]andymakes[dot]com or <a href="https://twitter.com/Andy_Makes" rel="nofollow noopener" referrerpolicy="origin">@andy_makes</a></p>
<p>
	more info at <a href="http://www.particlemace.com" rel="nofollow noopener" referrerpolicy="origin">particlemace.com</a>
</p>
<p>---------------------------------------------<span></span></p><p>2021 Update: Unfortunately Apple makes it nearly impossible for small devs to maintain older software on their platform. This game just isn't selling enough at this point in its life for me to dump the time into it to meet Apple's current standards. It makes me sad, but I'm removing the Mac/iOS version so that people don't download something they can't use.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/zJEIuzdBsCw" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzYzNC8xMjc2NS5wbmc=/original/NLI8Vy.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzYzNC8xMjc4My5wbmc=/original/pn9un%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzYzNC8xMjc2Ni5wbmc=/original/WK5zS0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzYzNC8xMjc2Ny5wbmc=/original/QOl7HG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzYzNC8xMjc2OS5wbmc=/original/eRPlH%2F.png]]
<p>Blow up your friends – and snakes – in 7 game modes including Battle Royale, Capture the Flag, King of the Hill, Snake Hunter and EVERYTHING - all game modes at once!</p>
<p><em>"Bomberman clone with awful graphics but good gameplay and some really nice ideas"</em> -- from review by Steam curator SvenEvil's Playground</p>
<p>Local multiplayer with support for XInput and DirectInput controllers, and keyboard. Online multiplayer is possible if you and your friends download <a href="https://parsec.app/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Parsec</a>, which provides screen and controller input streaming.<br></p>
<p><strong>Features</strong></p>
<ul><li>Snakes!
</li><li>7 game modes:
<ul><li>Classic
 
</li><li>Deathmatch
 
</li><li>Capture the Flag (team)</li><li>Battle Royale (team)
 
</li><li>King of the Hill
 
(team)</li><li>Snake Hunter (co-op against the AI)
 
</li><li>EVERYTHING - all the other game modes at once!
</li></ul>
</li><li>Many  powerups, including: Snake, Ultrabomb, Rocket Launcher, Flamethrower,  Remote Control, Detonator, Annhiliator, Strength, Shield, Ghost
</li><li>In-game auctions - collect coins and bid on powerups</li><li>Wide variety of level sizes and game customization options
</li><li>Watch replays of previous games
</li><li>Accessibility  options - customize player, team, bomb and background colors; show  outlines around players; change ghost opacity; run in slow motion  (quarter, half or three quarter speed)
</li><li>Unlock cat photos and stupid drawings
</li><li>Soundtrack by .mpegasus
</li><li>Includes additional arena size options for ultrawide 21:9 displays
</li></ul>
<p>Requires graphics card with Shader Model 3 support (almost all graphics cards released in the last 10 years)<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/pzSsQefTxqA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMxMDU3My83NjIxNzQwLmpwZw==/original/mZ0Nix.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMxMDU3My83NjIxNzU1LmpwZw==/original/ZKxkbm.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMxMDU3My83NjIxNzU4LmpwZw==/original/g8eSyM.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMxMDU3My83NjIxNzYwLnBuZw==/original/UExNoj.png]]
<p><em>Note: This is the digital Print &amp; Play edition.<br></em><strong><em>The official boxed retail version is <a href="https://www.someonehasdiedgame.com/grgstore/pass-the-buck" target="_blank" rel="nofollow noopener" referrerpolicy="origin">currently available via Gather Round Games</a>.</em></strong></p>
<h2>Print &amp; Play Edition</h2>
<p>
	<iframe width="560" height="315" src="https://www.youtube.com/embed/pWAOpiLW0tU" frameborder="0" allowfullscreen="">
	</iframe>
</p>
<p>
	Pass work off to your opponents and fib your way up the corporate ladder in this satirical bluffing card game! Get rid of the tasks in your hand to get promotions and level up, all the way until you reach the top and become the C.E.O.!
	<br>
</p>
<p>
In "Pass the Buck: A Game of Corporate Responsibility Management," players act as corporate employees who each have Tasks to do, Departments that determine their ability to complete Tasks, and a Level which indicates their job title. Players take turns as the Delegator, trying to get rid of all the Tasks in their hand by completing them one-at-a-time themselves, or by passing them off to their opponents for optimal efficiency. Players can bluff about whether they are in the proper Department to take a Delegator's Task, but be careful! If the Delegator believes a player is bluffing, they can call HR, which could have dire consequences.
</p>
<p>
	This lightweight card game is both comedic and strategic. If you're great at forcing other people to do your work for you, you'll be C.E.O. before you know it!
</p>
<p>
	<iframe width="620" height="315" src="https://www.youtube.com/embed/UdcKPzadxxY" frameborder="0" allowfullscreen="">
	</iframe>
</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/pWAOpiLW0tU" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzI3MzgvMTYyMDE1LnBuZw==/original/E%2BHoCx.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzI3MzgvMTYyMDA5LnBuZw==/original/q4k%2FHb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzI3MzgvMTYyMDE3LnBuZw==/original/xdIBxn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzI3MzgvMTYyMDEyLmpwZw==/original/xQL%2Byf.jpg]]
<p>Traveling across the spheres can be exhausting. Kick back and relax with a cocktail by the beach in the Pastel Paradise.
<br>This is a vacation sphere for Troika!</p>
<p>In these 22 pages you'll find:</p>
<ul><li>A vacation setting with a mysterious turtle island resort
  </li><li>Six backgrounds
  </li><li>Six enemies
</li><li>Random tables</li></ul>
<p>Pastel Paradise is an independent production by Robin Fjärem and is not affiliated with the Melsonian Arts Council.</p>
<p>Now includes a watercolor edition featuring all original art by myself!<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMwMDQ3Ny83NTY0MzQwLnBuZw==/original/jTJ0Ef.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwMDQ3Ny83NTY0MzM4LnBuZw==/original/eZ3bsy.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwMDQ3Ny83NTY0MzM5LnBuZw==/original/DDUt6R.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwMDQ3Ny83NjI1NDQwLnBuZw==/original/2C8G1r.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwMDQ3Ny83NjI1NDQxLnBuZw==/original/S2BfMf.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwMDQ3Ny83NjI1NDQyLnBuZw==/original/68Aylp.png]]
<p>Charge through a swarm of pawns in this chess-based twist on tower defense. Work to fortify your back line while protecting against wave after wave of pawns and other chess pieces.</p>
<h5>Play the original Pawndemonium Demo for free&nbsp;<a href="https://tallbeard.itch.io/pawndemonium-demo">here</a>!</h5><h5>Get the ultra-chill Pawndemonium OST on <a href="https://abstractionmusic.bandcamp.com/album/pawndemonium-ost" rel="nofollow noopener" referrerpolicy="origin">Bandcamp</a>, or stream it on <a href="https://open.spotify.com/album/3f0aI8haFLf4Dd2SZcwjsy" rel="nofollow noopener" referrerpolicy="origin">Spotify</a>.</h5>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM3OTc5MC84MDU5MjM5LmdpZg==/original/Vo440V.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3OTc5MC84MDU5MjQwLnBuZw==/original/st0mx5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3OTc5MC84MDU5MjQyLnBuZw==/original/8CMmpL.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3OTc5MC84MDU5MjQxLnBuZw==/original/Eec9CU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3OTc5MC84MDU5MjQzLnBuZw==/original/68OZZ4.png]]
<p>You just recently closed on your dream home. It’s perfect! Well, almost…<br></p>
<p>You quickly find out there's a ghost inhabiting your new abode, and they aren’t too happy with your arrival.<br>However, there is hope! It seems when you bring certain mementos to them, they become docile, and begin to fade. Items that carry bad memories agitate them more, causing them to lash out at you!<br>In order to save your home, you must restore the memories of the former resident, and help them find peace. Fail to bring the correct items in time, and the ghosts will make your stay a little more…eternal.</p>
<p><br></p>
<p>Credits:&nbsp;</p>
<ul><li>Joe - Code / Engine</li><li>Eric - Music</li><li>Josh - Art / Writing</li></ul>
<p><br></p>
<p>This was our submission for the 2020 Global Game Jam.<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTYyNzk5LzI5NTM4NjcucG5n/original/YncLAt.png]]
<p><span></span></p>
<p><strong><em>Pebble Witch</em></strong> is an rpg-ish, walking simulator-y, talking game.&nbsp;</p><p><img src="https://img.itch.zone/aW1nLzcwMjI5NjIuZ2lm/original/zAIZ17.gif" loading="lazy"><br></p>
<p>Play as a witch. Talk to pebbles. Reflect on the melancholy of becoming. Sit more. Walk. More walking. Have a crush on your burly teacher. Enjoy a lovely day in the Australian beach town, Dharawal country - Kiama.</p>
<p><img src="https://img.itch.zone/aW1nLzQ2NjExNDEucG5n/original/nhORdr.png" loading="lazy"><br></p>
<p><strong>Features</strong>• One (1) gay protagonist<strong><br></strong></p>
<p>• Two (2) whole spells<br>• About 30 minutes of playtime<br><span class=""> </span> &nbsp; &nbsp; • 20 mins of this is probably spent walking<br><span class=""> </span> &nbsp; &nbsp; • 2 mins sitting still and waiting<br><span class=""> </span> &nbsp; &nbsp; • 8 mins reading about his teacher’s gardening shorts.<br>• A whole bunch of rocks to sit and listen to.<br>• A really beautiful soundtrack by&nbsp;<a href="https://www.facebook.com/SoftwareOfSeagulls/" target="_blank" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">Software of Seagulls</a></p>
<p><br></p>
<p><iframe width="560" height="315" src="https://www.youtube.com/embed/3jD_Nw4uSy4" frameborder="0" allowfullscreen=""></iframe><br></p>
<p><em>Patch notes:</em></p>
<p>macOS v1.0.4 - fixed an invisible text issue&nbsp;(thanks Flora!)</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/3jD_Nw4uSy4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODMwNTk0LzQ2NjA3NjcuanBn/original/D%2FfeTo.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODMwNTk0LzQ2NjA3NjYuanBn/original/1C9BrK.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODMwNTk0LzQ2NzE3OTQuanBn/original/ke6ChC.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODMwNTk0LzQ2NjA3NjMuanBn/original/RSb22V.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODMwNTk0LzQ2NjA3NjQuanBn/original/ltQ3ZC.jpg]]
<p>Peck N Run is the cutest arcade action game ever made about regurgitating crustaceans!<br></p>
<p>Peck N Run is the only game ever made about the eternal salty struggle between Sea and Sand Piper!</p>
<p>Your chicks are hungry - and only you can feed them fast enough!<br><br><img src="https://img.itch.zone/aW1nLzI0ODg5OTUuanBn/original/D0FTwN.jpg" loading="lazy"><br><br>Run across the beach at break-peck speed, pecking every shellfish&nbsp;you can find!</p>
<p><img src="https://img.itch.zone/aW1nLzI0ODg5OTYuanBn/original/tO4Qsn.jpg" loading="lazy"><br></p>
<p>Dodge the debris and&nbsp;<strong><em>DO NOT GET HIT BY THE WAVES</em></strong>.</p>
<p><img src="https://img.itch.zone/aW1nLzI0ODg5OTguanBn/original/4Gn8bu.jpg" loading="lazy"><br></p>
<p>If you do, you'll drop your mouthful and have some very <em>hangry</em> chicks to contend with.</p>
<p>Peck N Run is a fast-paced high-score-chasing arcade game full of cute birds, even cuter chicks, and idiot crustaceans. What's not to love?</p>
<p><strong><em>GET PECKING!</em></strong></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/WX9KnMh5FYQ" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDU4OTIxLzI0MTAyMzguZ2lm/original/GL1yGF.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU4OTIxLzI0MTAyMzkuZ2lm/original/iKdAJx.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU4OTIxLzI0MTAyNDcuZ2lm/original/SmPmyY.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU4OTIxLzI0MTAxNTEuZ2lm/original/FsnDyk.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU4OTIxLzI0MTAyNDAuZ2lm/original/scGVcz.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU4OTIxLzI0MTAxNDEucG5n/original/Bc7BjD.png]]
<p><em>You're the Damned One, a reptilian Fallen Holy Warrior, seeking for Penance to atone for your sins against your kind. You have been given a task: Go through the gates of Hell and destroy all the sin you can see. </em><em></em><br></p>
<p><em>You start with your sword and pistol, and you will find more weapons in the corners of Hell.</em><em></em><br></p>
<p><em>Show them your Holy Fury, and only then you shall be redeemed.</em></p>
<hr>
<p><strong>Penance </strong>is an <strong>oldschool style FPS</strong> with a campaign mode with hand made levels, and an endless mode with procedurally generated levels covered in  gritty retro graphics. You play as anthropomorphic lizard templar dude <em>(look I like lizards okay)</em>. <br></p>
<p>The campaign mode features five (or six if you count the very first one) hand made levels, and a bossfight.&nbsp;<br></p>
<p>The goal of the endless mode is simple: Cause enough carnage and earn points from each kill, collect keys each level to get through the portals, then show off your highscore to your friends. <br></p>
<p>The game has a Discord support, so people can see your score while playing and also which campaign level you are on. If you get high enough score, you will get the ending cutscene. Penance also has simple <strong>bunnyhopping </strong>that increases your speed, <strong>crouch-sliding </strong>and a <strong>rage mechanic</strong>, that when activated, gives you double damage to all weapons, except the sword does quadruple damage.<br></p>
<hr>
<p><strong>Default Controls:</strong></p>
<ul><li>WASD - Movement</li><li>Spacebar - Jump</li><li>Left mouse button - Shoot</li><li>Right mouse button - Zoom</li><li>Scrollwheel and number keys - Change weapon</li><li>Q - Activate rage when yellow bar is 100</li></ul>
<p>Controls should be able to be remapped from game launcher.&nbsp;</p>
<p>I haven't tested controller with this game, it was created for mouse and keyboard in mind.<br></p>
<hr>
<p>This game was simply made for fun, because it's something I felt like I wanted to play and I love oldschool style FPS games. It's probably not that difficult game for FPS players, but I am proud of this game and I find it fun and satisfying to play. Due to the overwhelming popularity I also made the campaign mode, which let me practice proper level design.<br></p>
<p>I used a lot of feedback I got from Ironscale and Castle Rodok to make this game, but also learned a lot of new things. I hope you have as much fun playing Penance as I had making it!<br></p>
<p>If you want to share your highscore with me, join my Discord server! <a href="https://discord.gg/PZkYZRx" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzIyMDQ1ODUucG5n/original/Nlr0Wd.png" alt="Discord Link" title="Discord Link" width="200" loading="lazy"></a><br><br></p>
<p>Music was made by Fredrik Thrysoe: <a href="https://fredrikthrysoe.wordpress.com/" rel="nofollow noopener" referrerpolicy="origin">https://fredrikthrysoe.wordpress.com/</a><a href="https://fredrikthrysoe.wordpress.com/" rel="nofollow noopener" referrerpolicy="origin"></a><br></p>
<p>You can buy the soundtrack here: <a href="https://fredrikthrysoe.bandcamp.com/album/penance-originial-game-soundtrack" rel="nofollow noopener" referrerpolicy="origin">https://fredrikthrysoe.bandcamp.com/album/penance-originial-game-soundtrack<br></a></p>
<p>Voice acting for final boss and narrator: <a href="https://twitter.com/GetGianni?s=20" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/GetGianni</a><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/KksUxMkmjEA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTE3MjM1LzI2ODYyMDUucG5n/original/3kAVFq.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTE3MjM1LzI2ODYyMDYucG5n/original/KM7u9C.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTE3MjM1LzI2ODYyMDguanBn/original/lIQvOT.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTE3MjM1LzI2ODYyMTEuanBn/original/%2FOn34V.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTE3MjM1LzI2ODYyMTMuanBn/original/gEQA1C.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTE3MjM1LzI2ODYyMTQuanBn/original/ePWCXa.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTE3MjM1LzI2ODYyMTUuanBn/original/QlkHEC.jpg]]
<p><strong>Pendula Swing: The Complete Journey</strong>&nbsp;is a&nbsp;<strong>point &amp; click adventure</strong>&nbsp;game set in a&nbsp;<strong>fantasy&nbsp;</strong>version of the&nbsp;<strong>American Roaring 1920s</strong>. Picture the glamour and turbulence of the 20s in a world populated by elves, dwarves, goblins, orcs and other fantastic creatures besides humans. Starring Brialynne Donu Tenúm, the greatest and most celebrated dwarven hero of this world, Pendula Swing features hundreds of unique characters and quests that unfold how the world evolved after Brialynne saved it.</p>
<div class=""><iframe style="width: 500px; height: 281px" src="https://www.youtube.com/embed/ok2_Cdtkgt8" frameborder="0" allowfullscreen=""></iframe></div>
<p>Featuring over<strong>&nbsp;7 hours of gameplay</strong>&nbsp;time and&nbsp;<strong>400 unique characters</strong>&nbsp;you can interact with, in&nbsp;<strong>Pendula Swing: The Complete Journey</strong>&nbsp;you can find...</p>
<ul><li><strong>Diversity of characters</strong>&nbsp;- from LGBTQ+ to wheelchairs, you will encounter various characters with unique personalities, tastes and sometimes disabilities</li><li><strong>Unique protagonist</strong>&nbsp;- you are playing as Brialynne, the most famous hero this world has ever seen! You are a celebrity and richer than you can imagine - you stumble upon statues, books and movies depicting you, and you even have a fan club</li><li><strong>Progressive dating options</strong>&nbsp;- you are a widow who has mourned the passing of your wife for a long time. Allow love back in your life by dating a variety of characters of diverse genders and relationship preferences</li><li><strong>Lots of Cute Pets!</strong>&nbsp;Not only does Brialynne have a very sassy cat, but she can also adopt pretty much every cute critter that allows it</li><li><strong><strong>I</strong>conic 1920s stories &amp; locations</strong> such as prohibition, the suffragette movement, our version of Elis Island and immigration,&nbsp;the Speakeasy, the newly invented Cinema, or the Department Store</li><li><strong>No Violence</strong>&nbsp;- Brialynne is simply too powerful and famous to hit anyone, besides, these days they write Every Single Gossip in the newspapers!</li><li><strong>Original Soundtrack</strong>&nbsp;to fulfil your every need for swing and jazz</li></ul>
<p></p>
<p>Besides this, you can also&nbsp;<strong>shop</strong>&nbsp;and&nbsp;<strong>style&nbsp;</strong>yourself and your home in&nbsp;<strong>1920s fashion</strong>,&nbsp;<strong>smuggle&nbsp;</strong>dwarven ale, drink&nbsp;<strong>alcohol</strong>&nbsp;and&nbsp;<strong>suffer&nbsp;</strong>its effects, take a calm moment to&nbsp;<strong>fish</strong>, attend AA meetings,&nbsp;<strong>adopt&nbsp;</strong>transmorphed animals, complete some word&nbsp;<strong>puzzles</strong>,&nbsp;<strong>summon&nbsp;</strong>your wife’s spirit,&nbsp;<strong>kiss&nbsp;</strong>your dates, give flowers, be&nbsp;<strong>extravagantly generous</strong>&nbsp;or&nbsp;<strong>cheap&nbsp;</strong>and greedy like they say dwarves are, and much more!</p>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/ok2_Cdtkgt8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTgxMzY1LzMwNjI0MTEuanBn/original/GTcLZ5.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxMzY1LzMwNjIzOTMuanBn/original/fMAG%2BU.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxMzY1LzMwNjIzOTYuanBn/original/Gxh7TR.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxMzY1LzMwNjIzOTcuanBn/original/JJRCBI.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxMzY1LzMwNjI0MDEuanBn/original/Binvpn.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxMzY1LzMwNjI0MTAuanBn/original/06Hrb6.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxMzY1LzMwNjI0MDIuanBn/original/XHzf8D.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxMzY1LzMwNjI0MDAuanBn/original/cAXmtW.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxMzY1LzMwNjI0MDQuanBn/original/R69Zzm.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxMzY1LzMwNjIzOTguanBn/original/KnnYf0.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxMzY1LzMwNjI0MTMuanBn/original/M9LmUH.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxMzY1LzMwNjI0MDguanBn/original/1XQTC2.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxMzY1LzMwNjI0MTUuanBn/original/C5mh4E.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxMzY1LzMwNjI0MTQuanBn/original/V%2Bo%2Feg.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxMzY1LzMwNjIzOTUuanBn/original/3JKM1c.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxMzY1LzMwNjI0MDUuanBn/original/m1sGLY.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxMzY1LzMwNjIzOTkuanBn/original/D3J%2B2p.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxMzY1LzMwNjI0MDMuanBn/original/FzilxA.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxMzY1LzMwNjI0MDcuanBn/original/hbwFVS.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgxMzY1LzMwNjI0MDYuanBn/original/lTrHkI.jpg]]
<p><em><em>A planet poisoned by its people’s lifeline. The people’s need for just a few more drops of that poison. A remote, dangerous chance to discover a new reserve. As a member of a team of disposable drillers left alone on an asteroid to take that chance, the hope for your home colony that you lost long ago is now dwindling what little hope you reserved for yourself. If you can just find and secure this last energy source, it may let them live a few decades longer, but more importantly, you could earn enough money to leave this place far behind before you have to watch it destroy itself…</em></em></p>
<p><strong style=""></strong><em><strong>Penumbra</strong></em>&nbsp;is a contemplative one-shot adventure for Jesse Ross’s&nbsp;<em><a href="https://trophyrpg.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Trophy Dark</a></em>&nbsp;in which the players, a rag-tag group of burnt-out Sap drillers forced into the role of last-minute heroes, will struggle to cross a desolate asteroid and add a few final grains of sand to their colony planet's proverbial hourglass.<strong>&nbsp;A bleak and lonely exploration of whether to fight the end</strong><strong>,&nbsp;</strong><strong>this book contains all of the rules you need</strong><strong>&nbsp;to play</strong>, including all-new character creation options.</p>
<h3 class="text-center">Theme: Recurrence</h3>
<p>The book is 32 pages long. &nbsp;It includes:
</p>
<ul><li>4 new occupations and 6 new backgrounds, drives, and rituals for character creation
</li><li>15 moments
</li><li>10 conditions
</li></ul>
<p>You can also use the new character creation options from this adventure in the character keepers for&nbsp;<a href="https://www.arktosaur.us/keepers/trophydark" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><em>Trophy Dark</em></a>&nbsp;and&nbsp;<a href="https://www.arktosaur.us/keepers/trophygold" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><em>Trophy Gold</em></a>&nbsp;by&nbsp;Drew/Arktosaur for easier online play!</p>
<p>With purchase, you get the following fully bookmarked PDFs:
</p>
<ul><li>Single-page layout
</li><li>Facing-spread layout
</li><li>Printer-friendly, black-and-white, art-less version
</li><li>A separate file for character sheets
</li></ul>
<p>[A print-on-demand option is&nbsp;coming soon-ish!]<span></span>
</p>
<p>A limited number of free community copies are available below for those who are currently struggling.&nbsp;<strong>Every purchase of <em>Penumbra&nbsp;</em>will unlock one additional free community copy for another user.&nbsp;</strong>If you are feeling particularly generous, you can increase your purchase price, and for every $9.00 above the default price you pay, another free community copy will be unlocked!
</p>
<p>
</p>
<hr>
<p>If you want a darker, more horrifying one-shot adventure, check out my other&nbsp;<em>Trophy Dark</em> incursion <a href="https://atypicalfaux.itch.io/the-pried-eye"><em><strong>The Pried Eye</strong></em></a><strong><em></em></strong>!</p>
<p><iframe frameborder="0" src="https://itch.io/embed/990069?bg_color=000000&amp;fg_color=edc932&amp;link_color=8e79bb&amp;border_color=edc932" width="552" height="167"><a href="https://atypicalfaux.itch.io/the-pried-eye">The Pried Eye: A Trophy Dark Incursion by ATypicalFaux</a></iframe><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA5NDE3NC82MzA0OTIzLnBuZw==/original/FqpjPS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5NDE3NC82MzA0OTIxLnBuZw==/original/Tnr3La.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5NDE3NC82MzA0OTIyLnBuZw==/original/Syh%2Bkd.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5NDE3NC82MzA1OTM3LnBuZw==/original/6MXAX1.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5NDE3NC82MzA0OTI1LnBuZw==/original/7hMZi%2B.png]]
<p><strong>Earth Has Fallen:</strong></p>
<p><em>On the morning of June 14, 1968, a group of hippies fled to the mountains of Colorado to wait for doomsday, as the meteor, Icarus, neared Earth. Prophet Don, the leader of the doomsday cult, reported that after the meteor stuck the planet, California would slide into the ocean, the land would be plagued with horrible earthquakes, and society as we knew it would collapse. Don was correct.&nbsp;</em>
</p>
<p>You are a Survivor, one of a handful of children born from&nbsp;<strong>The Children of the Flowers</strong>, living in the mountainside town of Eldorado Springs, Colorado. Since Icarus's landing, the planet has seen wars, massive earthquakes, and the atmosphere poison itself. Not in Eldorado Springs though, it's safe here,<em>&nbsp;it's always been safe here</em>. Things are said to live out in The Periphery, the space around the town that none of these problems seem to cross over into, but it's fine here.<em>&nbsp;It's always fine here</em>. Rumor is the atmosphere is starting to clear up, but the people who leave into The Periphery don't always come back. What are you going to do about it?</p>
<p><strong>Phanta&nbsp;</strong>is a rules-lite and easy to work with RPG system, designed for fast decisive actions, and lasting relationships, both with the other Survivors you find yourself with, and the other folks in Eldorado Springs. All you need to play is 2-6 players, a copy of the rules, your Survivor's playbook, and a handful of d6s.</p>
<p>The Playbooks and Pop Culture Quick Reference guide are both marked as Demos just so players can more easily download them without needing to purchase the full game, but don't contain significant game text within them.</p>
<p>Phanta now officially supports Role,&nbsp;<a href="https://app.playrole.com/sheet-templates/3f2fbff0-phanta/save" rel="nofollow noopener" referrerpolicy="origin">and I have a basic character sheet up there if you'd like to use it</a>.</p>
<p>Phanta was made as part of the <a href="https://itch.io/jam/record-collection-2k21" target="_blank">Record Collection 2k21 Jam</a> and is based on the song Phanta by Le Tigre (off their incredible 1999 debut&nbsp;&nbsp;self titled album).</p>
<div class=""><iframe style="width: 500px; height: 281px" src="https://www.youtube.com/embed/C89oHnkS0ts" frameborder="0" allowfullscreen=""></iframe></div>
<p>If you'd like a review copy of this game, shoot me a message on twitter (<a href="https://twitter.com/Keganexe" rel="nofollow noopener" referrerpolicy="origin">@Keganexe</a>) or email me at Phanta@keganexe.com.</p>
<p>Print copies are here! You can reach me either of the above ways to get one, or purchase through itch (which is a little clunky but we will make it work!)</p>
<p>I made a new game, Star Heist, that uses a heavily modded version of the Phanta rulest to run! If you're interested you can get it <a href="https://keganexe.itch.io/star-heist">here</a>, you can play Phanta inside of an Adam Bell game, <a href="https://adamebell.itch.io/stat-heist">Stat Heist</a> here.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/C89oHnkS0ts" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODgzMjQ0LzQ5NzU0NjQucG5n/original/Gavs4F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODgzMjQ0LzQ5NzU0NDgucG5n/original/R6UEQV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODgzMjQ0LzQ5NzU0NTgucG5n/original/EfEUpO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODgzMjQ0LzQ5NzU1OTkucG5n/original/HwJgVP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODgzMjQ0LzQ5NzU2MDIucG5n/original/6B3Bq7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODgzMjQ0LzUyMjEzOTEuanBn/original/2ZD0GY.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODgzMjQ0LzUyMjg2MzcuanBn/original/2naaY6.jpg]]
<p><br></p>
<h2>Epilepsy Warning:&nbsp;</h2>
<h2>Game features flashing lights/elements</h2>
<p>Survive the treacherous tubular highway, dodging grey blocks and phasing through coloured ones.&nbsp;</p>
<p>You may go far, but the road is endless...</p>
<p><img src="https://img.itch.zone/aW1nLzcwODE3NjcuZ2lm/original/ncgsMU.gif" loading="lazy"><br></p>
<h3>Phase your way to glory!</h3>
<p>
</p>
<p>Your ship comes in both orange and blue! You can swap between each of those freely but they're not there for style: certain obstacles cannot be crossed without being the same colour. Make sure you're the right one to phase through and brave the highway for just a little longer.</p>
<p><br></p>
<figure><img src="https://img.itch.zone/aW1nLzUyMTU5MTAuZ2lm/original/RNfg%2Bs.gif" style="color: inherit; font-size: inherit" loading="lazy">&nbsp;<img src="https://img.itch.zone/aW1nLzUyMTU5MTcuZ2lm/original/%2BGm4eR.gif" loading="lazy"><span></span><span></span><span></span></figure>
<p></p>
<p><br></p>
<p>PhasR also includes:</p>
<ul><li>A killer synthwave soundtrack to cruise to&nbsp;♫</li><li>A local scoreboard to challenge your friends &gt;:D</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/L4hGQ2NIhCM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTIxMTQxLzUyMTcwMDMucG5n/original/9PEY5b.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIxMTQxLzUyMTcwMzUucG5n/original/i2Ex9z.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIxMTQxLzUyMTcwMzMucG5n/original/%2F5rtlG.png]]
<p>Pictassembler is an engineering puzzle game where you set up a production line of marbles&nbsp;and operator blocks to assemble pixel art images one block at a time. Each marble can be stuck to an anchor or an existing pixel&nbsp;block to create a pixel block in a given location, and can also be shaded appropriately. The finished block shape needs to match the solution image to finish the level. The challenge comes in setting up the placement and timing of the marbles' paths to ensure that they land in the solution grid correctly.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/VMKM2wYg7GI" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTI0ODA1LzI3Mzg5NzAucG5n/original/Xo%2BJPz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI0ODA1LzI3Mzg5NzEucG5n/original/jB6LGk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI0ODA1LzI3Mzg5NzIucG5n/original/XKCBYA.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI0ODA1LzI3Mzg5NzMucG5n/original/4gYtzk.png]]
<p><strong>Ki</strong><strong>ng Cake, the dessert-headed monarch, has decided it’s time for his daughter to get married, but she other plans! </strong><br>The King has devised “The Royal Games” in which the winner will marry Princess Bow. Since she can’t talk her father out of it, Bow decides to put on a disguise and enter the competition herself. Along the way, she discovers a nefarious plot that threatens all life aboard the Space Station Kingdom. Can she get to the bottom of things before it’s too late… <em>and </em>win the Royal Games at the same time?<br></p>
<h2>Features</h2>
<p><strong>TWISTED ARCADE GAMEPLAY</strong> Get bigger as you eat. Barf to squeeze down to size. Barf on anything that moves. Reap the rewards.</p>
<p><img src="https://img.itch.zone/aW1nLzE1MTgxNTAuZ2lm/original/Wb0Y3c.gif" loading="lazy"></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p><em>
<p><strong>EXPLORE INTRICATE WORLDS</strong> Giant interconnected overworlds are filled with strange life, and secret rewards. Travel to five completely unique areas including Sushi Gardens, Kitchen Chaos, and Astro Farm.<br><em><img src="https://img.itch.zone/aW1nLzE1MTgxNTUucG5n/original/kw4cWN.png" loading="lazy"></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p><em>
<p><strong>HAND-CRAFTED CHALLENGE</strong> Each hand-made, non-procedural level has a unique hook or puzzle from dodging alien bulls, spitting bombs, eating flying pies, or bowling while on conveyor belts—there’s always something new.</p>
<p><strong>MASSIVE, WILD BOSSES</strong> Nearly a <u>dozen</u> <strong>bat-barf crazy bosses</strong> will be coming your way. How will you beat the Accordion Centipede? Or a living pile of nachos? Use your BRAIN, your SKILLS, and your MOUTH!<br><em><img src="https://img.itch.zone/aW1nLzE1MTgxNTcuZ2lm/original/LNP94y.gif" loading="lazy"></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p><em>
<p><strong>ONE-OF-A KIND POWERUPS</strong> Throughout the Space Station Kingdom there are dozens of special Disguises. These look cool and also give you special abilities! Each Disguise has a Pro and a Con. Swap Disguises to find the best one for each situation.<br><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p><em>
<p><strong>OPEN-ENDED ANTICS</strong> Charming Pillbugs roam these space stations. They may want to play a nice game of tennis, or may steal your balls! Watch out for their lawn darts, bombs, flying pies, and tractors! Barf on them, bump them, torch them, or knock them into open space. Don’t worry they can hold their breath a long time!<br><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p><em>
<p><strong>HOURS OF ADVENTURE</strong> The main story is 8-12 hours alone on the first playthrough. Getting the “Gold Medal” for quick completions on each level opens a special CHALLENGE SECTION in each world!<br><em><img src="https://img.itch.zone/aW1nLzE1MTgxNTguZ2lm/original/041uEo.gif" loading="lazy"></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p><em>
<p><strong>WILD CHARACTERS</strong> Talk to dozens of interesting aliens on your journey including Cupcake people, Scrounger Goblins, sentient shrimp, and of course your insane father King Cake.</p>
<p><strong>MANIC MULTIPLAYER MAYHEM</strong> The 4-player, <strong>OFFLINE</strong> couch competitive mode is the definition of PARTY TIME. Dozens of custom levels give you a variety of goals to compete to win. Casual and Hardcore players can boost it out, bumping bums, barfing blobs, and belching balls!<br><em><img src="https://img.itch.zone/aW1nLzE1MTgxNjAuZ2lm/original/xhNc2g.gif" loading="lazy"></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p><em>
<p><strong>ONLINE LEADERBOARDS</strong> Each action level lets you compete for the fastest time with the world! (Must be connected through Steam)<br></p>
</em></em><p><em><em></em></em><br></p><p><em><em></em></em><br></p>
<p><em><em></em></em><br></p>
<p><em><em></em></em><br></p>
<p><em><em></em></em><br></p>
<p><em><em></em></em><br></p>
<p><em><em></em></em><br></p>
<p><em><em></em></em><br></p>
<p><em><em></em></em><br></p>
<p><em><em><strong>ONLINE LEVEL SHARING</strong> Ready to craft your own levels? The intuitive level editor will have you combining and arranging all manner of crafty creations in no time. Quickly make and then test your levels. Ready to share your level with your friends or the world? Upload it to Steam Workshop and invite them to play it! (Online level sharing requires connection through Steam. You can still make levels not connected to Steam.)<em><br></em></em></em></p>
<p><img src="https://img.itch.zone/aW1nLzE1MTgxNjMucG5n/original/HsRa1z.png" loading="lazy"></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p></em></em></em></em></em>

<iframe width="720" height="450" src="https://www.youtube.com/embed/PFOBngG_wUw" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzA5MTIwLzE1MTgxNzEucG5n/original/HoCCq0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA5MTIwLzE1MTgxNzIucG5n/original/5RKv6q.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA5MTIwLzE1MTgxNzMucG5n/original/oQfS%2F2.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA5MTIwLzE1MTgxNzQucG5n/original/%2FUGHOz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA5MTIwLzE1MTgxNzUucG5n/original/%2BbJYVw.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA5MTIwLzE1MTgxNzcucG5n/original/SJoONT.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA5MTIwLzE1MTgxNzgucG5n/original/AKud%2Bq.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA5MTIwLzE1MTgxNzkucG5n/original/a7fHw1.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA5MTIwLzE1MTgxODAucG5n/original/EKR2vo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA5MTIwLzE1MTgxODEucG5n/original/LFCpqC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA5MTIwLzE1MTgxODIucG5n/original/XAZ1L5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA5MTIwLzE1MTgxODMucG5n/original/BphCSv.png]]
<h1>A difficult open world puzzle game about plumbing.</h1>
<p></p>
<div class=""><iframe style="width: 500px; height: 281px" src="https://www.youtube.com/embed/6e2M6B251XU" frameborder="0" allowfullscreen=""></iframe><br></div>
<h2>Available now for PC, OSX &amp; Linux</h2>
<p>“A superb, sunny brain-smasher”<br><a href="https://www.techradar.com/news/the-best-ipad-games-in-2019/6" target="_blank" rel="nofollow noopener" referrerpolicy="origin">TechRadar</a><br><br>“Brilliant and often pleasantly maddening tile-based puzzle designs”<br><a href="https://toucharcade.com/2019/02/22/toucharcade-game-of-the-week-pipe-push-paradise/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">TouchArcade</a><br></p><p>"Infuriating"&nbsp;<br><a href="http://www.pcgamer.com/restore-the-water-supply-in-rock-hard-puzzler-pipe-push-paradise/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">PC Gamer</a></p>
<hr>
<p>You've arrived on a lonely island faced with a hero's calling. The island's plumber has been out of commission for a while and the residents are counting on you to get the water running again. They could all really use a shower.&nbsp;</p>
<p>In order to help, you'll need to push, flip and roll pipes all across the island in some of the most challenging puzzles out there! The minimalist tile-based gameplay is super simple but the puzzles are anything but, each offering a unique idea and problem to solve, and filled with surprises and new mechanics.&nbsp;</p>
<p>With an art style that wouldn't look out of place in a dusty old travel guide to Puerto Rico and a relaxing bossa nova guitar soundtrack, Pipe Push Paradise is bound to satisfy any serious puzzle lover.&nbsp;</p>
<p>Rise to the occasion (push pipes around) and restore this paradise to its former glory!<br></p>
<h3>Features:</h3>
<ul><li>Pipes</li><li>Tile-based gameplay</li><li>Dozens of elegant puzzles packed with surprising mechanical twists</li><li>Lush and relaxing art &amp; music by <a href="http://teodorozamudio.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Teodoro Zamudio</a></li><li>Full controller support</li><li>Includes Steam key</li></ul>
<hr>
<p><a href="http://pipepushparadise.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">pipepushparadise.com</a><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/6e2M6B251XU" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTY3NjQ3LzEwMTUxMzUuanBn/original/ogreMX.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY3NjQ3Lzk4Njc1MS5qcGc=/original/pMdPhZ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY3NjQ3LzEwMTUxMzcuanBn/original/ToHX8N.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY3NjQ3LzEwMTUxMzguanBn/original/zGdHN9.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY3NjQ3LzEwMTUxMzQuanBn/original/t9SdI9.jpg]]
<p>Take Pippu on an epic platforming adventure to defeat the nefarious Obkins and retrieve the stolen Baubles!</p>
<p>Pippu is a heroic little creature from the world of the Beandrops. One day her planet is visited by hostile aliens called the Obkins, who travel from place to place stealing precious treasures to power their dangerous and wacky machinery.</p>
<p>Run, climb and swim your way through 14 worlds to bash the baddies and save your planet.</p>
<p><strong>Features:</strong></p>
<ul><li>Colorful, vibrant worlds with lots of nooks and crannies to explore.</li><li>A kooky cast of weird and wonderful characters to meet.</li><li>Collect all 56 Baubles to restore your world to its full glory.</li><li>Fun for all the family, young and old, beginner or seasoned gamer.</li></ul>
<p><br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzY1NTM4ODkucG5n/original/3pk3C3.png" alt="pippu_and_a_bauble" title="pippu_and_a_bauble" loading="lazy"><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/X6d9ooqvpyY" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTk5Mjk0LzY1MzMzMDcucG5n/original/idLkMO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTk5Mjk0LzY1MzMzMDUucG5n/original/ZtUOBn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTk5Mjk0LzY1MzMzMDYucG5n/original/3jVTJ6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTk5Mjk0LzY1MzMzMDQucG5n/original/%2ByMUw%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTk5Mjk0LzY1MzMzMDMucG5n/original/ATXSR8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTk5Mjk0LzY1MzMzMDgucG5n/original/l7PAMl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTk5Mjk0LzY1MzMzMDkucG5n/original/M%2FKBPn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTk5Mjk0LzY1MzMzMTAucG5n/original/HwUDmE.png]]
<p>
A&nbsp;<strong>6px by 4x</strong>&nbsp;<strong>Font</strong>&nbsp;with<strong>&nbsp;316 Glyphs</strong><strong>.</strong> Designed for retro styled pixelated games.<strong></strong></p>
<ul><li>Includes uppercase and lowercase letters;</li><li>includes many accented letters, numbers and symbols;</li><li>Width 4px, ascender height 6px, descender -2px;
<br>some glyph are slight bigger for better visual appeal / readability;&nbsp;</li><li>Best size: 16px, 32px, 48px, etc.</li></ul>
<p><br></p>
<p><strong>License:</strong></p>
<ul><li>This resource can be used in free and commercial games, and other media.</li><li>You may edit and modify this resource for your own games and/or media projects.</li></ul>
<ul><li>You may NOT redistribute the resource itself, or derivatives for free, paid or otherwise.</li><li>You may NOT transfer this license, or issue sub-licenses for this resource (or derivatives) for third parties.</li></ul>
<ul><li>This&nbsp;resource is&nbsp;not responsible for any loss or damage of any nature.</li><li>This resource has no warranties of merchantability and fitness for a particular purpose.</li></ul>
<ul><li>Credit is optional but appreciated.</li></ul>
<p>&nbsp; &nbsp; &nbsp;</p>
<p>
I'm always interested in seeing what you have done with it.<br>If you publish a project using this asset -&nbsp;give me a shout out.</p>
<p></p>
<p><br></p>
<h3>Other Related Assets:</h3>
<p><iframe frameborder="0" src="https://itch.io/embed/728688?link_color=03d162" width="552" height="167">&lt;a href=&quot;&lt;a href=&quot;https://samuelsousa.itch.io/pixel-squared&quot;&gt;Pixel&quot; class=&quot;redactor-linkify-object&quot;&gt;https://samuelsousa.itch.io/pixel-squared&quot;&gt;Pixel&lt;/a&gt; 2 by Samuel Sousa&lt;/a&gt;</iframe><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzQzODQzLzQxNTMyMDUucG5n/original/UMxSC6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQzODQzLzQxNTMyNTQucG5n/original/VXCrd4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQzODQzLzQxNTMyMDQucG5n/original/hd8mjQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQzODQzLzQxNTMyMDYucG5n/original/vFXWqu.png]]
<p>Pixel Fireplace is a cozy, type-controlled simulation. Strike a <em>MATCH</em>, throw <em>LOGS</em> onto the crackling fire, and watch them slowly burn down to ash in real-time. Discover more interactive commands like <em>MARSHMALLOW</em>, <em>SMORE</em>, <em>HOTDOG</em>, <em>FIRECRACKER</em>, <em>NEWSPAPER</em>, <em>RED</em>, <em>SUNSET</em>, <em>WATER</em>, or just sit back, turn the lights down  and enjoy.<br></p>
<p>- <a href="https://twitter.com/ted_martens" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Ted Martens</a></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzQ2ODI4ODAuZ2lm/original/qNPZIs.gif" loading="lazy"><br><br></p>
<p>If you purchased Pixel Fireplace back when we had it on the Hex-Ray Studios website and the Mac App Store, please email me and I'll get you a fresh copy! <br>
✉ → tedmartens[at]gmail[dot]com<br></p>
<p>Credits:<br>
Original Fireplace by Ted Martens © 2010<br>
Hex-Ray Studios - Ken Kopecky &amp; Ted Martens © 2012<br>Hammertail - Ted Martens © 2015 - 2021<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTEwMTQvMTU4NjI1Ny5naWY=/original/kA%2FUqo.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvOTEwMTQvNDQ3NzY4LmdpZg==/original/AwHero.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvOTEwMTQvMTUzNTM4OC5naWY=/original/4xra3I.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvOTEwMTQvMTUzNTM4OS5naWY=/original/cVNzsJ.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvOTEwMTQvMjU3Nzg0OC5wbmc=/original/8K68eJ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTEwMTQvNDY1OTcwNy5qcGc=/original/eTwlK0.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTEwMTQvNDM5MTcwLmpwZw==/original/V%2BdfLQ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTEwMTQvMjY3MzIyMC5wbmc=/original/IYyVOC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTEwMTQvNDQwNTYxLnBuZw==/original/EAplrU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTEwMTQvMTUzMzU0Ny5wbmc=/original/6EaHsq.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTEwMTQvNDQwNjAyLmpwZw==/original/wI4OGg.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTEwMTQvNDM5MzIwLnBuZw==/original/yvllFf.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTEwMTQvNDY4Mjk4NS5wbmc=/original/PgefXL.png]]
<h1>Simple Side-Scroller - 17 Animated  Containers
</h1>
<h3><a href="http://cyangmou.itch.io/">Back to my Shop-page</a></h3>
<p>This set will liven up your sidescroller environment.</p>
<p>It contains a lot of animated props and particles with which you can build destructive environment
</p>
<p>All assets were designed for an approximately 32 px tall characters (26-38px size range) with a basic tilesize of 16x16 px in mind.
</p>
<p><strong>Graphics:</strong></p>
<ul><li>2 different chests with 24 frames of animation each: </li><li>chest opening animation</li><li>chest closing animation</li><li>chest idle animation</li><li>3 different crates with an intact and an destructed frame</li><li>3 different gold pots with an intact and an destructed frame</li><li>3 different china pots with an intact and an destructed frame</li><li>3 different clay pots with an intact and an destructed frame</li><li>3-4 particles for each type of material</li></ul>
<p><strong>Files:</strong></p>
<ul><li>a 320x240 sprite atlas with all frames</li><li>each file as strip / image (.png)</li></ul>
<p><strong></strong></p>
<p><strong>Does this set fit together with any other assetpacks?</strong>
</p>
<p>Yes!</p>
<p><a href="https://cyangmou.itch.io/assetpack-directory"><strong>Simple Side-Scroller Series (click on the link)</strong></a>
</p>
<p><strong><br></strong></p>
<p><strong>Will you keep this assetpack updated?</strong></p>
<p>There are chances that I will extend this set later or add other assetpacks to my store which will fit together with this pack. Every asset I sell supports my itch shop and the money from sales gets invested into the creation of new assets. </p>
<p><strong><br></strong></p>
<p><strong>Quick Licence Overview:
</strong></p>
<p>-You CAN edit and repurpose the assets.</p>
<p>-You CAN use the assets in commercial and free projects.</p>
<p>-You MUSTN'T redistribute / resell the assets.</p>
<p>-You MUSTN'T use the assets in any printed media or physical product.
<strong class=""></strong><strong class="">
</strong></p>
<p><strong class="">Important:
By buying the Asset you also agree to the following Licence Agreement
which outlines the exact Term's of Use: <a href="https://docs.google.com/document/d/1tNBRxfKhTqwgsrTTRD-nMbe6zew1c-u7yMaOj6vOKrI/edit?usp=sharing" rel="nofollow noopener" referrerpolicy="origin">Cyangmou's Itch.io Licence Agreement</a> </strong>
</p>
<p><strong class="">You
MUSTN'T redistribute the assets as your own, or use them in any
printed media, or as design basis for any physical product. </strong>
</p>
<p><strong>For more information follow me: </strong>
</p>
<p><strong>on Twitter: <u><a href="https://twitter.com/Cyangmou" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/Cyangmou</a>
</u>
</strong></p>
<p><strong>on Deviantart: <a href="https://www.deviantart.com/cyangmou" rel="nofollow noopener" referrerpolicy="origin">https://www.deviantart.com/cyangmou</a></strong><a href="https://www.deviantart.com/cyangmou" rel="nofollow noopener" referrerpolicy="origin">
</a></p>
<p><strong><a href="https://www.deviantart.com/cyangmou" rel="nofollow noopener" referrerpolicy="origin"></a></strong></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjUzNTk4LzM1MDkwMTkucG5n/original/4SkyjC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjUzNTk4LzM1MDkwNDIuZ2lm/original/zOyV2q.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjUzNTk4LzM1MDkwMjEucG5n/original/J7d9wb.png]]
<h1>Simple Side-Scroller - 60 Animated Lights</h1>
<h2><a href="http://cyangmou.itch.io/">Back to my Shop-page</a></h2>
<p>This set will liven up your sidescroller environment.</p>
<p>If you are looking for bonfires, candles for your dungeon or lanterns for your city or inn, you have found everything you need.
</p>
<p>The set contains the most common lightsources, to fill all of your side-scroller levels for a complete game all with a smooth high-frame handcrafted animation.
</p>
<p>All assets were designed for an approximately 32 px tall characters (26-38px size range) with a basic tilesize of 16x16 px in mind.</p>
<p>The flames were smoothly animated with 8 frames, and can be displayed at a speed of 16FPS / 80ms/frame or 12FPS / 60ms/frame 
</p>
<p><strong>Graphics:</strong></p>
<ul><li>15 prop designs with 10 frames each (8 frame burning loop, off state &amp; destructed frame)</li><li>Every candle comes in 2 colors, red and white</li><li>Every flame comes in 4 co lors (orange, green, blue and purple)</li><li>13 Particles to make destruction an satisfying experience </li><li>3 different china pots with an intact and an destructed frame</li><li>3 different clay pots with an intact and an destructed frame</li><li>3-4 particles for each type of material</li></ul>
<p><strong>Files:</strong></p>
<ul><li>2 sprite atlases with all frames
</li><li>8-frame strips for every loop</li><li>single frame destroyed image</li><li>single frame off-state image</li><li>a psd which includes multiple recolored layers for different flames</li></ul>
<p><strong></strong></p>
<p><strong>Does this set fit together with any other assetpacks?</strong>
</p>
<p>Yes!</p>
<p><a href="https://cyangmou.itch.io/assetpack-directory"><strong>Simple Side-Scroller Series (click on the link)</strong></a>
</p>
<p>
</p>
<p><strong><br></strong></p>
<p><strong>Will you keep this assetpack updated?</strong></p>
<p>There are chances that I will extend this set later or add other assetpacks to my store which will fit together with this pack. Every asset I sell supports my itch shop and the money from sales gets invested into the creation of new assets. </p>
<p>
</p>
<p><strong><br></strong></p>
<p><strong>Quick Licence Overview:
</strong></p>
<p>-You CAN edit and repurpose the assets.</p>
<p>-You CAN use the assets in commercial and free projects.</p>
<p>-You MUSTN'T redistribute / resell the assets.</p>
<p>-You MUSTN'T use the assets in any printed media or physical product.
<strong class=""></strong><strong class="">
</strong></p>
<p><strong class="">Important:
By buying the Asset you also agree to the following Licence Agreement
which outlines the exact Term's of Use: <a href="https://docs.google.com/document/d/1tNBRxfKhTqwgsrTTRD-nMbe6zew1c-u7yMaOj6vOKrI/edit?usp=sharing" rel="nofollow noopener" referrerpolicy="origin">Cyangmou's Itch.io Licence Agreement</a> </strong>
</p>
<p><strong class="">You
MUSTN'T redistribute the assets as your own, or use them in any
printed media, or as design basis for any physical product. </strong>
</p>
<p><strong>For more information follow me: </strong>
</p>
<p><strong>on Twitter: <u><a href="https://twitter.com/Cyangmou" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/Cyangmou</a>
</u>
</strong></p>
<p><strong>on Deviantart: <a href="https://www.deviantart.com/cyangmou" rel="nofollow noopener" referrerpolicy="origin">https://www.deviantart.com/cyangmou</a></strong></p>
<p><strong><a href="https://www.deviantart.com/cyangmou" rel="nofollow noopener" referrerpolicy="origin"></a></strong></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjU0MjA5LzM1MTI3OTkucG5n/original/j%2FFF0Y.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjU0MjA5LzM1MTI4MDAuZ2lm/original/ZIvHQ0.gif]]
<h1>Simple  Side-Scroller - Plains Tileset </h1>
<p>-</p>
<h3><a href="http://cyangmou.itch.io/">
</a></h3>
<h3><a href="http://cyangmou.itch.io/">
</a></h3>
<h2><a href="http://cyangmou.itch.io/">Back to my Shop-page</a></h2>
<p>-</p>
<h2>About this Assetpack:</h2>
<p>This assetpack contains graphics to build a grassland level with a forest as day &amp; night versions. The tiles are sorted and arranged in multiple ways and there are multiple files, which can be comfortably used with Game Maker Studio 2 or in a software like Tiled.<br></p>
<p>There is a basic animated character template and a slime enemy included - both have multiple animations<br></p>
<h2>This Set Includes:</h2>
<h3>Character Animations (27 frames):</h3>
<p>All character files are saved as animation strips, the .gal working files are delivered and they come in 2 styles - 3 color grayscale (for editing) and in a 3-color NES style.
</p>
<ul><li>crouch (1 frame)</li><li>gettinghit (1 frame)</li><li>death (1 frame)</li><li>atk sword (4 frames)</li><li><em>stand (1 frame)</em></li><li><em>stand ready (1 frame)</em></li><li><em>idle ready (10 frames)</em></li><li><em>run (6 frames)</em></li><li><em>jump (1 frame)</em></li><li><em>falling (1 frame)<br></em></li></ul>
<h3><br>Enemy Animations (25 Frames):</h3>
<ul><li>basic stance (1 Frame)</li><li>defence + stance (2 frames)</li><li>idle (4 frames)</li><li>walk (4 Frames)</li><li>attack (4 different frames, 2 holding)</li><li>death (8 frames)</li></ul>
<h3>Props (3 elements):</h3>
<ul><li>bonfire (animated with 8 frames)</li><li>tikitorch (animated with 8 frames)</li><li>treasure chest (animated with 8 frames)</li></ul>
<h3><strong>Tilesets:
</strong></h3>
<p><strong>&nbsp;Tilesets as Day and night versions</strong>:<br></p>
<ul><li>basic tileset with cliffs, grass, trees and plants (40 tiles 16x16 + 1 midground tree + 1 foreground tree)</li><li>basic tileset for wood constructions with ladders, slopes, connections to tileset 01 (60 tiles 16x16)</li><li>basic tileset for midground cave elements (16 tiles 16x16)</li><li>basic tileset for sky and bg trees (29 8x8 tiles)</li><li>basic night tileset with moon &amp; stars (9 8x8 tiles)</li><li>foreground tileset (GMS2 autotiles) - 26 new tiles for mapping single <br>tile wide foreground levelbits. There are templates which should help 
with placing the tiles.</li><li>midgroud tileset (GMS2 autotiles) - 34 new tiles for mapping single <br>tile wide midground levelbits. There are templates which should help 
with placing the tiles.</li><li>GMS2 Autotile tilesets as add-on versions for basic tilesets for non GameMaker users (60 tiles, differently sorted)</li></ul>
<h3><strong>Parallax:
</strong><strong></strong></h3>
<ul><li>8 pre-build cloud-shapes for quick usage</li><li>2 background elements day, 3 background elements night</li><li>2 midground elements (day &amp; night)</li><li>2 simplified parallax tiles (day &amp; night) for easy use in engines like unity</li></ul>
<h3>Additional Files:</h3>
<p><strong>All as Day &amp; Night versions:</strong><br></p>
<ul><li>2 Mockups with 2 layered psds with all tiles how they should be mapped &amp; the layers saved as .png files</li><li>a notes file with hints and links (read it!)</li><li>NES palette which was used for all assets</li></ul>
<p><br></p>
<p><strong>Does this set fit together with any other assetpacks?</strong>
</p>
<p>Yes! </p>
<p>There are a couple more tilesets in the same style, some game props (e.g. lights and destructible containers) and there are various assetpack add-ons for the character available, which will greatly enhance the movement.<br>check out all the available content for the Simple Side-Scroller series with this link:</p>
<p><a href="https://cyangmou.itch.io/assetpack-directory"><strong></strong></a><a href="https://itch.io/c/880983/8-bit-side-scroller-series-by-cyangmou">Simple Side-Scroller Series  (click on the link)</a><br>
<br>
</p>
<p><strong>Will you keep this assetpack updated?</strong></p>
<p>There are chances that I will extend this set later or add other assetpacks to my store which will fit together with this pack. Every asset I sell supports my itch shop and the money from sales gets invested into the creation of new assets. <br></p>
<p>This tileset already received 4 Updates and is more than twice as big as at release!<br></p>
<p><strong>Quick Licence Overview:
</strong></p>
<p>-You CAN edit and repurpose the assets.</p>
<p>-You CAN use the assets in commercial and free projects.</p>
<p>-You MUSTN'T redistribute / resell the assets.</p>
<p>-You MUSTN'T use the assets in any printed media or physical product.
</p>
<p><strong>Important:
By buying the Asset you also agree to the following Licence Agreement
which outlines the exact Term's of Use: <a href="https://docs.google.com/document/d/1tNBRxfKhTqwgsrTTRD-nMbe6zew1c-u7yMaOj6vOKrI/edit?usp=sharing" rel="nofollow noopener" referrerpolicy="origin">Cyangmou's Itch.io Licence Agreement</a> </strong>
</p>
<p><strong>For more information follow me: </strong>
</p>
<p><strong>on Twitter: <u><a href="https://twitter.com/Cyangmou" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/Cyangmou</a>
</u>
</strong></p>
<p><strong>on Deviantart: <a href="https://www.deviantart.com/cyangmou" rel="nofollow noopener" referrerpolicy="origin">https://www.deviantart.com/cyangmou</a></strong></p>
<p><strong><a href="https://www.deviantart.com/cyangmou" rel="nofollow noopener" referrerpolicy="origin"></a></strong></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzMzOTQzLzQ4NzEyMjMucG5n/original/1jfOwg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzMzOTQzLzE2NjM1NjQucG5n/original/OGGcYl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzMzOTQzLzQ4OTAzNTYucG5n/original/9XceRe.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzMzOTQzLzQ4NTExNzYucG5n/original/O8Qmc1.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzMzOTQzLzQ4NTExNTkucG5n/original/iSeg%2FX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzMzOTQzLzQ4NTExOTAucG5n/original/yDJ0k5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzMzOTQzLzE2NTQ3NzIuZ2lm/original/1CkGA9.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzMzOTQzLzQ4NzExODUucG5n/original/Rv6Dvv.png]]
<h4>About the game</h4>
<p>Pixross is a picture logic puzzle game featuring <strong>170+</strong> unique puzzles, customization and extra challenges for each puzzle. Unlock new puzzle packs or customization options by completing puzzles!</p>
<ul><li><strong>Hundreds of challenging puzzles&nbsp;</strong>– Each puzzle pack has a specific theme, you can unlock new packs by completing puzzles.</li><li><strong>Add extra challenges</strong>&nbsp;– Add challenges to puzzles like clues that disappear, mirroring or only allowing a single mistake to be made!</li><li><strong>Customize to your liking</strong>&nbsp;– Next to changing the game rules you'll also be able to unlock and customize the visuals like backgrounds, tiles and fonts (50 options).</li></ul>
<h5>Requirements</h5>
<p>The game can only be played using a mouse. Windows and Linux&nbsp;compatible, not compatible with other operating systems.</p>
<p><br></p>
<p class="text-center"><a href="https://twitter.com/KenneyNLGames" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzQ4MjIwNzIucG5n/original/g%2FhxGp.png" loading="lazy"></a><br></p>
<p class="text-center"><a href="https://twitter.com/KenneyNL" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter</a> | <a href="https://www.facebook.com/KenneyNL" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Facebook</a></p>
<h6 class="text-center">Copyright © Kenney 2021 | All rights reserved<br>Featuring art by Sebastian Unrau, Kristopher Roller, Paweł Czerwiński, Lucas Benjamin, Gradienta, Pixabay and Hert</h6>
<h6 class="text-center"><a href="https://kenney.nl/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzM3MDYxNjEucG5n/original/3CIJaX.png" loading="lazy"></a></h6>

<iframe width="720" height="450" src="https://www.youtube.com/embed/hTfPmv89y2k" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzk4OTMxLzQ1MzY4NDcucG5n/original/cBWhoW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk4OTMxLzQ1MzY4NDgucG5n/original/lF5hLX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk4OTMxLzQ1MzY4NDkucG5n/original/5F5mwu.png]]
<p><strong>Planedawn Orphans</strong> is a campaign kit that helps you prepare a campaign for the fantasy role-playing game of your choice. It provides a flexible and versatile framework to start a campaign. The campaign kit will help you get started and provide structure and support, but some assembly is required.</p>
<p>Created by&nbsp;<a href="https://twitter.com/mnerurkar" rel="nofollow noopener" referrerpolicy="origin">Martin Nerurkar</a>&nbsp;and <a href="https://www.instagram.com/silentsiren_sound/" rel="nofollow noopener" referrerpolicy="origin">Martin Buntz</a>.</p>
<h2>Stranded between the Planes</h2>
<p>Set in the <strong>Planar City</strong>, a strange melting pot that connects the vast diversity of the multiverse. You all play <strong>Planar Orphans</strong> stranded in this city, your original home worlds destroyed, corrupted or lost.&nbsp;</p>
<p>A mysterious <strong>Patron</strong> has brought you together, provided you with a base of operations and tasked you to complete a <strong>Planar Key</strong>. This key will let you create a new plane for you and your fellow refugees. Your quest will bring you to exotic places filled with strange creatures and bizarre phenomena.</p>
<h2>What it is</h2>
<p>This book is a&nbsp;<strong>campaign kit</strong>. It presents a structure and a collection of ideas that will help you plan your own campaign. Contrary to a&nbsp;predefined campaign, this leaves a lot of empty space for the GM and&nbsp;the players to fill.
</p>
<p>
We designed the core elements of the campaign (the orphans, the&nbsp;patron, the home base and the key) so that they provide maximum&nbsp;flexibility: Drop-in and drop-out play, a lot of variety in your missions,&nbsp;a focus on action rather than travel and even rotating GMs.
</p>
<h3>Campaign Benefits</h3>
<ul><li>Flexible for drop-in drop-out play</li><li>A medium to long-running campaign</li><li>Easy access to a wide variety of strange planes and exotic locales</li><li>Highly varied character backgrounds and concepts are possible</li><li>A clear goal and a way to measure campaign progress</li><li>Can accommodate multiple rotating GMs</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTg1MjA0LzY0MjM2NTMuanBn/original/QE%2FyGY.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTg1MjA0LzY0MjM2NTQuanBn/original/MwCad%2B.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTg1MjA0LzY0MjM2NTUuanBn/original/ITsFMJ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTg1MjA0LzY0MjM2NTYuanBn/original/tQOk7X.jpg]]
<p>
	<strong><u>WHAT IS PLANET DIVER ABOUT?</u><br></strong>Planet Diver is about an adventurous daredevil tackling her newest obsession: Wing suit diving. With her close robotic companion Buddy she'll travel across space to seek out the most dangerous planets and their respective chasms to dive in. You'll dive through a variety of deadly and exotic planets, fighting off the flora and fauna of each locale, while collecting valuable star stuff to further fund your adventures.
</p><p>
	Use your hard earned rewards to fly to more distant planets, as well as to acquire new outfits and special ability modifiers! Along the way you can compete online for the best dive or try to unlock rewards by completing tough challenges. Careful how deep you dive though... Who knows what slumbers within the planet's core?
</p><p><strong><u>PLANET DIVER FEATURES:</u><br></strong>You're not gonna run out of things to do, that's for sure!</p><ol><li>An extensive campaign with 3 planets, 9 biomes and 75 missions that have unique story dialogues and challenges.</li><li>Well crafted, randomly generated chasms that make each dive unique!</li>
	<li>An endless arcade mode for each planet that pushes the challenge to the limit</li>
	<li>All planets have their own special biomes, obstacles, enemies and bosses!</li>
	<li>Fast paced gameplay where you need to avoid, brake and speed up like a pro diver!</li>
	<li>Unique obstacles and enemies like bats that follow your every move, lava that slowly cuts off your escape or a... giant whale?!</li>
	<li>A lot of terrifying boss fights that require fast reflexes and a sharp mind.</li>
	<li>A vibrant setting with a fun, quirky story to explore the depth of space!</li>
	<li>A cool astro shop full of unlockables like diving suits, modifiables abilities and music!</li>
	<li>Competitive leaderboards for the score junkies out there!</li>
	<li>Plenty of hidden easter eggs that can be found throughout the extensive planet surfaces!</li><li>NEW: A customizable diving mode where you adjust the chasm generation!</li><li>NEW: A speed running mode to compete for the best completion times!</li>
</ol><p>
	<strong><u>HOW DO I PLAY PLANET DIVER?</u><br></strong>The goal's simple, dive down as far as possible while collecting all the star stuff along the way! The faster you go, the higher the star stuff multiplier. There are 3 planets, 9 biomes and 75 levels to explore, and each level pushes you to new limits with specific goals you need to accomplish.
</p><p>
	In your dives you collect star stuff, which is essential to your progress! You can spend it on outfits, items or modifiers that adjust your abilities! You can also spend them on star maps unlocking distant planets with new missions, obstacles, biomes and enemies!
</p><p>
	Are you ready to tackle the vastness of space and become the raddest, intergalactic chasm diver? Yeah, of course you are! Get diving!
</p><p>
	<strong><u>FROM FABRAZ: THE MAKERS OF CANNON CRASHA:<br></u></strong>Cannon Crasha, done in collaboration with Gango Games, was an action-strategy title for iOs &amp; Android. It acclaimed critical success and was featured by Apple numerous times, while appearing on countless renowned sites including IGN, Kotaku, TUAW and more.
</p><p>
	The Wild Wild Pixel was an adventure game for Mac &amp; PC and raised over 10.000$ on kickstarter. It was featured by acclaimed sites such as RockPaperShotgun and AdventureGamers.<br><br><strong>QUOTES</strong><br><em>"In conclusion, this game is cool as hell and no one knows about it."<br></em>Super Bunnyhop</p><p><em>"Planet Diver is crazy, fast, intense fun."</em><br>The Australia Times</p><p><em>"Overall we had a lot of fun with Planet Diver and can certainly recommend it."</em><br>Game Ramble </p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/pLP0DeXVc9g" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzYwMTkvMTY1OTEyLmpwZWc=/original/RZuW3s.jpeg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzYwMTkvMTY1OTEwLmpwZWc=/original/JVFXh7.jpeg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzYwMTkvMTY1OTExLmpwZWc=/original/WX1aaR.jpeg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzYwMTkvMTY1OTA5LmpwZWc=/original/OUiVRN.jpeg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzYwMTkvMTY1OTA4LmpwZWc=/original/FLm8Gr.jpeg]]
<h5 class="text-center"><strong><img src="https://img.itch.zone/aW1nLzczNzE0MjMucG5n/original/gUs4XH.png" loading="lazy"><br></strong></h5>
<h4 class="text-center">Play as a plant in its instinctive quest to take down the monarchy</h4>
<p><img src="https://img.itch.zone/aW1nLzczNzEzOTIucG5n/original/Zg7C0I.png" loading="lazy"><br></p>
<p>In Plant Down, you're faced with 3 bosses of increasing difficulty. Will you manage to take them all down?<br></p>
<ul><li>The game takes between 20 minutes and one hour to complete.<br>
</li><li>It is available exclusively for android</li><li>Plant Down uses an elegant two-button input system designed for mobile</li><li>The game contains little to no text</li></ul>
<p><em>A game by Rouli, with music from PeKaNo and meliméa<br></em></p><p><em><a href="https://t.me/mask_up" rel="nofollow noopener" referrerpolicy="origin">telegram</a> - <a href="https://discord.gg/EvzjpVzg2u" target="_blank" rel="nofollow noopener" referrerpolicy="origin">discord</a> - <a href="http://mask-up.fandom.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">wiki</a> - <a href="https://twitter.com/Rouliboudin" target="_blank" rel="nofollow noopener" referrerpolicy="origin">my twitter<br></a></em></p><p>If you've enjoyed Plant Down, you'll enjoy <a href="https://rouli.itch.io/mask-up" target="_blank">Mask Up</a>, a roguelike in the same universe.<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/hJPYkmen3sU" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI2NTI5OC83MzcxMDE3LnBuZw==/original/DYfvSc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI2NTI5OC83MzcxMDIwLnBuZw==/original/mn6JXS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI2NTI5OC83NDMwODY4LnBuZw==/original/iiD35K.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI2NTI5OC83NDMwOTA4LnBuZw==/original/oslmgv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI2NTI5OC83NDMwOTE1LnBuZw==/original/S2B5Mp.png]]
<p>A late unofficial entry to <a href="https://itch.io/jam/safety-jam" target="_blank">#SafetyJam</a>.</p>
<p>A zine full of thoughts on transparency, trauma, safety, and integrity in games. Includes lists, essays, and a useful new LARP mechanic for freeform-type games.&nbsp;</p>
<p><br><strong>Content Note:</strong><br>This zine covers issues that arise in analog game spaces — specifically tabletop roleplaying games (TTPRGs) and live action roleplaying games (LARPs). As such, it may contain references to sexism, racism, ableism, classism, queerphobia, transphobia, fatphobia, violence (both sexual and otherwise) torture, bullying, bigotry, white fragility, abuse, and other issues that arise within various analog gaming communities. Reader discretion is advised.</p>
<p>This zine is nowhere near the end-all-be-all of analog game safety. Please see the further reading section at the end for more resources.</p>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1nLzI2NjQ3NjEucG5n/original/OvqQ3l.png]]
<p>Games&nbsp;are ruthless things, designed to be overcome. They are mountains to be scaled. Opponents to be fought. Foes to be stomped.</p>
<p>But do they have to be?</p>
<p><em>Kirby's Dream Land</em>&nbsp;seems like an easy, unassuming game, but is a title that upended what the medium was about. It was an experience built so that all players would feel welcome in gaming, designed to teach people how to play and how to enjoy their time within the world of games regardless of skill level. It turned up its nose at the perception that games had to be hard to be valuable, instead showing the power to be found in allowing all to feel the joy of playing games.</p>
<p><em>Pleasant Dreams: The Welcoming Play of Kirby's Dream Land</em>&nbsp;offers an unofficial in-depth analysis of the elements of&nbsp;<em>Kirby's Dream Land's&nbsp;</em>design that opened it up to players who might not be traditionally "skilled" at games, as well as the writer's own story of finally feeling like games were something he could enjoy. Peppered with discussions and fond memories from developers and game journalists who grew up with Kirby, it looks to examine the attitudes around difficulty in games, the elements that made&nbsp;<em>Kirby's Dream Land</em>&nbsp;more than just an "easy" game, and how accepting yourself (with help from a cheerful puffball) can help you finally find the ability to grow.</p>

[img width=500 [https://img.itch.zone/aW1nLzI2NzQwOTYucG5n/original/RQUHNw.png]]
<p><em><strong>Pleroma is the very first commercial video game by notable and internationally beloved aesthete known primarily as The Aleks. It has been made possible through the generous support of a lovely batch of Kickstarter backers and, of course,&nbsp;patreon patrons.</strong></em></p>
<p><strong>Features!</strong></p>
<ul><li><em>Engage with a sprawling, gripping, freakadelic narrative written by award winning writer and IRIMA (Internationally Recognized Interactive Media Auteur)&nbsp;Aleks Samoylov.<br><br>
</em></li><li><em>Take in the sights and enjoy a distinctive, impressionistic, low poly presentation by award winning, classically trained painter (and IRIMA) Aleks Samoylov.<br><br>
</em></li><li><em>Enjoy experimental tunes by Internationally Recognized Musician (IRM) Monplaisir.
&nbsp;&nbsp;<br><br></em></li><li><em>Explore an atmospheric, open ended world, full of secrets, mysteries, surprises, and non-player characters eager for a chat, and do so at your own pace.<br><br>
</em></li><li><em>Solve a puzzle and unlock the “true ending,” if you’re so inclined.<br><br>
</em></li><li><em>Wield the mighty Tuner and engage in Tuner based actions!<br><br>
</em></li><li><em>Take a guided tour of a significant archaeological site, check out some abstract art in a hip gallery, mingle with important guests at a party / political summit, go spelunking, get lost in a twisted maze, or try to figure out what is&nbsp;really&nbsp;going on.</em></li></ul>
<p><strong></strong><strong>What's this game about?</strong></p>
<p>Well, it's a freakadelic, surreal "puzzle box" (it has one actual puzzle, which is optional - unless you want the "true ending" that is), a set of dreamy, interconnected environments&nbsp;for the player to explore, experience, and unravel&nbsp;at their leisure. There is no shooting in it, and no jump scares. There are some bits that people may consider mildly spooky (or even spoopy), but I would not classify it as a horror in any conventional sense, unless you consider existential angst to be horrifying, which you should.&nbsp;</p>
<p>If you're still unclear as to what genre this game falls into, it is definitely a first person "walking simulator," optional puzzle elements notwithstanding, you will spend the majority of the game exploring and reading stuff. There is a fair bit here to explore ... and a lot to read.&nbsp;</p>
<p>&nbsp;<br><strong>What's the story, fishbone?</strong><br><br>In Pleroma, you will&nbsp;take on the role of Diane Kestler, a youthful individual who has recently moved to a new part of town and is&nbsp;starting a new job at a niche art gallery / studio collective / research library which is (you guessed it!) hiding a rather surprising and unusual secret. I hesitate to reveal more, as I know that many folks are spoiler averse, and personally I would like players to discover and interpret this game for themselves.</p>
<p><strong>Discount Coupons Available<br></strong></p>
<p>If you currently cannot afford to buy or can't justify buying Pleroma at full price, but would still like to help financially support me as an artist and game maker, feel free to use this coupon code. It's the honor system: no strings attached (just don't resell it, obviously)&nbsp;and no questions asked. Just use the following URL to redeem a copy for 50% off.</p>
<p><a href="https://thealeks.itch.io/asabovesobelow">https://thealeks.itch.io/asabovesobelow</a><br></p>
<p><em>(Note: A limited number of completely free community copies is also available below).</em><br></p>
<p>Current build: 1.2<br></p>
<p>1.2 Updates:<br>- Fixed major issue with the puzzle not registering correct input (I done goofed).<br>- Some improvements to framerate in the All Hail scene on lower end machines.&nbsp;&nbsp;</p>
<p>Known bugs: <br><br>- It's possible that the Vsync option (available through the pause menu) will do the opposite of what it's supposed to. So, if the checkbox is off,&nbsp;Vsync is on and vice versa.&nbsp;If you're getting screen tearing, play around with the two settings. One of them ought to work! (I'll likely patch this up later, but it shouldn't significantly affect your experience).&nbsp;</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/4v-wvo3t08o" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDY2NTExLzI5MTAyODkucG5n/original/YYCM%2F8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDY2NTExLzIzODAyNzgucG5n/original/0NJ%2BSx.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDY2NTExLzI3NDY0MTYucG5n/original/5vE%2Bqs.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDY2NTExLzI5MTAyODgucG5n/original/cXQlnY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDY2NTExLzI3NDY0MTcucG5n/original/vD73ZJ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDY2NTExLzI5MTAyOTAucG5n/original/OQRJSd.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDY2NTExLzI5MTAyOTEucG5n/original/ieftOl.png]]
<p class="text-center"><strong><img src="https://img.itch.zone/aW1nLzI0MjEwNjIucG5n/original/fxNE1a.png" loading="lazy"></strong>It's time to take the Plunge! Enter the adventure of Billie, the billionth prisoner of a wacky medieval mega-prison, who longs to find freedom on the other side. Rather than try to climb her way out, Billie realizes the only way to freedom is to escape further into the depths below! Dodge, dash, and defeat a wide variety of guards, creatures, and otherworldly beings bent on preventing passage in this exciting turn-based dungeon plunger!<br><br>In Plunge, players will find a new and unique experience, especially for those familiar with the puzzle and roguelike genres. Each floor is an individual challenge meant to test the very best in a battle of brawn and wits. Don't miss this opportunity to find out why Plunge was nominated for the 2017 PAX Rising showcase, the 2016 and 2017 Portland Retro Gaming Expo showcases, the 2019 PAX 10 Selection and multiple showcases with Indie Mega Booth at PAX West and GDC!<br><br><img src="https://img.itch.zone/aW1nLzI0MjEwNjQucG5n/original/vH8xf7.png" loading="lazy"><br>- Play as Billie or a variety of other cartoony characters with charming criminal charges!<br>- Turn-based roguelike action!<br>- Movement with sliding ice physics against enemies with unique and peculiar patterns!<br>- Over 400 randomly selected levels across three separate challenging sections!<br><br>- Plunge and Plunge again with fast pick-up-and-play experiences!<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDU0NDQ4LzIzMDU1MjIucG5n/original/kFJZ6P.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0NDQ4LzIzMDU1MjMucG5n/original/X7i%2B0x.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0NDQ4LzIzMDU1MjQucG5n/original/34KODw.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU0NDQ4LzIzMDU1MjUucG5n/original/iOLqp%2F.png]]
<p><strong>POCKET CHANGE</strong>&nbsp;is a collection of 4 coin-based micro RPGs.</p>
<p>This collection comes as&nbsp;a printable 1 page foldable zine that you can fit in your pocket along with a handful of coins - everything you need to play these games.<br></p>
<p>
</p>
<p><span class=""><strong>POCKET CHANG</strong><strong>E</strong> was inspired by the </span><a href="https://microfictiongames.neocities.org/" target="_blank" class="" rel="nofollow noopener" referrerpolicy="origin">Micro Fiction Game Jam</a><span class=""> hosted by </span><a href="https://twitter.com/james_chip_rpg" target="_blank" class="" rel="nofollow noopener" referrerpolicy="origin">James Chip</a>.&nbsp;"Changeology" was originally written for this jam.</p>
<p>For instructions on how to fold the zine, <a href="https://www.youtube.com/watch?v=ab4O9SWNl9g" rel="nofollow noopener" referrerpolicy="origin">click here.</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM4NzAyOC84MjIzNzE4LnBuZw==/original/XnPnij.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM4NzAyOC84MDgxNDY3LnBuZw==/original/Hda5hQ.png]]
<p>Kaiser Kiwi has kidnapped your roly poly friends and taken them to his Frigid Castle and only you can save them! Explore a colorful bug-themed world infused with retro charm and chock full of inventive hazards and enemies.&nbsp;</p>
<h3>Reviews</h3>
<p>“Polyroll is a fantastic platformer”<br><em><strong>83/100</strong> – <a href="https://www.youtube.com/watch?v=AE6L7uuC_v8" target="_blank" rel="nofollow noopener" referrerpolicy="origin">SwitchUp</a></em></p>
<p>“You’ll be charmed by the clever level design, creative bosses, and the gorgeous retro aesthetic”<br><em><strong>4/5</strong> – <a href="https://www.heypoorplayer.com/2019/11/03/polyroll-review-pc/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Hey Poor Player</a></em></p>
<h3>Features</h3>
<ul><li>4 to 10 hours of playtime&nbsp;</li><li>Make your way through 36 expansive levels filled with unique enemies, hidden gems, and challenging bosses in a retro, 2D adventure</li><li>Use your super shell to spin, bounce, roll, and ricochet across the land on a mission to save your friends from the clutches of the evil Kaiser Kiwi</li><li>Defeat eleven insane bosses, including a crazed stoplight, haywire appliances, and a giant spider stuck in a computer case.</li></ul>
<p><strong>You will receive a Steam key with your purchase!</strong></p>
<h3>Also Available On</h3>
<p><a href="https://www.nintendo.com/games/detail/polyroll-switch/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzM2MjA2NTgucG5n/original/9GrPNr.png" loading="lazy"></a><br></p>
<p><a href="https://www.nintendo.com/games/detail/polyroll-switch/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Nintendo Switch</a></p><h3>Coming Soon</h3><p><iframe src="https://store.steampowered.com/widget/1820570/" frameborder="0" width="646" height="190"></iframe><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/97gDplB1nT0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjgwOTE4LzIyMjE2NzgucG5n/original/n2Pl%2F5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjgwOTE4LzIyMjE2NzkucG5n/original/ofUhDN.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjgwOTE4LzIyMjE2ODAucG5n/original/afjOEO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjgwOTE4LzIyMjE2ODMucG5n/original/9ZqFUn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjgwOTE4LzIyMjE2ODIucG5n/original/5xQC95.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjgwOTE4LzIyMjE2ODUucG5n/original/C7sNoH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjgwOTE4LzIyMjE2ODQucG5n/original/cY1Cvo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjgwOTE4LzIyMjE2ODEucG5n/original/KwM9PZ.png]]
<p>As king of the dogs your mission is to find all your loyal subjects and guide them to the portal. The second you wake up another dog, he will simultaneously follow your movements. You succeed by finding your way to the portal. You are mastering the mission if you save all your loyal subjects, find the golden bone and get to the portal.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/s9FO5Hmagr4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTkxMTcxLzMxMjQxNzMucG5n/original/GIMvIP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTkxMTcxLzMxMjQxNzUucG5n/original/gET6n1.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTkxMTcxLzMxMjQxNzYucG5n/original/Ow2gJz.png]]
<p><em>A large oak door. You open it into a room, wallpapered with a matte off-white, the floors a dark worn wood. The hexagonal shaped room has but one window and no furniture save for the eleven mirrors adorning the walls.</em></p>
<p><em>Meagre light filtering in through the window is reflected brilliantly throughout the room as is your visage, in small pieces, in discrete moments, captured in the reflections of each of the mirrors.<span class="">&nbsp;</span></em></p>
<p><em>They invite you in to look.</em></p>
<p class="text-center">☙ ❦ ❧</p>
<p>A print and play&nbsp;solo autobiographical narrative role-playing game. Move through the room of mirrors and gaze upon what they reflect back, and which image holds true.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjgzNDU5LzQ2MzMwMzIuanBn/original/cgCss2.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjgzNDU5LzQ2MzMwMzMuanBn/original/qAx3pJ.jpg]]
<p>Possession is a traditional turn-based roguelike where you play as a ghost trying to make your way to the surface. You are incredibly frail, but have one advantage: you can possess the bodies of the monsters you encounter, and use their strength and abilities as your own. Hop from body to body as you attempt to make it back to the surface.</p>
<p>Features:<br></p>
<p><img src="http://possession2.com/images/eyebeast.png" loading="lazy">Dozens of possessable monsters, from the horrifying to the hilarious, with a wide variety of powers. <br><img src="http://possession2.com/images/sarcophagus.png" loading="lazy">Special themed levels with unique hazards, creatures and layouts. Randomly generated, and each floor has multiple possible levels, so each playthrough is different!<br><img src="http://possession2.com/images/chest.png" loading="lazy">Item-less gameplay. The dead have no need for worldly possessions, they just slow you down. <br><img src="http://possession2.com/images/ghost.png" loading="lazy">Quick to pick up and play. Unlike most roguelikes, Possession doesn't require you to memorize dozens of weird key commands, or puzzle over confusing skill and ability lists before you start playing. <br><img src="http://possession2.com/images/fungalwizard.png" loading="lazy">Entirely playable with just the keyboard, just the mouse, or a combination of the two. <br><img src="http://possession2.com/images/pirate.png" loading="lazy">Mod support! Add your own creatures, powers and special levels, or change the ones already there. <br>@ Choice between ASCII or Graphical mode, for the oldschool roguelike fans.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/PIHmR2q8taY" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzIxMzUvMjI5MDQzMS5wbmc=/original/tlbaHA.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzIxMzUvMjI5MDQzMC5wbmc=/original/5LL4S0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzIxMzUvMjI5MDQzMy5wbmc=/original/nCEmm9.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzIxMzUvMjI5MDQyOC5wbmc=/original/EnvGYF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzIxMzUvMjI5MDQzNC5wbmc=/original/vAdZ1E.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzIxMzUvMjI5MDQyOS5wbmc=/original/6uDDCC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzIxMzUvMjI5MDQzMi5wbmc=/original/zPmH9l.png]]
<p>Escape the void, trust nothing.</p>
<p>-1 player adventure game with cosmic horror vibes</p>
<p>-Keyboard and mouse recommended, game pad compatible&nbsp;</p>
<p>-More chapters coming soon with harder challenges and spicier spooks.&nbsp;</p>
<p>-Content Warning: claustrophobia&nbsp;</p>
<p>Designed and Developed by Grant Andrew Ervin<br><br><br></p><p>
Submitted to the Halloween 2021&nbsp;Game Jam:
<a href="https://itch.io/jam/halloween-game-jam-by-official-horror-video-games">https://itch.io/jam/halloween-game-jam-by-official-horror-video-games
</a><em>If streamed or shared online make sure to follow these steps for re-posting
</em>
</p>
<p><em>1. Upload pictures/videos of your game to&nbsp;<strong>Instagram&nbsp;</strong>as regular posts (don't post as stories, reels, etc.)&nbsp;<strong>You must have a clean profile</strong>. Feel free to make a special profile for your game!</em>
</p>
<p><em>2. Tag us (<strong>@horror.video.games</strong>) to your post and use both hashtags<strong>&nbsp;#officialhorrorvideogames #horrorvideogames</strong></em>
</p>
<p><em>3. We re-post you!!!</em>
</p>
<p><em>(4. Optional) Tag us on Twitter (@horrorvideogam) and use both hashtags #officialhorrorvideogames #horrorvideogames</em>
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTkxNDE1LzMxMjYwMTAuanBn/original/8DqnVk.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTkxNDE1LzMxMjYwMDkucG5n/original/eHnHDr.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTkxNDE1LzMxMzI1ODguZ2lm/original/XuHTet.gif]]
<div class=""><iframe style="width: 500px; height: 281px" src="https://www.youtube.com/embed/bw0FyiyhC60" frameborder="0" allowfullscreen=""></iframe></div>
<p><br></p>
<p>Project MALLOW is a maddeningly difficult 2D puzzle platformer about an adorable, sentient marshmallow tasked with launching and sticking his way across 100+ unique levels to escape a candy factory. Along the way, MALLOW will uncover dangerous secrets about the factory’s owner and history, as well as face flames, saw blades, lasers, and other scary things that will threaten his very existence.</p>
<p>As MALLOW, launch yourself through over 100 levels of brutal and punishing puzzle platforming. Get to the end of each level to help MALLOW escape. But not everything is as it seems: earning stars will allow you and MALLOW to venture further into Paragon Confections’ mysterious factory, and uncover dangerous secrets…</p>
<p>Features</p>
<ul><li>Brutally difficult, hardcore puzzle-platforming</li><li>Over 100 unique levels</li><li>Charming retro-style graphics and sounds</li><li>Personalize your MALLOW with hats and accessories</li><li>Collectibles out the wazoo</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/bw0FyiyhC60" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTUyOTM0LzcyNjYyMS5wbmc=/original/ND0w97.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUyOTM0LzcyNjYyMi5wbmc=/original/ghBkmR.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUyOTM0LzcyNjYyMy5wbmc=/original/847cFz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUyOTM0LzcyNjYyNC5wbmc=/original/kZN564.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUyOTM0LzcyNjYyNS5wbmc=/original/Z9HAQz.png]]
<p class="text-center"><strong><img src="https://img.itch.zone/aW1nLzgwMzUzMDkucG5n/original/QaKhr5.png" alt="Sobre o jogo" title="Sobre o jogo" loading="lazy"></strong></p>
<p>Project SNAQE is an action and precision game inspired by the classic Snake. Your main goal is to collect minerals scattered throgh the map, adding cars to your train and increasing your high score.</p>
<p><strong></strong>Don't be scared when you come across explosive rocks, giant worms, or oversized moles; count on your ability to shoot projectiles and perform precise maneuvers to overcome the various obstacles that appear during the game.<span></span></p>
<p>The game has 3 different modes with progressive difficulty levels, in addition to the classic mode that remounts the traditional Snake gameplay. Project SNAQE promises a great experience for all types of gamers, from casual to hardcore, also featuring several achievements and a global ranking system <em>(Achievements and Leaderboard currently available on&nbsp;Steam only. For this reason, upon purchasing you can also redeem a Steam key of the game, to be activated at the Steam client)</em>.</p>
<p>A simple game at first glance, Project SNAQE is charming and challenging and will put to the test your reflexes, reasoning and skills to find solutions.</p>
<p><br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzgwMzUzNjMucG5n/original/n0o%2Fdj.png" loading="lazy"><br></p>
<ul><li>Levels with increasing difficulty, giving the player a rewarding sense of progression.<br>
</li><li>Several obstacles, guaranteeing a varied and challenging experience.<br>
</li><li>Two modes of navigation (drill and gunner), requiring the player to make the most of their decision-making skills.<br>
</li><li>Retro look and nostalgic gameplay to please all arcade game lovers.<br>
</li><li>Simple and easy to play but hard to master.<br>
</li></ul>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/aM-sg-0yHAM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM3MTc0MC84MDMxNDU1LnBuZw==/original/3aOLUv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3MTc0MC84MDMxNDU4LnBuZw==/original/i1QEt1.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3MTc0MC84MDMxNDYwLnBuZw==/original/8e3b%2Fi.png]]
<p>PROLE is an analog adventure game that is played using pencils, paper and a coin. It's very simple to set up and play. Perfect for one shot sessions or short campaign arcs.&nbsp; Included is the 10 page booklet format of Prole, and a somewhat crowded one page version! Grab some friends, a coin or two, and start adventuring!</p>
<p><img src="https://img.itch.zone/aW1nLzQwODIzNjQucG5n/original/7%2FMRJ4.png" loading="lazy"><br></p>
<p>Included with the download is Welcome To Loden!</p>
<p><img src="https://img.itch.zone/aW1nLzQwODIzMzYucG5n/original/FnLUW4.png" loading="lazy"><br></p>
<p>This one page adventure location describes the town of Loden. It is not a particularly dangerous town but strange things are most certainly afoot! Adventurers can take a break within the walls of Loden and hear the lovely Gear Organ grinding out its tooth-rattling hymn&nbsp;from the Church of Gears&nbsp;every hour! They can also try the local delicacies, like gorbleswurm butter or fresh yam cakes! Just try not to step on any salamanders. Play it with Prole or the tabletop RPG of your choice!<br></p>
<p><img src="https://img.itch.zone/aW1nLzQwMTI1MzYucG5n/original/zBIOX9.png" loading="lazy"><br></p>
<p><br></p>
<p>All this and more is available for $2 a month at the <a href="https://www.patreon.com/HPS" rel="nofollow noopener" referrerpolicy="origin">Highland Paranormal Society Patreon!</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzIzNDM0LzQwODI0NTAucG5n/original/JjOM27.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzIzNDM0LzQwODI0NTQuanBn/original/70Qune.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzIzNDM0LzQwODI0NTMuanBn/original/7ub0of.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzIzNDM0LzQwMTI2OTAuanBn/original/G7p9tm.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzIzNDM0LzQwMTI2NzcuanBn/original/rRwUHz.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzIzNDM0LzQwMTI2ODkuanBn/original/xv0JLc.jpg]]
<figure><em><img src="https://img.itch.zone/aW1nLzQzNzgwNDkucG5n/original/cZFqWp.png" loading="lazy"></em></figure>
<p><em>Promesa</em> is a personal project born from a family conversation, where you wander through dreams and memories emerging from a dialogue between a grandfather and his grandchild.</p>
<p>While listening to someone trying to remember their experiences, past and present blend together, forming a stream of images that are both personal and shared.</p>
<p>From memories of homes and streets to surreal visions of imaginary places, <em>Promesa</em> is a contemplative experience about what happens when we’re left dreaming of the things we haven’t lived firsthand.</p>
<ul><li><em>A slow and relaxing experience focused on contemplative exploration.
</em></li><li><em>Every playthrough (of approximately 45 minutes) is different and it takes more than one to see all the scenes.
</em></li><li><em>A distinct visual style that mixes pixel graphics with high-def light.
</em></li><li><em>Visit dreamlike environments inspired by Argentinian and Italian cities.
</em></li><li><em>A personal project born after a few conversations I had with my grandfather and made by a small team of 4 people.
</em></li><li><em>An acoustic soundtrack that uses many different instruments: from piano and double-bass, to zither and harmonium.</em></li></ul>
<p><img src="https://img.itch.zone/aW1nLzM2OTAyMDEuZ2lm/original/G3Jv2X.gif" loading="lazy"></p>
<p><em>Promesa</em> has been selected at the following festivals/exhibitions:</p>
<p><img src="https://img.itch.zone/aW1nLzQzNzgwNTYucG5n/original/QpgMAa.png" loading="lazy"><br></p>
<p>Credits:<br></p>
<p>Visuals, design and development by <a href="http://www.julian-pg.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Julián Palacios</a>.<br></p>
<ul><li><a href="https://www.domizianomaselli.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Domiziano Maselli</a> - Soundtrack and sound design</li><li><a href="https://www.cedro-art.com/" rel="nofollow noopener" referrerpolicy="origin">Andrea Cedraro</a> - Additional 3D artist</li><li><a href="https://www.instagram.com/martinleandropalacios/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Martín Palacios</a> - Animation</li></ul>
<p>Thanks for their help to:<br></p>
<ul><li><a href="http://www.jaspermeiners.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Jasper Meiners</a> - Additional graphics, clarinet recordings</li><li><a href="https://www.pablopalacios.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Pablo Palacios</a> - End theme, video footage</li><li><a href="https://twitter.com/BlackDraka7" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Stefano Sanitate</a> - Additional programming</li><li>
Manuel Cattaneo - Additional graphics</li><li>
Translations - Pablo Palacios, Martín Palacios, Cecilia
Gechtman, Arnar Mar Gunnarsson</li><li><a href="https://na_mia.artstation.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Анастасия Мякинина</a>,&nbsp;<a href="https://github.com/kinolaev" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Сергей Николаев</a> - Russian translation</li><li>Martina Dell'Utri, Catalina Pita Fort, Gaia Scandella -&nbsp;French translation</li></ul>
<p>Full sounds and assets credits inside the game.<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/nWnAr24iNug" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjIzNzAyLzM2NDU5NjIucG5n/original/cLpZ3g.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjIzNzAyLzM2NDY2ODkucG5n/original/u%2FpuOW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjIzNzAyLzM2NDU5NjUucG5n/original/8BGXHA.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjIzNzAyLzM2NDU5NjcucG5n/original/LZemUd.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjIzNzAyLzM2NDU5NzAucG5n/original/X%2FFNz3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjIzNzAyLzM2NDU5NzEucG5n/original/c4BQ9w.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjIzNzAyLzM3MDIxNzMucG5n/original/P5tg%2F%2B.png]]
<p></p>
<p>If a ghost asks you to return something.&nbsp; You should return it.</p>
<ul><li>Awaken.</li><li>Speak to the Dead.</li><li>Brave the Zones.</li><li>Provide for their requests.</li><li>A̶w̵a̸k̸e̷n̸.</li></ul>
<p>Provider is an esoteric exploration and action zone-punk game. Play as a Provider, a ferryman of sorts for those caught between spaces. Explore Excluded Zones, each unstuck at a different time and populated with creatures and hazards that are not meant to be survived. Use your cunning and curiosity to find what is requested, smite the creatures that stand in your way, and make it back before you're left stranded with no heat to keep you lucid. Stone Castles razed to the ground, souls cursed by greed, creatures feasting on blood and bone alike, and beings older than creation itself await you in PROVIDER.</p>
<p>Explore stories from across time and space, as you set lost souls right on their path to whatever comes next, all while battling back haunting echoes from the past and strange monsters that slip through the cracks in the universal fabric.</p>
<p>
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI4MDkzOC83NDc1NDAwLnBuZw==/original/PvCuEf.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI4MDkzOC83NDc1Mzk3LnBuZw==/original/SFjHC3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI4MDkzOC83NDc1NDAxLnBuZw==/original/hq10G0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI4MDkzOC83NDc1Mzk5LnBuZw==/original/xYNk1E.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI4MDkzOC83NDc1Mzk1LnBuZw==/original/a0h%2FtT.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI4MDkzOC83NDc1MzkzLnBuZw==/original/TTVWLr.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI4MDkzOC83NDc1Mzk4LnBuZw==/original/VxQ9Nk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI4MDkzOC83NDc1Mzk0LnBuZw==/original/qfF4ld.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI4MDkzOC83NDc1Mzk2LnBuZw==/original/YBTjVu.png]]
<p><strong><em>Did you ever feel like you could read someone's mind?</em></strong><br><br>Psychic Night School is a GM-less roleplaying and drawing game for fans of tarot, astrology, incense, candles, pretending to be psychic, and/or showing off how actually-psychic you are. The game is suitable for two or more players, up to any number.</p>
<p>You're a budding psychic and have decided to take a night school class called&nbsp;<em>“Introduction to the Spirit Realm with Mademoiselle Charlotte-Ann”</em>. In this class you'll meet and get to know&nbsp;your fellow psychics, test your connection with the spirit realm, and create your own tarot cards before performing a reading for one of your classmates.&nbsp;<em><br><br></em><strong><em>May the spirits, and your wits, guide you to the top of the class!</em></strong><br><br><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTExMDMxNi82NDEyMTU0LnBuZw==/original/7vvIe6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTExMDMxNi82NDEyMTM1LmpwZWc=/original/I7itQa.jpeg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTExMDMxNi82NDEyMTUyLnBuZw==/original/7AV2WB.png]]
<p>Psychoballs is a very addictive puzzle game. Sort different psychotic balls through mind-boggling pipe-systems. Discover the right strategy but don't lose your head: ONE mistake and your masterfully crafted plan goes to pieces.<span></span></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODQ5MzgvNDAwMzU4LmpwZw==/original/UVCJVC.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODQ5MzgvNDAwMzYwLmpwZw==/original/W6vs5K.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODQ5MzgvNDAwMzU5LmpwZw==/original/wDVNUZ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODQ5MzgvNDAwMzYxLmpwZw==/original/F6WneQ.jpg]]

<p class="text-center"><em>Peter, Peter pumpkin eater,</em></p>
<p class="text-center"><em>Had a wife but couldn't keep her;</em></p>
<p class="text-center"><em>He put her in a pumpkin shell</em></p>
<p class="text-center"><em>And there he kept&nbsp;her very well.</em></p>
<p>Pumpkin Eater is a psychological horror visual novel about a family taking care of their pumpkin-headed son.&nbsp;&nbsp;</p>
<p><strong>Features:</strong></p>
<ul><li>A 45 minute kinetic story. Sit back, relax, and watch the insanity unfold<br>
</li><li>Hand drawn illustrations<br>
</li><li>100% medical accuracy, complete with a glossary and timeline of events
</li><li>Available in Turkish and Chinese!</li></ul>
<p><em>WARNING: This story contains child endangerment and&nbsp;graphic depictions of violence and human decomposition. Visuals can be censored in settings.</em></p>
<p>“One of the most unsettling games I’ve ever played[…] Pumpkin Eater is a masterpiece of visual and narrative art. I don’t think they could make it better if they tried. It’s a perfectly succinct and full horror tale unlike any other.”<br><a href="https://steamcommunity.com/linkfilter/?url=https://www.dreadxp.com/ultra-indie-spotlight/ultra-indie-spotlight-sunday-pumpkin-eater/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">DreadXP</a><br><br>“The narrative is so riveting that it really pulls you in. The hand drawn visuals are fairly simple, but effective and the descriptions of the son’s decomposing body are both medically accurate and horrifying. Highly recommended.”<br><a href="https://steamcommunity.com/linkfilter/?url=https://www.freegameplanet.com/pumpkin-eater-downloadable-game/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Alpha Beta Gamer</a><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/VmBpfw1siJc" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA3MTY4OC83Mjk5MzgxLmpwZw==/original/Zszsqo.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3MTY4OC83MDg5ODE1LnBuZw==/original/ur4Zm%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3MTY4OC83MDg5ODM3LmpwZw==/original/pJaejO.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3MTY4OC83MTA4NjgwLmpwZw==/original/kqx%2B3k.jpg]]
<p>
	Purple Noise Echo is a ambient tactical game in which you play Node,&nbsp;a <em>silicon entity&nbsp;</em>who wakes up in an unknown place made of hexagonal tiles.</p>
<p>- <strong>Gather</strong> and manage&nbsp;resources.<br>- <strong>Move tiles</strong> up or down in order to create your path.<br>- <strong>Enlist and control</strong>&nbsp;other entities and give them <strong>different skills</strong> discovered on the way.<br>- Don't get killed or exhausted...<br><br>The game is about discovering the hard way : the&nbsp;mechanics, the place,&nbsp;the story and more.<br><br><em>This is an under development&nbsp;one-man project. So any support, advice or feedback </em><em>is much&nbsp;appreciated :)</em></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM0NDQzLzE1NTM3OTcuanBn/original/VSF2Sv.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM0NDQzLzE1NTM3OTEuanBn/original/x%2BR6IZ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM0NDQzLzE1NTM3OTIuanBn/original/LA3z6e.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM0NDQzLzE1NTM3ODcuanBn/original/aCP4fV.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM0NDQzLzE1NTM3ODYuanBn/original/3rmdwF.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM0NDQzLzE1NTM3ODkuanBn/original/oIK2h9.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM0NDQzLzE1NTM3ODUuanBn/original/6Xhj3V.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM0NDQzLzE1NTM3ODQuanBn/original/x0GINM.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM0NDQzLzE1NTM3ODguanBn/original/3Tus%2F7.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM0NDQzLzE1NTM3OTMuanBn/original/4c3T%2FO.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM0NDQzLzE1NTM3OTAuanBn/original/MCt%2F8T.jpg]]
<p><img src="https://img.itch.zone/aW1nLzQ2MTI0NDIucG5n/original/lD6iW%2F.png" loading="lazy"><img src="https://img.itch.zone/aW1nLzQ2MTI0NDgucG5n/original/N5tPPB.png" loading="lazy"></p>
<h1>PUSH BLOCKS. FORM SQUARES.&nbsp; &nbsp; OR DIE TRYING!</h1>
<p><span class="">Pushamo is an arcade push-em-up that challenges you to organize different shapes into squares to clear blocks and earn points! It's no easy task, though - as you push on, shapes will come faster and more frequently until you find yourself as overwhelmed as you are engrossed.</span></p>
<ul><li>Satisfying core game loop: <em>An creative take on the block-clearing genre that offers endless replayability and high-scoring<br></em></li><li>Many ways to play: <em>Point Rush, 2P Coop, Puzzles, Challenges, and more modes lead to a massive variety of play experiences<br></em></li><li>8 bits of awesome: <em>Authentic retro experience built in PICO-8</em></li></ul>
<p class="text-center"><br><img src="https://img.itch.zone/aW1nLzQ0OTkyNzcuZ2lm/original/F6VaiV.gif" loading="lazy"><br></p>
<h1>CREATE HUGE COMBOS</h1>
<p>By forming large clears you can earn massive amounts of points and unleash a shower of visual effects. This strategic combo system also rewards you for all kinds of special clears, from Risky to Tidy to Back 2 Back, and many more!</p>
<p>Celebrate and share your most awesome combos with the press of a button - F4 - to record the last 8 seconds of gameplay as a lightweight GIF!<br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzQ0ODY3ODcuZ2lm/original/9lWHQj.gif" alt="CREATE HUGE COMBOS" title="CREATE HUGE COMBOS" loading="lazy"><br></p>
<h1>BREAK THE RULES</h1>
<p>Challenge Mode presents over a dozen diverse <span class="">rule variations on the already addicting core gameplay! These inventive scenarios range from wonderfully wacky to fiendishly difficult<em> </em>to ingeniously imaginative:<em><br></em></span></p>
<ul><li><em><span class="">Swap out the familiar tetrominos with some less orthodox shapes<br></span></em></li><li><em><span class=""><span class="">All the blocks are invisible after stopping<br></span></span></em></li><li><em><span class=""><span class="">You're also playing snake now, at the same time<br></span></span></em></li><li><span class=""><span class=""><em>And many more!<br></em></span></span></li></ul>
<p class="text-center"><span class=""><span class=""><em><img src="https://img.itch.zone/aW1nLzQ0ODY3MjMuZ2lm/original/kcGEdU.gif" alt="BREAK THE RULES IN CHALLENGE MODE" title="BREAK THE RULES IN CHALLENGE MODE" loading="lazy"></em></span><em><span class=""></span></em></span></p>
<h1>SIT BACK AND RELAX</h1>
<p>Pushamo also offers plenty of calmer experiences for when you want to chill and zone out, and want a less stressful time:</p>
<ul><li><em>Play endlessly without blocks ever increasing in speed in Zendless mode.<br></em></li><li><em>Think over each and every move in the tactical Turn-Based mode! Here, blocks will wait patiently for you to decide your next move before they go anywhere.</em></li><li><em>Ponder over the perplexing Puzzle mode, where you're presented with 32 hand-crafted puzzles that ask you to use all blocks in a single clear.</em></li></ul>
<p class="text-center"><em><img src="https://img.itch.zone/aW1nLzQ0ODY2ODIuZ2lm/original/dkdqqc.gif" alt="SIT BACK AND RELAX" title="SIT BACK AND RELAX" loading="lazy"></em></p>
<h1>CUSTOMIZE YOUR EXPERIENCE</h1>
<ul><li><em>Choose between two awesome music tracks<br></em></li><li><em>Select your favorite color palette from a choice of 16, including 8 different pride patterns!</em></li><li><em>Turn off (or multiply!) all visual effects including particles, screen shake, and background animation</em></li><li><em>Reclaim your free time with a handy "unlock all" option, to let you try all Pushamo has to offer without worrying about score requirements getting in the way<br></em></li><li><em>Turn on god mode and laugh in the face of death</em></li></ul>
<p class="text-center"><br><img src="https://img.itch.zone/aW1nLzQ0ODY1OTEuZ2lm/original/J2NHFA.gif" alt="CUSTOMIZE YOUR EXPERIENCE" title="CUSTOMIZE YOUR EXPERIENCE" loading="lazy"></p>
<h1>GAMES FOR GOOD</h1>
<p><span class="">100% of the sales will be given to the Autistic Self-Advocacy Network!&nbsp;They&nbsp;are </span>an autistic-led nonprofit that helps supports disability rights and empower autistic people across the world! Additionally, each copy purchased will create a community copy, providing the game to someone who can't afford it!<br></p>
<h1>BEHIND THE GAME</h1>
<ul><li>Created sustainably&nbsp;by&nbsp;<a href="https://twitter.com/beanborg" rel="nofollow noopener" referrerpolicy="origin">Bean Borg</a>(<em>she/her)</em></li><li>Music by <a href="https://elyon.itch.io/">Emma</a> <em>(she/her) </em>and <a href="https://www.grubermusic.com/" rel="nofollow noopener" referrerpolicy="origin">Gruber</a><em>&nbsp;(he/him)</em><br>
</li><li>Made in PICO-8
</li></ul>
<h5>MORE MEDIA</h5>
<ul><li>Try out the demo <a href="https://www.lexaloffle.com/bbs/?tid=40500" rel="nofollow noopener" referrerpolicy="origin">here</a>!</li><li>5 minutes of gameplay <a href="https://www.youtube.com/watch?v=PdP28g0t1SA" rel="nofollow noopener" referrerpolicy="origin">video<br></a></li><li><span class=""></span><a href="https://twitter.com/NeuroDiversion/status/1314966793543352322" rel="nofollow noopener" referrerpolicy="origin">Twitter thread</a> detailing several features and game modes</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzk2NzM0LzQ0OTk1NjkucG5n/original/%2BxGqce.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk2NzM0LzQ0OTkyMzgucG5n/original/YWBEQ4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk2NzM0LzQ0OTkyNDIucG5n/original/2YsXtl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk2NzM0LzQ0OTkyNDAucG5n/original/yGz3P9.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk2NzM0LzQ0OTkyNDEucG5n/original/ulRjBB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk2NzM0LzQ0OTkyNDUucG5n/original/EH%2Fb7u.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk2NzM0LzQ0OTkyNDMucG5n/original/ipJ%2FeV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk2NzM0LzQ0OTkyNDQucG5n/original/QAwI%2Bk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk2NzM0LzQ0OTkyMzcucG5n/original/Hy%2FBSS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk2NzM0LzQ0OTkyMzkucG5n/original/w1DQ4A.png]]
<p>I’m doing a book project! With the aim to cover the joy of C, python, and GLSL with pygame and SDL. At the same time covering some topics in pygame and SDL 2 that aren’t covered well by existing resources. It will also cover things like testing, distribution/marketing, multi platform, and CI/CD&nbsp; which aren’t covered often in many game books. Not your everyday book. However, I think a comparative approach with a high level language, C for the low level , and GLSL for a GPU language would be very interesting. </p>
<p>Included in the download is a PDF and epub of the pygame documentation, and a folder of pygame examples(43 or so).&nbsp; Also the pygame 4000 book as a PDF, and an epub for ebooks, as well as source code for the articles. <br></p>
<ul><li>
		[ <strong>Pixel Perfect Collision Detection</strong> ] [ SDL2 Fundamentals Tutorial in C ]
	</li><li>
		[ <em>Sound Generation and Visualization</em> ] [ <strong>Python intro for game programming</strong> ]
	</li><li>
		[ Let's make a shit JavaScript Interpreter! ] [ <strong>How to port and market games</strong> ]
	</li><li>
		[ Let's write a unit test! ] [ <em>Arduino; Serial &amp; pixels for breakfast</em> ]
	</li><li>
		[ <strong>Awesome pygame.</strong> Curated list of great things for pygame. ]
	</li><li>[ Drag and drop of files ] [ <em>Finger painting multi touch</em> ]</li><li>[ Text Editing Input IME ] [ <strong>Midi and synths</strong> ]</li></ul>
<p>Note: this is a pre-release, and more topics are coming. It's available as an early preview before the final release. Suggestions to rene@pygame.org<br></p>
<p>The book is by a leading contributor to pygame for over 16 years. All funds go towards pygame development(the completely free community project) and towards more chapters in this book. Some achievements in recent years have been a new pygame website, a move to github, an example community game, and an example music app, along with pushing pygame 2 to completion.<br><br>pygame is the most popular game/art/and music library for the most popular programming language in the world -- python. pygame is used in school classes, university courses, and workshops around the world. It's used in embedded devices like handheld game consoles, in video synthesizers, museum displays, scientific experiments and interactive art installations. It's available in over 130 different OS distributions, including on the Raspberry Pi, Ubuntu, and MacOS.<br></p>

[img width=500 [https://img.itch.zone/aW1nLzI2MzE5MDEucG5n/original/O5guMm.png]]
<p>Hacking. Dial tone. Cassette decks. Sabotage. Suitcase decks. Brainbox injectors.</p>
<p><img src="https://img.itch.zone/aW1nLzIyNDEyODQucG5n/original/umPa9o.png" loading="lazy"><br></p>
<p>Quadrilateral Cowboy is a single-player adventure in a cyberpunk world. Tread lightly through security systems with your hacking deck and grey-market equipment. With top-of-the-line hardware like this, it means just one thing: you answer only to the highest bidder.</p>
<h2>Recognition:</h2>
<ul><li>IGF 2017&nbsp;<a href="http://www.igf.com/article/quadrilateral-cowboy-takes-grand-prize-2017-igf-awards" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Seumas McNally Grand Prize winner</a></li><li>IGF 2017&nbsp;<a href="http://www.igf.com/article/quadrilateral-cowboy-takes-grand-prize-2017-igf-awards" rel="nofollow noopener" referrerpolicy="origin">Excellence in Design winner</a></li><li>XOXO 2014 <a href="https://explore.xoxofest.com/blog/archive/2014-08-21-announcing-xoxo-arcade" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Official Selection</a></li><li>IndieCade 2013 <a href="https://www.gamasutra.com/view/news/201844/Blendos_newest_game_is_a_love_letter_to_real_hacking.php" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Grand Jury winner</a></li><li>Fantastic Arcade 2013 <a href="http://fantasticfest.com/news/entry/fantastic-arcade-showcase-games-and-gamemaking-frenzy-announced" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Official Selection</a></li></ul>
<p><img src="https://img.itch.zone/aW1nLzIyNDI3NjAucG5n/original/5zXCLF.png" loading="lazy"></p>
<p>
</p>
<h2>Standard Edition includes:</h2>
<ul><li>Quadrilateral Cowboy</li><li>Developer commentary</li><li>Reference manual</li></ul>
<p>
</p>
<h2>Deluxe Edition includes:</h2>
<ul><li>Everything in the <strong>Standard Edition</strong>.</li><li>Digital Art Book:&nbsp;model viewer, concept art gallery, and more.</li><li>Printable PDFs for box art, papercraft characters, and poster.</li></ul>
<blockquote><em>To get the Deluxe Edition: click the <strong>Buy Now&nbsp;</strong>button below. A window will appear displaying&nbsp;Art Book info; please enter the Art Book's minimum price.</em></blockquote>

<iframe width="720" height="450" src="https://www.youtube.com/embed/S_IVvhSX2tY" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDQ0NzAxLzIyNDEyODYucG5n/original/P%2BnpgD.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQ0NzAxLzIyNDEyODcucG5n/original/8PAgEB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQ0NzAxLzIyNDEyODgucG5n/original/9YPtOu.png]]
<p>Quest of Dungeons is a turn based dungeon crawler game, a roguelike.</p>
<p>An evil Dark Lord has stolen all the light, so your mission is to enter his lair and defeat him. The dungeons layout is procedural so you won't find items/enemies in the same place each time you play.</p>
<p><strong>Description</strong><br>By playing as either a Warrior, a Wizard, a Assassin or a Shaman you have to traverse dungeons, defeat enemies and loot everything you can in order to survive. You can learn new skills in Tomes you find along the way and buy/sell items at shops. <br>The entire game is procedural so you won't find items/enemies in the same place each time you play. </p>
<p><strong>Features</strong></p>
<ul>
<li>Procedural dungeons 
</li><li>Procedural weapons 
</li><li>Boss encounters 
</li><li>Quests 
</li><li>4 Difficulty levels 
</li><li>Permadeath - Once you die, game over man, game over! 
</li><li>Shop - buy and sell items/weapons</li></ul>
<p>Support or just to say hi: questofdungeons@gmail.com</p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzMxMjM2OTIucG5n/original/prTS9k.png" loading="lazy"><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/2PSnXkMcnSA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTIxNy8yNjQ0OS5wbmc=/original/oQt2bD.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIxNy8yNjQ1MC5wbmc=/original/v7ZzZg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIxNy8yNjQ1MS5wbmc=/original/Wq1ZvI.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIxNy8yNjQ1Mi5wbmc=/original/etduv8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIxNy8yNjQ1My5wbmc=/original/ekIuW8.png]]
<h3>About the game</h3>
<p>QUEST OF GRAAL is a multiplayer platform racing game.&nbsp;</p>
<p>The goal is to reach the end of the level and grab the golden cup first! You can play alone against AI or with up to 4 players in split screen.&nbsp;</p>
<p>You can cooperate with other players to make it through the treacherous monsters and deadly traps that stand in your way, but you'll have to betray them to win!&nbsp;</p>
<p>You will use not only weapons and magic items to make it through the mayhem, but also the power of golden statues which unleash their special abilities!&nbsp;</p>
<p>Explore more than 20 levels, including the royal Camelot castle, the verdant forest of Brocelia, the teeming depths of the Lake, and more. Discover the history of Arthur and Merlin's quest for the Graal by unlocking storybook chapters as you play.</p>
<p><img src="https://img.itch.zone/aW1nLzgwNjA2NDIucG5n/original/j9Vtpm.png" loading="lazy"><br></p>
<h3>Features</h3>
<ul><li>More than 20 LEVELS over 4 WORLDS</li><li>Play in TOURNAMENT MODE against AIs or with other players to unlock content</li><li>Try CUSTOM MODE to play the game with different options offering replayability</li><li>Learn the basics of the game in the TUTORIAL by following Merlin's advice</li><li>Discover the storybook in the GALLERY and other secrets</li><li>Run in GHOST MODE to face the creators' best times in each level</li><li>Vary the pleasures in DODGEBALL MODE in throwing ball clashes</li></ul>
<h3>Golden statues</h3>
<p>The golden statues each offer a unique skill that can make the difference during the race but be careful, at the slightest damage received it will be lost!</p>
<p><img src="https://img.itch.zone/aW1nLzgwNjA2NDQucG5n/original/3IBVJi.png" loading="lazy"><br></p>
<p><strong>Have fun !</strong></p>
<h3>Credits</h3>
<ul><li><a href="https://www.instagram.com/challenger.aaa/?hl=fr" rel="nofollow noopener" referrerpolicy="origin">AAA</a>&nbsp;- Art and animation&nbsp;
</li><li><a href="https://www.youtube.com/channel/UCh33DeXgmNMHsJtv03sVMAw" rel="nofollow noopener" referrerpolicy="origin">Théo Mn</a>&nbsp;- Music
</li><li><a href="https://twitter.com/2Pblog1" rel="nofollow noopener" referrerpolicy="origin">Pixel-boy</a>&nbsp;- Art and programming</li></ul>
<p><a href="https://store.steampowered.com/app/1765700" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzcxMDU3NTMuZ2lm/original/%2FOuHvx.gif" alt="STEAM PAGE" title="STEAM PAGE" loading="lazy"></a><br></p>
<p><a href="https://twitter.com/2Pblog1" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzUzMjg4NzUucG5n/original/7R1u3V.png" alt="Twitter" title="Twitter" style="max-width: 100%" loading="lazy"></a>&nbsp;<a href="https://www.instagram.com/challenger.aaa/?hl=fr" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzUzMjg4NzkucG5n/original/VWqVg8.png" alt="Instagram" title="Instagram" style="max-width: 100%" loading="lazy"></a>&nbsp;<a href="https://www.patreon.com/bePatron?u=15528326&amp;redirect_uri=https%3A%2F%2Fitch.io%2Fuser%2Fsettings&amp;utm_medium=widget" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzUzMjg4NzMucG5n/original/vVZ8C4.png" alt="Patreon" title="Patreon" style="max-width: 100%" loading="lazy"></a>&nbsp;<a href="https://www.youtube.com/user/Piixelboy" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzUzMzAzMTMucG5n/original/N%2B%2B0Iq.png" alt="Youtube" title="Youtube" style="max-width: 100%" loading="lazy"></a>&nbsp;<a href="https://gumroad.com/pixelarchipel" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzUzMzA5MzAucG5n/original/ehko4j.png" alt="Gumroad" title="Gumroad" style="max-width: 100%" loading="lazy"></a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/3eYDguRKii4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM4Mzc5OS84MDYwNDkzLmdpZg==/original/MMwQZg.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM4Mzc5OS84MDYwNTIzLmdpZg==/original/LfPIm6.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM4Mzc5OS84MDYwNTc3LmdpZg==/original/%2Fkruwz.gif]]
<p><strong>Questlandia</strong> is a game where we build a world together, then play out its collapse. We each take on the role of someone living in this fantastical society. Whether kings or merchants, warriors or gardeners, our characters pursue their own dreams while the society around them falls apart.</p>
<p>The game tells stories reminiscent of <em>The NeverEnding Story</em>, <em>Nausicaa of the Valley of the Wind</em>, and <em>The Expanse</em> - Unique, troubled worlds with characters swept up in a moment of crisis.<br></p>
<p><img src="https://img.itch.zone/aW1nLzcyMTE1MTEucG5n/original/%2BT2tu1.png" loading="lazy"><br></p>
<p>In the first part of the game, we build a world that is fascinating, strange, and vulnerable. We paint a picture together of the kingdom’s people and architecture, their laws and customs, how they live and how they dream. The result is a surprising, unique fantasy setting. <br></p>
<p><img src="https://img.itch.zone/aW1nLzcyMTE1MTIucG5n/original/OagiHo.png" loading="lazy"><br></p>
<p><strong>Questlandia</strong> is designed to be friendly to quiet and new roleplayers. It gives different players control over different aspects of the setting, so the creativity is shared. And during roleplay, everyone take turns being in the spotlight.</p>
<ul><li>No GM</li><li>One to two sessions</li><li>Collaborative storytelling</li><li>Player-generated&nbsp;setting</li><li>Weird fantasy world-building</li><li>Humor meets high stakes</li><li>Friendly to new &amp; experienced roleplayers</li></ul>
<p></p>
<h2><img src="https://img.itch.zone/aW1nLzcyMTE2ODIuanBn/original/T95%2BOL.jpg" loading="lazy"></h2>
<p>Questlandia physical books are currently out of print, but we're working on a new edition, expected June 2022. We're going to keep the old PDFs up here for now, but if you'd like to purchase the new edition instead, you can pre-order on our website here:&nbsp;<a href="https://turtlebun.com/products/questlandia" rel="nofollow noopener" referrerpolicy="origin">https://turtlebun.com/products/questlandia</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjM5OTczLzExNDI5MzMucG5n/original/HJELkG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjM5OTczLzcyMTE1NDEucG5n/original/URhOnz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjM5OTczLzExNDI5MzgucG5n/original/HHA24P.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjM5OTczLzExNDI5MzkuanBn/original/jPgmAM.jpg]]
<h2>Gameplay</h2>
<p>Quible Sphere features simple gameplay; Get from start to end. That's basically it! But how you do it is up to you. You take the role of a small ball, named Quible, that has to navigate each stage and avoid all the obstacles the game throws at you!</p>
<h2>Features:</h2>
<p>Quible Sphere features several elements for you to enjoy, like:<br></p>
<ul><li> 40 levels for you to complete
</li><li> Extra challenges
</li><li> User-created levels
</li><li> Full controller support (except for level editor)</li></ul>
<p><strong>Controller recommended, but not required!</strong><br></p>
<h2>Steam Vs. Itch release:</h2>
<p>With the game being on multiple platforms with different offerings, some features will differ. By buying the game here on Itch, you support me more directly (due to Steam cuts) AND you will even get a Steam key you can use if you want to get access to the Steam exclusive features!<br></p>
<table><tbody><tr><td>Feature</td><td>Steam</td><td>Itch</td></tr><tr><td>Sync statistics<br></td><td>✅</td><td>❌</td></tr><tr><td>Cloud saves<br></td><td>✅<br></td><td>❌</td></tr><tr><td>Custom levels browser<br></td><td>✅</td><td>❌</td></tr><tr><td>Leaderboards</td><td>✅</td><td>❌</td></tr><tr><td>DRM free<br></td><td>❌</td><td>✅<br></td></tr><tr><td>Create your own levels<br></td><td>✅</td><td>✅</td></tr><tr><td>Get access to the game on Steam<br></td><td>✅</td><td>✅</td></tr></tbody></table>
<p>As you probably can tell, the Steam version is superior. But again, <strong>by buying the game here, you will also receive</strong><strong> a Steam key to get access to all these features! </strong>If you still feel like directly buying the game on Steam, you can find it <a href="https://store.steampowered.com/app/840380/Quible_Sphere" target="_blank" rel="nofollow noopener" referrerpolicy="origin">here</a>.<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/R86TRwhwq10" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjI4MDMzLzEzMzY3NTYuanBn/original/ZFrydL.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI4MDMzLzEzMzY3NjAuanBn/original/KXTtzK.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI4MDMzLzEzMzY3NTcuanBn/original/AVc29E.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI4MDMzLzEzMzY3NTkuanBn/original/%2FP0JED.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI4MDMzLzEzMzY3NTguanBn/original/fR8QzJ.jpg]]
<p class="text-center"><em>~ Countryside exploration and creation ~<br></em></p>
<h4 class="text-center"><div class="text-center"><iframe src="https://www.youtube.com/embed/dywm_rZ3sgw" allowfullscreen="" width="500" height="281" frameborder="0"></iframe></div><em>Discover and Create</em></h4>
<ul><li>A casual creators minimalistic slow game.</li><li>Unique locations featuring bespoke and generative art.</li><li>Satisfying interactions. Mine crystals, smash things and place items</li><li>Create your own unique environmental vignette with discovered items.</li><li>Discover and toy with rare magic stones.</li><li>Day to night cycle with evolving weather.</li><li>Evocative campfires..</li><li>Photography mode.&nbsp;</li><li>Relaxing ambient audioscape and music.</li><li>Throw Rocks Plant Trees.</li><li><em> Includes Steam key (Paid version only)</em></li></ul>
<p><iframe style="width: 500px; height: 281px" src="//www.youtube.com/embed/urhvxOJbUdU" allowfullscreen="" frameborder="0"></iframe></p>
<h4 class="text-center"><em>Remake the World</em></h4>
<p>Starting from your home backyard venture out from site to site collecting precious gems, discovering rare artefacts, stones &amp; books of an imagined world.&nbsp; Use the items you find to create a miniature scene of your own. The rocks and earth are your canvas.&nbsp; Make a photographic record with your film camera and move onwards. <br></p>
<div class=""><iframe src="//www.youtube.com/embed/l-iS44fZNNc" allowfullscreen="" width="500" height="281" frameborder="0"></iframe></div>
<p></p>
<h4 class="text-center"><em>All that is good must pass away</em></h4>
<p>Embrace impermanence. Do good with what limited resources are available to you. Pause to look around at a scene you find, play around briefly and let the ambience play in the background, or stay a while and indulge in crafting a miniature world</p>
<div class=""><iframe style="width: 500px; height: 281px" src="//www.youtube.com/embed/f9Ea270lCGk" allowfullscreen="" frameborder="0"></iframe></div>
<h4 class="text-center">Press</h4>
<p></p>
<p><em>“The work you’re celebrating and documenting here feels as much yours as the creators, and these shots of vanished worlds acquire a poignance no save file would match.”</em><br><a href="https://steamcommunity.com/linkfilter/?url=http://www.kotaku.co.uk/2018/05/15/quiet-as-a-stone-is-about-capturing-fleeting-moments" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Kotaku UK</a></p>
<p><em>“Games like Quiet as a Stone remind me of how beautiful and genuinely cool is it to be so engrossed with an artificial space. I’ve gone from level to level until I’ve found the perfect arrangement of ruins, zooming in close to admire them before framing them with my camera with the perfect combination of distance, light, and color. It helped me to see the beauty in small things: the errant blade of grass that slid into view, a serendipitously-shaped rock heap, the flickering heat of a fire slithering through mist. And it was all right at my fingertips.”</em><br><a href="https://kotaku.com/quiet-as-a-stone-is-a-game-about-exploring-floating-isl-1830724352" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Kotaku US</a></p>
<p><em>“Sometimes I plant gardens, build ruins, and erect mysterious circles of monoliths. Sometimes I look around the different landscapes, watching day and night and rain and shine come and go. Sometimes I just click on stuff to cut grass and smash gems because clicking is fun.”</em><br><a href="https://www.rockpapershotgun.com/2018/12/04/quiet-as-a-stone-diorama-game/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Rock Paper Shotgun</a></p>
<p></p>
<h4 class="text-center">Links</h4>
<ul><li>Developer : <a href="http://www.richardwhitelock.com" rel="nofollow noopener" referrerpolicy="origin">www.richardwhitelock.com<br></a></li><li><a href="http://quietasastone.com/quietasastone_guide.html" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Player's Guide / Manual</a>&nbsp;</li><li>Support : support@distantlantern.com</li></ul>
<h4 class="text-center">Recommended Spec</h4>
<p>PC : Gaming PC or laptop.&nbsp; CPU: i5 or better. RAM: 8GB or better. Storage: 1.3 GB available space. GPU: Nvidia 970 (or AMD equivalent / better).&nbsp;</p>
<p>Mac : Recent 2015+ Mac with discrete Nvidia or AMD GPU. Storage: 1.3 GB available space.</p>
<p class="text-center"><br></p>
<figure><img src="https://i.imgur.com/kFdIPo6.gif" style="max-width: 100%" loading="lazy"></figure>
<figure><img src="https://i.imgur.com/ipiO8gk.gif" style="max-width: 100%" loading="lazy"></figure>
<figure><img src="https://i.imgur.com/hwyn55W.gif" loading="lazy">&nbsp;</figure>
<figure><img src="https://i.imgur.com/h0CPoZw.gif" loading="lazy"></figure>
<p class="text-center"><strong></strong><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/dywm_rZ3sgw" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTUzNTA1LzkyMzEyNC5qcGc=/original/k2lO4a.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUzNTA1LzkyMzExNS5qcGc=/original/gp29qI.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUzNTA1LzkyMzEyMy5qcGc=/original/fbw9XK.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUzNTA1LzkyMzExNy5qcGc=/original/hKoFmn.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUzNTA1LzkyMzExOS5qcGc=/original/rUHPG3.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUzNTA1LzkyMzEyMi5qcGc=/original/fJd%2Fjl.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUzNTA1LzkyMzExNi5qcGc=/original/qhxuqx.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUzNTA1LzkyMzExNC5qcGc=/original/Lqbpvi.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUzNTA1LzkyMzEyMC5qcGc=/original/g9CuJM.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUzNTA1LzkyMzEyMS5qcGc=/original/r7eoVO.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUzNTA1LzkyMzExOC5qcGc=/original/APUbYq.jpg]]
<p>"In a land dying a slow death at the hands of irrefutable prophecy, the thread of reality unravels. As the universe-that-was frays at the seams, more horrifying truths manifest.</p>
<p>Writhing with eldritch hatred is the QVKEMOTHER:</p>
<p>SHUB-NECHURATH reaches out across the cosmic void. Her infinite armies stand poised to bring this realm under her sway. She has heard rumours of the Two-Headed Basilisks and seeks to unseat their power, disprove their apocalypse and usher in one of her own."</p>
<p>QVKE BORG is an unofficial expansion compatible with MÖRK BORG. It’s inspired by the atmospheric, action-packed shooter videogames of the early 1990s. If you ever wanted to bring ROCKET LAUNCHERS into your bleak fantasy role-playing game, this is the book for you.</p>
<p>Forget the spiked flail – we've got EXPLOSIVES, BUCKSHOT and LIGHTNING!</p>
<p>&nbsp;The <strong>QVKE BORG</strong> book is A5, about 40-ish pages and contains:<br></p>
<ul><li>A bestiary containing <strong>13 MONSTERS&nbsp;</strong>ready to drop straight into bloody combat</li><li>Writeups on two god-like horrors: <strong>CHTHON </strong>and <strong>SHUB-NECHURATH</strong></li><li>A new character class, the <strong>SLIPGATE</strong> <strong>RANGER</strong></li><li>An armoury of <strong>8</strong>&nbsp;<strong>WEAPONS&nbsp;</strong>to bring industrialised carnage to the Doomed Dimension and Dying Lands alike</li><li><strong>5</strong> <strong>RANDOM TABLES</strong>&nbsp;and snippets of lore for good measure, to get those Game Master juices flowing</li><li>Artwork by&nbsp;<strong>Johan Nohr</strong>,&nbsp;<strong>Daniel Vega</strong>,&nbsp;<strong>Vil </strong>and more!</li><li>I definitely mentioned the <strong>ROCKET LAUNCHERS,</strong> right?</li></ul>
<p><strong>QVKE BORG</strong> is available in print at&nbsp;<strong>EXALTED FUNERAL!<br><a href="https://www.exaltedfuneral.com/products/qvke-borg-pdf" rel="nofollow noopener" referrerpolicy="origin">https://www.exaltedfuneral.com/products/qvke-borg-pdf</a></strong></p>
<p><img src="https://img.itch.zone/aW1nLzYxMzA0OTgucG5n/original/OdOE4H.png" loading="lazy">&nbsp;</p>
<p><strong>qvke borg</strong> is an independent production by Bird Silhouette Games and is not affiliated with Ockult Örtmästare Games or Stockholm Kartell. It is published under the MÖRK BORG Third Party License.</p>
<p><a href="https://morkborg.com/" rel="nofollow noopener" referrerpolicy="origin"><strong>MÖRK BORG</strong></a>&nbsp;is copyright Ockult Örtmästare Games and Stockholm Kartell.</p>
<p>Bird&nbsp;Silhouette Games is a proud supporter of Zine Month 2022: click the moth and check out a whole bunch of cool independent projects that are being funded or released in February 2022!<a href="https://www.zinemonth.com/" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzgwNDExNzEucG5n/original/u2JEIQ.png" loading="lazy"></a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/YUrdZswVREQ" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA3MDA2My84MDUwNDMwLmpwZw==/original/HkKfOz.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3MDA2My83Nzg3MDExLnBuZw==/original/e6PnND.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3MDA2My83Nzg3MDEyLnBuZw==/original/QfZ0I7.png]]
<p>You are an animal living in a human’s world. The humans have found you, and the military will pursue you with every weapon, vehicle, and trap they have at their disposal. You’ve only got one option. RUN!</p>
<p>Rainbow Runaways was created for the Caltrop Core game jam,&nbsp; and runs on the&nbsp;<a href="https://titanomachyrpg.itch.io/caltropcore" target="_blank">Caltrop Core engine by Titanomachy</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMzNzgyMy83Nzg1MTYyLnBuZw==/original/WYptEN.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMzNzgyMy83Nzg1MTYzLnBuZw==/original/huYVwP.png]]
<p>RAKETE is a cooperative multiplayer game for up to 5 players. Each player controls one thruster of a rocket with the goal to land it safely. Let the insanity commence!<br></p>
<p>Default controls are C, V, B, N, M or 1, 2, 3, 4, 5. To have more space for the hands of 5 players on your keyboard, it is possible to rebind the controls by starting the game with "alt" pressed. If no other players are around, it is also possible to play the game alone.<br></p>
<p>RAKETE was created by Mario von Rickenbach in 2012.<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTcwMDg4LzI5OTYxNTQuanBn/original/V%2BnTLz.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTcwMDg4LzI5OTYxNTYuanBn/original/OGlhz4.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTcwMDg4LzI5OTYxNTUuanBn/original/ysP4Hd.jpg]]
<$list filter="[is[current]has:field[rating]]">
''Rating'': {{!!rating}}&nbsp;&nbsp;
</$list>
<p><strong></strong><em><strong>RAYCATS™ is a single-session TTRPG about swole, sexy, humanoid cats who guard the mysterious RAD ZONE and protect what's left of&nbsp;</strong><strong>life on Earth. Inspired by Teenage Mutant Ninja Turtles, Thundercats, Power Rangers, and a bit of Mad Max,&nbsp;</strong><strong>this simple game (based on John Harper's </strong><u><strong>Lasers and Feelings</strong>)</u><strong>&nbsp;takes minutes to pick up and has all the mechanics and story prompts&nbsp;you need to have a raucous few hours of campy, Saturday&nbsp;morning cartoon fun.</strong></em></p>
<p><strong>Players</strong>: 3-7, including one GM
</p>
<p><strong>Length</strong>: One session of 2-3 hours
</p>
<p><strong>Genre</strong>: Action, Superhero, Post-Apocalyptic, Sci-Fi
</p>
<p><strong>Materials</strong> <strong>Needed</strong>: At least one 6-sided die, pens, paper <br></p><p><strong>Content</strong> <strong>Warnings</strong>: Violence, nuclear war, cults, bugs</p>
<p><br></p>
<p><u></u><u><strong>The Truth (seriously)</strong></u></p>
<p>In 1981, the Human Interference Task Force was formed to develop methods of warning Humans in the future of buried radioactive waste. This method had to transcend language, culture, and millennia of Human stupidity. As it happened, the methods proposed also transcended all reason and good sense. One particularly <strong>batshit</strong> proposal was to breed a species of housecat that would change color when exposed to radiation - “raycats.”</p>
<p><strong><u>The Fiction - as told by RAYCATS™</u></strong></p>
<p><em>The Elders speak of the Before Times, when we were still small, cute creatures that lived with Humans, snuggling them and clawing their furniture. Our color-changing fur warned Humans when they were near high radiation, saving countless lives. But then one day, claxons blared. The skies turned sickly green. The Humans dropped their bombs and blew themselvs to near-extinction, and the World Desert was born in fire.</em>
</p>
<p><em>Now, several feline generations later, most of the Humans are gone. The few that remain have bodies warped by radiation and minds tainted by nihilism.&nbsp;</em>
</p>
<p><em>As for us? All that radiation gave us a glow-up.</em>
</p>
<p><strong><em>We are the</em></strong> &nbsp;<strong>RAYCATS™</strong><strong><em>—swole, sexy, and dressed&nbsp;</em></strong><strong><em>to the nines. We’ve morphed into fearsome felines and guardians of Planet Earth... or what’s left of it.</em></strong></p>
<p><em>The Elders say it’s our duty to guard the </em><strong>RAD ZONE</strong><em>. They say what’s buried there is dangerous to all Life, and that we are never to tread there. We’ve obeyed so far and done our duty. But who knows? desperate times may one day call for desperate measures...</em>
</p>
<p>
<strong><u>The Set-Up</u></strong></p>
<p>A <strong>Threat </strong>is going to want something found only at the very heart of <strong>RAD ZONE</strong>. Your team of RAYCATS™, which has guarded the <strong>RAD ZONE</strong> for centuries, must stop the <strong>Threat</strong> from getting it at all costs.
</p>
<p>The <strong>Players </strong>take on the roles of the RAYCATS™ as they explore the forbidden <strong>RAD ZONE</strong>. The <strong>Game Master (GM) </strong>will create the storyline, describe the scenes, play the part of any non-Player characters (NPCs), decide when Players roll, and create consequences for the Players’ actions. Everyone works together to drive the story toward a satisfying conclusion.
</p>
<p><span></span></p>

[img width=500 [https://img.itch.zone/aW1nLzc4NjQ5ODMucG5n/original/wuFGyx.png]]
<p><a href="https://store.steampowered.com/app/1014580/RB_Axolotl/" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">Wishlisting us on steam helps a lot!</a><br></p>
<p><img src="https://img.itch.zone/aW1nLzEzMjczODQucG5n/original/IgU9SA.png" loading="lazy"><br></p>
<p>Five axolotls appear one day through a void, their entire existence shrouded in mystery. A story chock-full of surprises, best experienced blind.</p>
<figure><img src="https://img.itch.zone/aW1nLzEzMjczODIucG5n/original/mDDYd6.png" loading="lazy"></figure>
<p><strong></strong></p>
<p>Taking place in a tank suspended upon a cosmic wonderland, five axolotls appear one day from a mysterious, thundering void. They quickly learn they are able to speak with one another, and relationships are formed. However, something is off. Each axolotl seems to possess knowledge they should not know. Foods, and people, and places and concepts...<br><br>And obsessions.<br><br>Amid conspiracies, illness', fights to the death, VR headsets, and bizarre reality switching, a figure named [RB] seems to be pulling the strings behind it all.<br></p>
<h2>Features</h2>
<ul>•A mystery with over 10 hours of content. Surprises await ye' at every turn traveler!</ul>
<ul>•Press ‘S’ at various points in the story to perform the world's greatest somersault! I cannot overstate this:&nbsp;THE WORLD'S GREATEST SOMERSAULT! Axy worked quite hard to gain that title, you know.</ul>
<ul>•Choose carefully! There will be at least one choice in the game, maybe two choices, perhaps even fifty choices!!! But none of which will affect your playthrough whatsoever, so don't worry about them and ignore this&nbsp;bullet point.</ul>
<ul>•Dynamic movements bursting with personality and tweens! Each scene is handcrafted with care and love, and none look the same. The screenshots do not do it justice!</ul>
<ul>•Maybe a funny thing like a giant axolotl... or maybe an axolotl cosplaying as human? Some mildly funny or maybe even moderately funny thing might happen when intense plot beats aren't occurring! Sometimes they might even happen while they're occurring! :O&nbsp;</ul>
<ul>•We have an OST! It's really great! 3 people worked on it, including the author!</ul>
<ul>• There's a Breaking Bad reference, an Umineko reference, and a Rugrats reference... Has this holy trinity ever been referenced before in one piece of media?</ul>
<ul><br></ul>
<p>Surely, there are many things that can be said, but RB: Axolotl is unlike anything you’ve ever seen before.&nbsp;<br><br>This is an emotional tale that I built with all the passion and love in my heart.<br><br>Despite its cute art style,<strong>&nbsp;the visual novel RB: Axolotl is intended for mature audiences only.</strong></p>
<h2>MATURE CONTENT DESCRIPTION</h2>
<p>The developers describe the content like this:</p>
<p><em>Contains depictions of depression, anxiety, and implied suicide. Also contains harsh language.</em></p>
<p>Trailer edited by KotoriMWorks</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/HsOszRXwIlc" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjc0MTkyLzMzNzk3NDIuanBn/original/XqWb8k.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjc0MTkyLzMzNzk3NDQuanBn/original/cWp9XQ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjc0MTkyLzMzNzk3NTAuanBn/original/dSS0cj.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjc0MTkyLzMzNzk3NjEuanBn/original/YRMLD6.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjc0MTkyLzMzNzk3NTcuanBn/original/Rv6AAm.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjc0MTkyLzMzNzk3NTkuanBn/original/WphqZA.jpg]]
<p><em>Consider buying the game on steam!<br></em><em></em><em></em><em><a href="https://store.steampowered.com/app/1714020/RD_Mars/" rel="nofollow noopener" referrerpolicy="origin">https://store.steampowered.com/app/1714020/RD_Mars/</a></em><br></p>
<p>Content warning for epilepsy, motion sickness, or those sensitive to issues relating to mental health.&nbsp; <br></p>
<p><br></p>
<p>Dearest Intangible,<br></p>
<p>RD Mars is a top-down shooter where you play as an AI reconstruction of a once-great inventor, Felix Darwins. Explore the laboratory, and learn of his rise and downfall.<br></p>
<p>You can also follow the development here:
</p>
<p><a href="https://twitter.com/tyeishing" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/tyeishing</a>
</p>
<p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/o7hWTPRuJHY" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTk3NzU3LzYwNjI0NTQucG5n/original/BeY9s0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTk3NzU3LzYwNjI0NTIucG5n/original/cC5sTP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTk3NzU3Lzc1ODk2NzEucG5n/original/2gBd1j.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTk3NzU3Lzc1ODk2NzMucG5n/original/9YpRzO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTk3NzU3Lzc1ODk2NzIucG5n/original/ie2we8.png]]
<p><em><strong>Overture</strong></em></p>
<p>A Misty Fantasy PbtA game inspired by the tone and feel of Florence + The Machine’s <em>High as Hope</em>, best played over short games or one-shots.&nbsp;<span></span><span></span></p>
<p>This is a game of having <em>Lost</em><em> </em>and hoping to <em>Find</em>. Of exploring <em>The Land</em> encased in mist and dew. Players take on the role of beings who have drifted into <em>The Land</em> having lost pieces of themselves. One person takes on the role of the <strong>Choir</strong>. It is the Choir’s job to weave together the strings of narrative the players provide and act as the conduit for <em>The Land’s</em> own will.&nbsp;<em><br></em></p>
<p><strong><em>What is misty fantasy?</em></strong></p>
<p>Wandering through a forest, dew on your lip, sunlight dappling the mossy earth. An old doorway stands alone at the end of a crumbling brick road. Ocean spray on a cliffside as the pale clouds gather. Soft sounds and sights that flicker at the edge of your perception. Weightless beings that hide amongst the shadows and reflections. Misty fantasy is meant to be evocative. You are here to capture emotional and sensory moments, with a hint of the vague and surreal. Misty embodies the enthralling melancholy of the album that inspired this game, and fantasy is here because the world you play in is magical. But in keeping with that swirling and mysterious tone, the magic isn’t meant to be explained. It is meant to be experienced.</p>
<p>So, now it is time for you to&nbsp;conjure forth your Form and venture into the mists of&nbsp;<em>The Land</em>. Who knows what you may&nbsp;<em>Find</em>?</p>
<p>Form sheets for recording your Form are available as a free demo download below, as well as&nbsp;included in the full download.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzUzODUwLzcxODA3MjIucG5n/original/FSV1BO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzUzODUwLzcxODc1NzkucG5n/original/pjv1yg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzUzODUwLzcxODA3MjMucG5n/original/XJHw%2Bd.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzUzODUwLzI2Mjk4OTQucG5n/original/N0F6E6.png]]
<p>When you run out of wholesome baking shows to marathon, play as your favorite baker personality in this <em>GBBO</em>-inspired mini-RPG.</p>
<p>With themed recipe challenges, secret ballot voting, and guided mad-lib recipe generation, whip up wild and wacky bakes just like the baking competitions.</p>
<p>Using an original RPG system,<strong> Ready Set Bake</strong> is ideal for roping in family members and friends who aren't familiar with RPGs but love baking and cooking shows.</p>
<ul><li>Player count: 3-13 players and 1 host</li><li>Estimated play length: 30 minutes to 2 hours</li><li>Requirements: pencil/paper or a virtual tabletop, 1d12, 2d6, enough d4s for each player to have 2, and a set of d100</li><li>Included: Full-color version, low-ink version, character sheets, host sheets, turn order guide for players</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTQyOTI4LzM5ODAwMDcucG5n/original/QXgdqv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQyOTI4LzM5ODAwMzAuanBn/original/wwK9Zh.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQyOTI4LzM5ODAwMzEuanBn/original/cE%2FyU%2F.jpg]]
<h3>Rebop Blasters is an overpowered platform brawler with destructible terrain and a jazz soundtrack created by the players.</h3>
<h3>this game is a demo, please have fun but it comes with absolutely no guarantee of anything except that it's really fun.</h3>
<p><br></p>
<p>Hopefully the game natively supports xboxone/360, ds3/4, switch pro out of the box. Steam controller support coming.<br></p>
<p><strong><br></strong></p>
<p><strong>GAMEPLAY CONTROLS:</strong></p>
<p><strong>Jump</strong>: jump/toggle flight/stun cancel/dodge roll</p>
<p><strong>Attack</strong>: short range(tap), dash (hold and release with direction)</p>
<p><strong>Special</strong>: fireball(short tap) blast&nbsp;(hold and release with direction)</p>
<p><strong>Block</strong>: grab (short tap) block (hold)</p>
<p><br></p>
<p><strong>DEBUG</strong>:&nbsp;</p>
<p><strong>R</strong>: resets the current level.</p>
<p><strong>Escape/Pause</strong>: open the menu</p>
<p><br></p>
<p>Default keyboard controls are garbage and designed for me to test move interactions one-handed (xbone controller awkwardly in the other), please feel free to remap them and suggest a default mapping.<br></p>
<p><strong>wasd</strong> : movement</p>
<p><strong>jkl</strong>: attack, charge, block</p>
<p><strong>space</strong>: jump</p>
<p>Currently the game is limited to one mode (versus) and is local multiplayer only. I'd be interested to see how it plays through a service like Parsec, but be aware that giving someone access to play a game with you remotely is a security risk. &nbsp;</p>
<p>Please use the forum for bug reports/questions/suggestions. <br></p>
<div class=""><iframe style="width: 500px; height: 281px" src="https://www.youtube.com/embed/6P0JLBiVeuk" allowfullscreen="" frameborder="0"></iframe></div>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/6P0JLBiVeuk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzA0MTI0LzIwMzAwNDcuZ2lm/original/4g8H5C.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA0MTI0LzIwMzAwNTMuZ2lm/original/mopJ%2Fy.gif]]
<p><em>A Recipe on Kmiydish Paper</em> is a one-player game about delicious food and the communities who prepare it.<br></p>
<p>We’ve all been told that some recipes have been handed down through generations, or kept in restaurant safes for decades, or are only known and cooked by mysterious figures. These recipes, and the food they create, are well-loved historical relics, mirroring a region’s geography, politics, and people. <strong>What are the hidden histories behind our favorite butter pickles, beers, briskets, and breads?</strong> And what would it look like if history was seen through their (yeasty) eyes?
</p>
<p><em>A Recipe on Kmiydish Paper</em> is <strong>a solitary game built for <a href="https://itch.io/jam/lost-and-found" target="_blank">the Lost &amp; Found jam</a></strong> that answers those questions. Instead of playing as adventurers at a tavern, or even a chef behind the scenes, <strong>you will inhabit a food from its conception through history in the sister cities of Blue Kmiyd and Rose Kmiyd.</strong>
</p>
<p>These sister cities have seen wars, extinctions, and the questionable churn of industrialization transform the landscape and the treatment of citygoers: including the people who recorded your recipe on Kmiydish paper. As an insular cultural group, your creators may use you as an economic lifeline or a form of communal love throughout the centuries. You’ll pass through 5 Chefs, each being changed by and changing you, from your ingredients to your street cred to their futures.
</p>
<p>You might be the first food given to a newborn by a doula, or a new food entirely whipped up by in a cooking competition, or the food rations thrown into trenches during an Kmiydish civil war. Using random tables, guiding questions, and a twisting three-act structure, you will never play through the same world twice or develop the same strange recipe - which you can cook at the end of your worldbuilding session! An actual play session of all this in action can be <a href="https://otter.ai/u/UD3hGVzFOfFhk4H5LMxX3SqC1-I" target="_blank" rel="nofollow noopener" referrerpolicy="origin">listened to or read here</a></p>
<p><em>Recipe on Kmiydish Paper</em> is based upon the experiences of pre-WWII Jewish Quarter residents in Eastern Europe and the power and legacy of their food. It’s a love letter to Chowder, Strega Nona, Top Chef, and Mandy Patinkin, to name a few inspirations. No dice are required for play, just something to write on, <a href="https://open.spotify.com/playlist/39a4RAWIDPF3Fv3bxs4jOS?si=0ce06ab58dda4e4c" target="_blank" rel="nofollow noopener" referrerpolicy="origin">the Kmiydish Rest playlist</a>, and a few hours to build out a food history. This is a perfect pre-game exercise to flesh out the urban or culinary history of a location you can slot into another TTRPG of your choice.
</p>
<p>Dive to play as:
</p>
<ul><li>The Beverage, from vodka to tea
</li><li>The Pastry, from matza to croissants
</li><li>The Meat, from tongue sandwiches to kofta
</li><li>The Preserve, from sauerkraut to raspberry jam
</li></ul>
<p>Be inherited and altered by 27 different chefs, from human to golem, forager to consumer, suppressionist to archivist.
</p>
<p>Features 6 stunning artworks by Aylin Erkan, a Turkish-Ashkenazi&nbsp;illustrator, harkening back to cookbook inlays and family memories.</p>
<p>Also includes:
</p>
<ul><li>A <a href="https://open.spotify.com/playlist/39a4RAWIDPF3Fv3bxs4jOS?si=0ce06ab58dda4e4c" target="_blank" rel="nofollow noopener" referrerpolicy="origin">60-song playlist</a>, to mark time passing and keep you company!
</li><li>A D20 list of religious rituals + a D20 list of food culture traditions.
</li><li>An excerpted dictionary of words and names in the local tongue.
</li><li>An assorted selection of Kmiydish holidays, rumors, and lore.
</li><li>An optional “pantry mode” to localize the game to your kitchen.
</li></ul>
<p>Game format: 46-page full color PDF, A5 size and formatted to be read as a digital PDF (but feel free to print and play yourself).&nbsp;
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE5OTA1OS84Mjc5Mjg0LmpwZw==/original/z5%2Bsej.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE5OTA1OS84Mjc5MjgzLmpwZw==/original/eSv1YV.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE5OTA1OS84Mjc5Mjg1LmpwZw==/original/LeB%2F4n.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE5OTA1OS84Mjc5MjgyLmpwZw==/original/rZ2mdi.jpg]]
<p><strong>Overview</strong><br>The year is 1984, and Rob is just trying to do his job at the record store, putting away records. Unfortunately for Rob, the dead have risen... and they want music!</p>
<p>Help Rob defend the store by throwing albums and compact discs at the approaching horde. If he gets touched, or one gets past him, it's all over.</p>
<p><strong>Features</strong><br>Two ways to play:<br></p>
<ul><li>Speed Run - beat 10 waves as fast as you can while you wait to get rescued!</li><li>Endless - see how long you can last before the horde finally dines on your bones.</li></ul>
<p>Classic album covers re-created in pixel art; put enough of them away and Rob earns a new compact disc to throw at his enemies!<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/H_tKEAVz-5g" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTc2Mzk0LzgyMzg0MS5qcGc=/original/aV1lMd.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc2Mzk0LzgyMzg0Mi5qcGc=/original/fHbSEK.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc2Mzk0LzgyMzg0NC5qcGc=/original/l5gkJ9.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc2Mzk0LzgyMzg0NS5qcGc=/original/QW6%2Bir.jpg]]
<p><strong>This is a tale about pain, suffering, and vengeance; about hope, compassion, and mercy.<br></strong><br></p>
<p><strong><img src="https://img.itch.zone/aW1nLzQyNzkzMzMucG5n/original/0Gxkxg.png" loading="lazy"></strong></p>
<p>Inspired by the Red Ridding Hood's tale, Redd's Runaway is a run and gun action game, combining a frenetic playstyle with an aesthetic reminiscent of the traditions of Halloween and the Day of the Dead, in a short experience aiming for a great replayability.</p>
<p><img src="https://img.itch.zone/aW1nLzQzNjY2MDEucG5n/original/Yu2bkr.png" loading="lazy"><br></p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzQyNzkzMzUucG5n/original/u7dPRQ.png" loading="lazy"><br></p>
<ul>
<li>A run and gun 2D game, inspired by classics like Megaman X, The Adventures of Batman and Robin (Mega Drive) and Ghost n' Goblins.</li>
<li>Get inmersed into a world infused with the Halloween and the Day of the Dead mythos, where ghosts, monsters and demons appear at every step.</li>
<li>6 worlds, each one full of enemies and a level boss.</li>
<li>Obtain new weapons and switch between your arsenal in real time, as you develop your own strategies to surpass this nightmare.</li>
<li>Different game modes, like Arcade, Endless, and Boss Rush.</li>
<li>Discover a story about revenge, when the sorceress Redd must stop an Underworld invasion in Brock City.</li></ul>
<ul>
<img src="https://img.itch.zone/aW1nLzQzNjY2MTIucG5n/original/0sraH%2B.png" loading="lazy"><br><br></ul>
<p><img src="https://img.itch.zone/aW1nLzQyNzkzMzcucG5n/original/CN2D8Z.png" loading="lazy"><br></p>
<p>Redd was an orphan adopted by a master sorceress when she was just a baby. She has learned a few spells specialized in offensive tactics, to protect other people from supernatural menaces. She believes that life, as is, is chaotic enough, and is willing to help others in need against the creatures of the Underworld. After joining the Legion of Sorcerers in her adulthood and starting her training, tragedy struck her life when an unknown attacker killed her mother. With a scar as a reminder of the event, Redd suffered a deep trauma, which left her confused and depressed, pushing away her best friends and teammates.</p>
<p>When Brock City is under invasion, she will use everything she learned to fight along the Legion and defend the innocent, learning new spells in her way to stop this nightmare. But this event may put her abilities and strength at test until its last consequences: moreso, her true believings.</p>
<p><strong>Join Redd's journey to stop this supernatural invasion and the mind behind this nightmare.<br><br><img src="https://img.itch.zone/aW1nLzQzNjY2MzgucG5n/original/lJReR2.png" loading="lazy"><br><br></strong></p>
<p><img src="https://img.itch.zone/aW1nLzQyNzk1MzcucG5n/original/KRaK9D.png" loading="lazy"><br></p>
<p>Minimum System Requirements:</p>
<ul>
 <li>OS: <strong>Windows 8 or higher 64 bits<br></strong></li>
 <li>Processor: <strong>Intel Core i5</strong></li>
 <li>Memory: <strong>4GB RAM</strong></li>
 <li>Graphics: <strong>Dedicated graphics card (OpenGL 3.0 support or higher)</strong></li>
 <li>Storage: 4<strong>00 MB available space</strong></li>
</ul>
<p><strong>Subtitles: English, Spanish.<br>Controller support.<br></strong></p>
<p><strong>Royalty Free soundtrack courtesy of White Bat Audio.<br></strong><strong>Redd's Runaway Main Theme by White Bat Audio.</strong></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/P7CJI8XZa-E" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzY0OTUwLzQzNjY1NzUucG5n/original/oBmKdH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzY0OTUwLzQ0ODI4MzQucG5n/original/aDsBuT.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzY0OTUwLzQzNjY1NjYucG5n/original/4a%2BrAd.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzY0OTUwLzQzNjY1NTQucG5n/original/HJZbsU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzY0OTUwLzQzNjY1NDQucG5n/original/oW0hSF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzY0OTUwLzQzNjY1NDEucG5n/original/DrZd3U.png]]
<p>Join the macaw Regina and the tyrannosaurus Mac on their adventure as they try to escape a lifeless research lab. The only way out? To find the golden Floppy discs on which the memory of the lab’s computer system U64 is stored so that it can help the duo to find an exit. Regina &amp; Mac is a 3D platformer that stands in the tradition of the classics from the late 90s and offers a fair challenge even for genre aficionados. 
  </p>
<ul><li>Venture through nine expansive, yet compact worlds with ten golden Floppies each.
  </li><li>Tackle the tasks in your order. You are free to explore the lab and its levels and choose the order in which you want to collect the Floppies.
  </li><li>Exploration, Platforming and Puzzle solving await.
  </li><li>An ever-expanding move set keeps the experience fresh from start to finish.
  </li><li>Featuring visuals reminiscent of the early 3D days at 60 frames per seconds. Relive the atmosphere of yesteryear without sacrificing comfort.
  </li><li>A feast for the ears, as playful pieces from three musicians support the experience.
  </li><li>Available on Xbox One as part of the Creators Collection and on the PC via Windows Store and DRM free on itch.io.&nbsp;Wii&nbsp;U&nbsp;release&nbsp;following on 16th of January
  </li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTAzNDMzLzI2NjY5MDguanBn/original/kd%2Bbwm.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTAzNDMzLzI2NjY5MDkuanBn/original/eSJU%2Fd.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTAzNDMzLzI2NjY5MTAuanBn/original/RFrU8l.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTAzNDMzLzI2NjY5MTEuanBn/original/H5xNm8.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTAzNDMzLzI2NjY5MTIuanBn/original/nlLW91.jpg]]
<h5>PLEASE NOTE: Ports to systems other than Windows (64bit)&nbsp;are sold&nbsp;UNTESTED.&nbsp;</h5>
<p class="text-center"><strong>I <em>DO NOT </em>have the means to test these ports, and you are hereby being made aware of this if you're thinking of buying them. Thank you for your co-operation.&nbsp;</strong></p>
<h3 class="text-center">Your itch.io purchase of reIterate() comes with a Steam Key (assuming I've set it up properly)!&nbsp;</h3>
<p><em>Spawning from popular YouTube channel, "Let's Talk Game&nbsp;Design", <strong>reIterate()</strong> is a modern-classic retro-styled 2D precision platformer, with a focus on fluidity and motion, that adheres to some philosophically valid (well, I think so, anyway)&nbsp;game design practices.</em></p>
<p><em></em><strong><em>Now including Source Project file for Construct 3! See how this shoddy wreck is a minor miracle in actually coming out at all!&nbsp;</em></strong></p>
<p class="text-center">"<strong>reIterate()</strong>, much like the channel that spawned it, is a lesson in game design" -&nbsp;<strong>RoseTintedSpectrum</strong></p>
<p><strong>reIterate()&nbsp;</strong>is a fast-paced 2D platformer with a focus on precision and fluidity, with a strong contrasting aesthetic and a retro-future soundtrack.<br><strong><br></strong></p>
<p>reIterate()&nbsp;has a classic purity that’s all about getting from the beginning to the end, navigating familiar but challenging hazards like spikes, spikes, some spikes, and also, some spikes. They rotate, they spin, they shoot out at you, and sometimes, they just sit there.<br><br>Along the way, you’ll master wall-jumping, double-jumping, bouncing, springs, vanishing platforms, moving platforms and even portals as you leap from level to geometric level, moving along, up and down the screen to put in your best possible performance over 60 challenging and varied stages.<br><br>Then you can leap into the dedicated Speedrun Mode to really test your abilities and (possibly) become a Twitch sensation with your mad speedrunning skills.<br><br><strong>reIterate()</strong> is ultimately designed to represent a game from a theoretical retro console that never actually existed. Something old and familiar, yet also a little bit different and strange. And always, always fun to play.<br><br><strong>FEATURES:</strong></p>
<ul><li><strong>More than 60</strong>&nbsp;hand-crafted levels, designed with a meticulous philosophy<br>
</li><li><strong>Optional collectibles</strong>&nbsp;for that extra challenge<br>
</li><li><strong>Unlockable backstory segments</strong>&nbsp;and fully skippable cutscenes to add lore and depth to the experience<br>
</li><li>Dedicated&nbsp;<strong>Speedrun</strong>&nbsp;Mode<br>
</li><li>A much harder&nbsp;<strong>Black Edition</strong>&nbsp;mode, where every level has been remixed and redesigned to push you to your limits.<br>
</li><li><strong>Dedicated 'Time Slow' for accessibility.&nbsp;</strong>Stuck on a particular bit? Slow down time to a third of its regular speed, and take your time with the challenge.<br>
</li><li><strong>A Jukebox system</strong>, putting you in charge of your background music playlist<br>
</li><li><strong>Geometric shapes</strong>&nbsp;and&nbsp;<strong>simple contrast</strong>&nbsp;built together into a pleasing aesthetic<br>
</li><li><strong>Uncapped framerate</strong>&nbsp;for silky smoothness<br>
</li><li>And&nbsp;<strong>more</strong>, probably!
</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/fi8-sUMZRxs" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM5OTU2NC84MTU2NjM0LmpwZw==/original/teH20M.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5OTU2NC84MTU2NjM2LmpwZw==/original/r9Gi4v.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5OTU2NC84MTU2NjM3LmpwZw==/original/0MK3sO.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5OTU2NC84MTU2NjM4LmpwZw==/original/nyseot.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5OTU2NC84MTU2NjM1LmpwZw==/original/Ml%2FP7t.jpg]]
<p class="text-center"><em><em>"Everything stays but it still changes"</em></em><br></p>
<p class="text-center"><strong><em>Reminiscence in the Night&nbsp;</em></strong>is an interactive visual novel<br>focused on the theme of lost memories<br>and how our daily choices can help us cope with them.</p>
<figure><img src="https://img.itch.zone/aW1nLzMyMDU1MzkucG5n/original/ZgkhP2.png" loading="lazy"><br></figure>
<p class="text-center"><em>You’re trapped in your apartment.<br></em><em>You have no memory of your past.</em></p>
<p class="text-center"><em>As you try to escape, you rapidly understand that<br></em><em>you must confront your traumas<br></em><em>and the only way to do this is to let your choices guide you<br></em><em>in order to be free.</em></p>
<p></p>
<p class="text-justify"><img src="https://img.itch.zone/aW1nLzMyMDU1NDAucG5n/original/VjNZJ4.png" loading="lazy"><br></p>
<p class="text-center"><em>Your apartment is your haven.<br></em><em>The items inside it carry your memories<br></em><em>and all you need to understand who you are.</em></p>
<p><br></p>
<p class="text-justify"><img src="https://img.itch.zone/aW1nLzQ0Njk5OTMucG5n/original/fUah5g.png" loading="lazy"><br></p>
<p><br></p>
<figure><img src="https://img.itch.zone/aW1nLzMyMDU1NDEucG5n/original/mpZMQ0.png" loading="lazy"><br></figure>
<p class="text-center"><em>Sofia, your childhood friend,<br></em><em>is your only companion through your quest to retrieve your memory and the freedom<br></em><em>to continue living again.</em></p>
<p class="text-center"><em>She guides you in understanding what is happening and why<br></em><em>through conversations about your relationship<br></em><em>or telling you stories about the items in your room.</em></p>
<p></p>
<p class="text-justify"><img src="https://img.itch.zone/aW1nLzQ0Njk5OTAucG5n/original/q4YdXN.png" loading="lazy"><br></p>
<p><br></p>
<p class="text-justify text-center"><img src="https://img.itch.zone/aW1nLzMyMDU1NDQucG5n/original/fVKakK.png" loading="lazy"><br></p>
<p class="text-center">While advancing through the game,<br>You’ll enter in a familiar space,<br>in which a mysterious man is waiting for you.</p>
<p></p>
<p class="text-center"><em>Choices will follow you in here too.<br></em><em>And depending by them you’ll get closer or more distant<br></em><em>from yourself and your memories.</em></p>
<p class="text-justify"><img src="https://img.itch.zone/aW1nLzQ0Njk5OTIucG5n/original/0c6nvW.png" loading="lazy"><br></p>
<figure><img src="https://img.itch.zone/aW1nLzMyMDU1NDUucG5n/original/1yhucq.png" loading="lazy"><br></figure>
<p class="text-center"><em><strong>Art:</strong><br></em>Lio Cordano<br>Emma Martinuz<br>Lidia Santoemma<br>Rinkaku</p>
<p class="text-center"><em><strong>Writing, Programming and Direction:</strong><br></em>Rinkaku</p>
<p class="text-center"><em><strong>Music:</strong><br></em>Matteo Emanuele Vacca</p>
<p class="text-justify text-center"><br></p>
<h1 class="text-center">If you liked the game leave a comment or a rating and...</h1>
<p class="text-justify"><a href="https://twitter.com/TSoletude" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzMyMDU1NDYucG5n/original/d5HVfN.png" loading="lazy"></a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjA0MjQzLzQ0NzAwNzMucG5n/original/DNl4hk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjA0MjQzLzQ0NzAwNzIucG5n/original/Or05BX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjA0MjQzLzQ0NzAwNzEucG5n/original/5PwB2E.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjA0MjQzLzQ0NzAwNzAucG5n/original/2rWYPo.png]]
<p>It’s modern-day, modern year. You live in a small urban neighborhood that’s seen better days, and you and your neighbors want to work together to revitalize it. But something is threatening your neighborhood, and you all have to work together to stop the threat and bring your piece of the city back to life. What will happen to your friends, family, home, and yourself? Create your character, fight off the threat, and save your neighborhood!<br></p>
<p>This is a hack of John Harper's <em>Lasers &amp; Feelings.</em><br><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE0ODg0My82NjcyNTIyLnBuZw==/original/%2FcBju8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE0ODg0My82NjcyNTIzLnBuZw==/original/e9LepD.png]]
<p>“<strong>I’m a fag, I’m a Jew, how do you do?<br></strong>That’s MISTER Anarchist to you.<br>You think your scene’s dead, but mine got killed<br>By some dimwit’s ‘Triumph of the Will’</p>
<p>From the all-ages shows to the full wet bars<br>To the front line squats of the culture wars<br>I'm not gonna hit you with the dogma&nbsp;or the lecturing<em><br></em><strong><em>This is a purely personal thing.</em></strong><br><br>You see, Pirate Jenny&nbsp;didn't have no friends when those bulls, they came for her<br>And Sally Bowle's man, he got pushed up against the wall<br>Now every time I see a Swiss bank I spit!<br>You say "resist control"? Well, I mean it!<br><strong><em>Cause it was come as you are, in the cattle cars<br>And not a damn thing you can do about it<br>'Cept remember!</em></strong>”<br><strong>- The World/Inferno Friendship Society, “Ich Erinnere mich an die Weimarer Republik”</strong></p>
<p><em>Resist &amp; Remember&nbsp;</em>is an anti-fascist tabletop roleplaying game by Devon&nbsp;Oracz dedicated to honoring, memorializing, &nbsp;and commemorating those who stood up in the face of fascism, bigotry, and tyranny--and all too often paid the ultimate price--by interactively telling their stories.<br></p>
<p>KICKSTARTER:&nbsp;<a href="https://www.kickstarter.com/projects/endtransmissiongames/resist-and-remember-weimar-an-anti-fascist-rpg/" rel="nofollow noopener" referrerpolicy="origin">https://www.kickstarter.com/projects/endtransmissiongames/resist-and-remember-weimar-an-anti-fascist-rpg/</a><br>MY PATREON:&nbsp;<a href="https://www.patreon.com/DragonsInDungeons" rel="nofollow noopener" referrerpolicy="origin">https://www.patreon.com/DragonsInDungeons</a></p>
<p><em>Resist &amp; Remember: Weimar&nbsp;</em>is the first or "pilot"&nbsp;<strong>Uprising</strong>&nbsp;of&nbsp;<em>Resist &amp; Remember</em>. Uprisings are places &amp; times where the downtrodden and oppressed fought back and lashed out against the establishment that disenfranchised and persecuted then.&nbsp;<em>Resist &amp; Remember: Weimar</em>&nbsp;contains the entire game and engine "Resist &amp; Remember" in addition to all the&nbsp;<em>Weimar</em>-specific material, as will any future Uprisings (which I plan on creating only if&nbsp;<em>Weimar</em>&nbsp;is successful). Ideas I'm excited to develop into Uprisings include the 1831 Nat Turner slave rebellion, the 1969 Stonewall Riots in New York, and the 1992 Rodney King riots in L.A., as well as one more visit with the NSDAP focused on the Warsaw Ghetto Uprising. But for now, I'm concerned solely with this first Uprising.&nbsp;</p>
<p><em>Resist &amp; Remember: Weimar</em>--is a roleplaying game built into five narrative Acts. The first four of these Acts cast the PCs as artists, barflies, Communist and Anarchist partisans, filmmakers, performer, socialites, writers, and other assorted trouble makers weathering the sea change in culture and society in Berlin from the last days of Weimar Republic through the rise of Nazi Germany. There, you will rub elbows with German artists, thinkers, creators, and other personalities, whose life trajectories parallel those of your characters: some will make it out alive, others will not be so lucky.&nbsp;&nbsp;<br></p>
<p>Weimar Berlin at the end of the 1920s and beginning of the 1930s was a progressive, liberal cultural hotbed of radical new ideas in art, music, architecture, and writing, as well as a divided political battleground with Anarchist, Monarchist, and National Socialist partisans fighting in the streets (the early 20th Century equivalent of Black Lives Matter clashing with Trump supporters, although nearly every day). The New Woman shook up the societal landscape, with German girls that were more sexually liberated and independent than ever before. At the same time, cabaret performances and theater were racier and more politically controversial than ever, and people of color were the trendiest musical acts at bars and night clubs.&nbsp;</p>
<p>In many ways, the Weimar Republic was much like the modern West. In any case, Weimar Berlin was one huge party, until the party was over. &nbsp;&nbsp;&nbsp;</p>
<p>All of this "Divine Decadence" was viewed by the Nazis as degenerate.</p>
<p><em>Resist &amp; Remember: Weimar&nbsp;</em>explores and educates about the Weimar Republic, the political and societal factors behind the Nazis' rise to power, explains how the machinations of the Weimar Republic's democratic process resulted in Hitler's election to the office of Chancellor of Germany, and faces down the Nazis' consolidation of power and the terrors which followed.</p>
<ul><li>Act I of&nbsp;<em>R&amp;R: Weimar</em>&nbsp;takes place from September, 1930 to November, 1932, the last days of the Weimar Republic in Berlin.&nbsp;</li><li>Act II takes place on the night of the Reichstag Fire, February 27th, 1933.&nbsp;</li><li>Act III covers the&nbsp;<em>Gleichschaltung--</em>known as Nazification in the west--that took place between 1933 and 1935.&nbsp;</li><li>Act IV takes place on&nbsp;<em>Kristallnacht</em>.&nbsp;</li><li>(The setting of Act V is a surprise.)</li></ul>
<p><em>Resist &amp; Remember&nbsp;</em>is designed so that each player in the game group acts as the GM of one act.</p>
<p><strong>Promotional Art by Colton Muheim.</strong><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTAxOTA2LzI1OTc1NzMucG5n/original/S7V4Wu.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTAxOTA2LzI1OTc1NzYucG5n/original/tlI5l6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTAxOTA2LzI1OTc1OTMucG5n/original/rMwfx5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTAxOTA2LzI1OTc1OTUucG5n/original/Q28rxK.png]]
<p>Relax, remix and restore with Resynth, a minimal musical puzzler for PC and Mac. Unravel the rhythms and heal the grooves to set the music free. Find your focus in the space between the sounds, and return colour and harmony to a dark sonic soundscape.</p>
<p>Ask yourself - what does a great puzzle sound like?<span></span><br></p>
<p><img src="https://img.itch.zone/aW1nLzE1NTc0MTMucG5n/original/0%2Fu%2BQQ.png" loading="lazy"></p>
<ul><li>A synesthetic experience: Hear the puzzle, see the beats, feel your way through the soundscape.</li><li>You make the music: Remix cascading loops of analogue synth and thumping bass.</li><li>Play it your way: Take your time or attempt bonus challenges – the choice is yours.</li><li>A library of music: 72 puzzling levels means 72 unique electronic grooves.</li><li>Extend the mix: Extra level packs filled with fresh beats and new puzzles coming soon.</li><li>Perfect sync: Synchronise progress across all of your machines using Steam Cloud saves (only when running the Steam version).</li><li>DIY: Create your own tracks in our puzzle editor!</li></ul>
<p><img src="https://img.itch.zone/aW1nLzE1NTc0MTYucG5n/original/bg%2BgKV.png" loading="lazy"></p>
<p>If you've seen it in the game, you can make it in the editor, then play it instantly! This fully featured tool lets you create your own awesome loops and crafty puzzles.&nbsp;</p>
<iframe src="https://gfycat.com/ifr/VictoriousPopularDeer?controls=0" frameborder="0" scrolling="no" allowfullscreen="" width="444" height="250"><span class=""></span></iframe>
<figure><img src="https://img.itch.zone/aW1nLzE1NTc0MjYucG5n/original/3tJuET.png" style="color: inherit" loading="lazy"><br></figure>
<p>Polyphonic LP creates games that explore the boundaries between music and digital gameplay. Headquartered in beautiful Melbourne, Australia, our projects are designed to create compelling experiences across multiple platforms. Founders Sam Izzo (@BananaboySam) and Andrew Trevillian (@Tres_Villain) met in a previous life while working on award-winning de Blob at Blue Tongue Entertainment.<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/H1vfR_jfxDk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTExMzEvMTU0NTYyMC5wbmc=/original/JFOeoa.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTExMzEvMTU0NTYxNy5wbmc=/original/%2BmT%2Flh.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTExMzEvMTU0NTYxNi5wbmc=/original/QP76OZ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTExMzEvMTU0NTYxOC5wbmc=/original/qBMIkm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTExMzEvMTU0NTYxOS5wbmc=/original/k%2Fndm4.png]]
<p>Does your game have a retro vibe and is set in the future? Then this pack is just what you need to add a great soundtrack to it! With 24 amazing brand new electronic, chiptune and other tracks you have nearly every possible situation covered, from sci-fi metroidvania games, 8 and 16 bit cyberpunk and any other kinds of digital or technology heavy world designs!</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/GRNJIjNLXQE" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1nLzc5Mjk2MjQuanBn/original/%2Ba6j%2BE.jpg]]
<p>Révolution gives us politicians and detectives; mobs and weddings; cults
and catholics; orphans rising to lead armies or command demons; the sounds
of battle in the streets of Paris; the smell of gunpowder and alcohol; the feel
of a knife in your back; asking “What do you do next?”<br></p>
<p>In Révolution you play as a powerful person in Paris during the French
Revolution. You and your fellows are constantly fighting for prime position
within the Parisian political landscape, even as that landscape crumbles
around you. Play to find out if the police betray the crown to their doom, or if the secret cult of an eldritch god manages to infiltrate Robespierre's tyrannical committee.&nbsp;</p>
<h2>What you need</h2>
<p>This is a game for 3 to 5 players. You will need enough paper and writing
utensils for all players, and a single Tarot deck to share amongst the table.
You can purchase a Tarot deck from many game or occultism stores.</p>
<p>Playing RPGs online can be difficult at the best of times. To try and help facilitate online play, you can use the provided&nbsp;<a href="https://docs.google.com/spreadsheets/d/1d5kcQHRuf4soCuJfvb240ItLEbhey_Wzjwj1Tv_6fjM/edit?usp=sharing" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Révolution Character Keeper</a> and premade&nbsp;<a href="https://drive.google.com/file/d/1bu01i7NK2Z2OnEHzLwFpTyQSgAKP5P2t/view?usp=sharing" target="_blank" rel="nofollow noopener" referrerpolicy="origin">PlayingCards.io room</a> to take some of the stress out of facilitating an online game. Instructions on using a character keeper can be found <a href="https://www.gauntlet-rpg.com/blog/introduction-to-online-character-keepers" rel="nofollow noopener" referrerpolicy="origin">here</a>, and instructions on uploading a PCIO&nbsp;room can be found <a href="https://playingcards.io/docs/room-import-export" rel="nofollow noopener" referrerpolicy="origin">here</a>.</p>
<h2>The System</h2>
<p>This game runs on the Belonging Outside Belonging system as designed by Benjamin Rosenbaum (@ben_rosenbaum) and Avery Alder (@lackingceremony). This is a GM-full, token based system where players have to put themselves into bad situations to earn tokens, and then use those tokens to dig themselves back out.&nbsp;</p>
<h2>A Warning
</h2>
<p>This game, like many other games that deal with player vs player conflict,
politics, demonic worship, sex, and backstabbing, may be disturbing or
traumatizing for some people.
</p>
<p>In order to make this game an enjoyable experience for all players,
it is highly suggested that you play with a robust set of safety tools. It is
recommended that you use all or most of the following tools while playing this
game:</p>
<ul><li>Lines and Veils</li><li>The X-Card</li><li>Script Change</li><li>The Open Door Policy</li></ul>
<p>Depending on your play group, other safety tools may be more
appropriate. You can read more about the above safety tools and other
options at <a href="http://goldenlassogames.com/tools" rel="nofollow noopener" referrerpolicy="origin">goldenlassogames.com/tools</a>.&nbsp;</p>
<p><strong>This is a Public Beta test.</strong> As such the game is incomplete in many areas, especially the rules taken from Dream Apart/Dream Askew. Many rules changes can be expected in the coming months. If you would like to contribute to the play test (and get your name in the back of the final book) please send feedback to <a href="mailto:TyphosGames.Info+Revolution@gmail.com" rel="nofollow noopener" referrerpolicy="origin">TyphosGames.Info+Revolution@gmail.com</a>. Purchasing the game will grant you free updates as they come out.</p>

[img width=500 [https://img.itch.zone/aW1nLzMxNDI5NDIucG5n/original/G7Lvhf.png]]
<p>It's 2038, and a late maniacal inventor has left behind a legacy of madness - coordinates to an island full of wealthy robots, a gun that asks questions, and a widow that's hired you to answer them.<br></p>
<p><br>As Izzy Buspec, the newest recruit to Randco, take charge of their patented revolver as you explore the densely packed biomes of Corvynnia, bringing down hordes of docile robots in a money-making adventure. Every time you fire, you'll have to answer one of over 2,000 trivia questions with answers based on numbers, percentages, geography, dates, and more - the further you are from the actual answer, the more of its own ammunition the revolver will discharge. If you run out, it's back to Randco HQ to reload!<br><br>Revolver and Co features 105 story levels across 7 unique worlds and 12 question themes which will test you on a wide range of subjects, tied together with humorous debriefings between Izzy and her maniacal boss before the start of each mission.<br><br>Or if you're looking for more of a challenge, have a go at one of the Endless challenges, which pits you against a barrage of questions until you finally succumb to an empty revolver chamber. You can even unlock more Endless challenges by completing the story levels, including a gruelling hour-long session where the only thing you have to lose is time.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/2Fcwu663j4w" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NzA1NC82MDQ5Mjg4LnBuZw==/original/tq5Hjt.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NzA1NC82MDQ5MjgwLnBuZw==/original/7h94Te.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NzA1NC82MDQ5Mjg0LnBuZw==/original/SGfu9U.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NzA1NC82MDQ5MjgxLnBuZw==/original/A1yIaE.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NzA1NC82MDQ5MjgyLnBuZw==/original/AuADRX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NzA1NC82MDQ5Mjc4LnBuZw==/original/SnZAmj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NzA1NC82MDQ5Mjg1LnBuZw==/original/bVD%2BvU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NzA1NC82MDQ5MjkwLnBuZw==/original/riW1ht.png]]
<h3>English</h3>
<p><em>Rewwixta </em>is a solo story generation TTRPG where you recount tales of revolt, rebellion, and uprising against colonial powers. It is based on brilli, a Maltese folk game. <br></p>
<p>While <em>Rewwixta </em>is inspired by various historical rebellions carried out by the Maltese population, the game is explicitly anti-canon, and we encourage you to tell your own stories of colonial revolt.</p>
<p>12 page document, with 1.5 pages of image and academic references<br></p>
<h3>Malti</h3>
<p><em>Rewwixta</em> hija lgħajba fejn jintqalu stejjer ta' assedji, ribelljonijiet, u rewwixti kontra setgħat kolonjali. M'hemmx bżonn parteċipanti oħra biex tilgħab <em>Rewwixta</em>; tista' tintlagħab minn persuna waħda. Il-lgħajba hija bbażata fuq il-logħba tal-<em>brilli</em>, logħba li hija parti mill-folklor Malti.</p>
<p>Għalkemm <em>Rewwixta</em> hija ispirata minn bosta rewwixti li saru Malta, il-lgħajba hija espliċitament kontra l-idea li għandek timxi mal-istess ideat. Anzi, nħeġġuk tirrakkonta stejjer ta' rewwixta li verament jistgħu jissejħu tiegħek.</p>
<p>Dokument ta' 12-il paġna, b'paġna u nofs ta' referenzi akkademiċi u referenzi għall-istampi li ntużaw<br></p>

[img width=500 [https://img.itch.zone/aW1nLzQwMzg2OTMuanBn/original/iZE%2FKN.jpg]]
<p>Travel across the virtual zone and defend the Core by guiding a pair of starfighters through the shoot 'em up action of Rhythm 'n Bullets. Enemies fly in from all sides, diving towards the core in time with the soundtrack. Time your shots to&nbsp;the beat for maximum effect, and grab&nbsp;awesome&nbsp;power-ups to clear the stage.</p>
<p>Keep the core safe from danger in the multi-level campaign, and then try to top the leaderboards in endless mode, where the enemies never stop!</p>
<p>This game features three campaign levels across three varying themes (Tech City, Japanese Garden, and the Galaxy Zone), as well as an endless mode. We will be updating in the future with more themes.&nbsp;</p>
<p>Join our Discord to work this us to improve the game and get early access to our future projects:&nbsp;<a href="https://discord.gg/UzrFjFa" rel="nofollow noopener" referrerpolicy="origin">https://discord.gg/UzrFjFa</a></p>
<p>Download the demo on <a href="https://sidequestvr.com/app/1601" rel="nofollow noopener" referrerpolicy="origin">SideQuest</a></p>
<p>On <a href="https://store.steampowered.com/app/1427770/Rhythm_n_Bullets/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Steam</a></p>
<p>On <a href="https://www.viveport.com/933d6b5a-7a4e-470b-8f1c-3fa0f24e33fe" rel="nofollow noopener" referrerpolicy="origin">VIVEPORT</a></p>
<p>Supported Languages: English,&nbsp;日本語, 汉语, 漢語, 한국어</p>
<h4>Post-Launch Content</h4>
<ul><li>Theme 4 and Theme 5</li><li>"Zen" mode</li><li>Additional platform support</li></ul>
<p>Found an issue or have feedback for us, let us know here:&nbsp;<a href="https://forms.gle/erazxXotHpCQuBgw6" rel="nofollow noopener" referrerpolicy="origin">https://forms.gle/erazxXotHpCQuBgw6</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/p1xGN-1CTxc" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzg2MjM5LzQ1NTMyMDUucG5n/original/mF3qxj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzg2MjM5LzQ1NTMyMTIucG5n/original/6RcLmV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzg2MjM5LzQ1NTMyMDYucG5n/original/u74jdx.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzg2MjM5LzQ1NTMyMDQucG5n/original/FrJ53N.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzg2MjM5LzQ1NTMyMTEucG5n/original/cGLQVG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzg2MjM5LzQ1NTMyMDMucG5n/original/pWSiBS.png]]
<p><em>Monsters from the moon are wrecking havoc downtown. Your rival's face is on the billboards selling toys. You're running out of estrogen. Your parents think you should quit and inherit the store. Your friend wants you to do vandalism. You didn't even have breakfast yet and you have fifteen minutes till class.</em></p>
<p>Ribbons is a setting guide for Masks: A New Generation that imagines a whole new city that stars magical girls instead of super heroes: Serendipity. The city has a long history filled with both grim and hopeful times for magical girls. It has developed a culture around magical girls over the decades and now it has entire fandoms, marketing, and schools dedicated to them. Play as magical kids and explore the dangerous, crazy, and fun lives they lead.</p>
<p></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTc1NDc5LzU1NDQyNzkuanBn/original/D3A%2F2Y.jpg]]
<p>Rip Them Off is a minimalistic new puzzle game of economic management and tower defense. The Board needs its profit, and it’s up to you to line the streets with shops the masses can’t resist. Choose your locations, pick your stores and earn enough to advance up the corporate ladder with its increasingly difficult challenges!</p>
<p><img src="https://img.itch.zone/aW1nLzQ3MTQ1MzQucG5n/original/1FiRS0.png" loading="lazy"><br></p>
<p>Welcome [New Hire Name Here]. We’re proud¹ to have you as the newest member² of our [Product Name Here] sales team. Here at [Subsidiary Company Name Here] we’re passionately committed to [Vague Passionate Commitment Here] and we know you are too³.</p>
<p>Here at [Company Name] we’re all about giving the people what they want, and what they want is [Product Name] (the ad boys have seen to that!⁴).</p>
<p>As a valuable member of our [Company] family⁵ this is where you come in.</p>
<p><em>¹ Any assertion of pride is purely performative and does not reflect the Board’s opinion of individual employees<br></em><em>² Unless otherwise stated new employees shall be referred to as “Office Drone”<br></em><em>³ Please see Standard Employee Contract section 11b Subsection 12: “Your New Personal Opinions”<br></em><em>⁴ Any suggestion of consumer manipulation by [Company Name] advertising practices is purely hypothetical<br></em><em>⁵ [Company Name] is a registered corporation and not a familial unit. Please see Employee Contract section 154a, “Knowing Your {Lack Of} Rights”</em></p>
<p><strong><img src="https://img.itch.zone/aW1nLzQ3MTUwMDMuZ2lm/original/%2FDhOep.gif" style="max-width: 100%; font-size: 14px; background-color: rgb(255, 255, 255)" loading="lazy"><br></strong></p>
<p><strong>Choose</strong></p>
<p>Maximizing profit and satisfying the board will require planning. In each city, utilise suspiciously* empty locations and create an inescapable maze of retail opportunities the masses simply won’t be able to refuse!<br><em>*not suspicious at all</em></p>
<p><strong>Spend</strong></p>
<p>Those stores aren’t gonna build themselves*! Make sure to prioritise your earning potential by managing your budget: buy the right stores in the right locations at the right price.<br><em>*Self-building stores coming in [Unobtainable Release Date Here]!</em></p>
<p><strong>Earn</strong></p>
<p>Once you build it, they will come. And keep coming! But it’ll take more than one location to satisfy the Board’s exponential profiteering*. Combine locations and store types to really take them for all they’re worth and open up exciting new opportunities around the world!<br><em>*Year on year growth is currently set at a more-than-reasonable 3015%</em></p>
<p><img src="https://img.itch.zone/aW1nLzQ3MTQ1MzYucG5n/original/gktdZ2.png" loading="lazy"><br></p>
<ul><li>An innovative new type of game: Combining puzzle mechanics with tower defense games, Rip Them Off is a new breed of challenge, easy to pick up but hard to master.</li><li>Gorgeous design: Evoke your inner Mad Man with 1950s inspired music and graphics.</li><li>Addictive gameplay: Each new city provides an increasingly devilish challenge. Can you make it all the way to the biggest metropoles?</li><li>Challenge your friends: Who’s the best rip off merchant? Compete against your friends and/or rivals with the leaderboard feature to find out who comes out on top.</li><li>Map of the Moment: Hone your capitalistic edge post-launch with Map of the Moment, showcasing revamped versions of your favourite maps with fun modifiers to keep you on your toes.</li><li>Go fast or slow: Control the flow of time to make sure your strategies unfold with perfection.</li></ul>
<p>Choose your location, choose your stores, give the people what they want. And of course, don’t forget to…</p>
<p>Rip them off!</p>
<p><br></p>
<p><strong>--- Awards and recognition ---</strong></p>
<ul><li>"TIGA Games Industry Awards 2021" Finalist for best simulation game</li><li>"TIGA Games Industry Awards 2020" Finalist for best puzzle game &amp; best strategy game</li><li>"GDC Summer 2020" Artwork selected at GDC Artists gallery</li><li>“Pocket Gamer Awards 2021” Finalist for the most innovative game</li></ul>
<p><span></span></p>
<p><strong>--- Press Quotes ---</strong></p>
<ul><li>"<em>With a gorgeous visual aesthetic, a jazzy soundtrack, and smart puzzle-play, it's hard to find too much fault with Rip Them Off</em>" - Pocket Tactics</li><li>"<em>With a minimalist 1960s art style, a capitalist-sceptic theme, and jazzy soundtrack it’s got style</em>" - Metro.co.uk</li><li>"<em>The challenge is infuriating, fun, and I recommend buying it</em>" - Movies Games and Tech</li><li>"<em>Rip Them Off features a beautiful, minimalistic aesthetic</em>” - The Gamer</li><li>"<em>Rip Them Off certainly has the potential to become increasingly more complex. Coupled with the lovely 1950s aesthetic it's definitely a game worth keeping an eye on</em>.” - Pocket Gamer</li></ul>
<p><strong>Purchase includes a Steam key!</strong></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/QN8hNLO--So" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzI4NDU3LzQ4ODQ3MTkucG5n/original/JIB%2Bch.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzI4NDU3LzQ4ODQ3MjEucG5n/original/%2FuwvTD.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzI4NDU3LzQ4ODQ3MjAucG5n/original/fxA%2BIQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzI4NDU3LzQ4ODQ3MjQucG5n/original/paXTs0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzI4NDU3LzQ4ODQ3MjYucG5n/original/YradlL.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzI4NDU3LzQ4ODQ3MTgucG5n/original/oYbHHZ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzI4NDU3LzQ4ODQ3NTEucG5n/original/evTNnz.png]]
<h4>REVIEWS</h4>
<p>“For three bucks on Steam it’s a no-brainer if you’re looking for a good way to kill time before bed or, if you’re a true sneaky mastermind, at work while you should be writing memos and whatnot.” – <strong>Game Space</strong></p>
<p>“Nearly everything about this game is an absolute delight...” –&nbsp;<strong>Steam Shovelers</strong></p>
<p>“The game, needless to say, is very funny. With multiple locations, blocky visuals and a jaunty soundtrack, Ripped Pants at Work is a delightful blast of stealth-based fun.” –&nbsp;<strong>Red Bull Games</strong><br></p>
<h3><img src="https://img.itch.zone/aW1nLzkxMDg0My5wbmc=/original/8EXDnz.png" loading="lazy"></h3>
<p><strong>Ripped Pants at Work</strong> is a&nbsp;frantic stealth game about searching for new pants. Players control an ordinary office worker on their first day of work. After an unfortunate incident involving a pencil on the floor and pants that were way too tight, the player must venture out of the office and into the city on a hunt for new pants.</p>
<p>Explore a small, open city filled with different pairs of pants! Players can challenge themselves to find the most pants in the shortest amount of time. Some pants are easy to find. Some are a bit trickier!&nbsp;</p>
<p><br></p>
<figure><img src="https://img.itch.zone/aW1nLzkxMDg0Ny5naWY=/original/qJkqyI.gif" loading="lazy"></figure>
<p>This happens to everybody! Ripping your pants is one of those things that everyone can sympathize with, but it's still so embarrassing. Every time you play, you'll control a new, randomly generated character!</p>
<p>If you find pants successfully, you'll continue as the same person. If you get caught with no pants, you'll be fired and play as the next person hired for the job!</p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzkxMTYwOS5naWY=/original/WMQC%2F%2F.gif" loading="lazy"></p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzkxMDg0Ni5wbmc=/original/rWrzCo.png" loading="lazy"></p>
<ul>
	<li><p>Sneak
	through a small, open-world, city, full of unique locations and
	people.</p>
	</li><li><p>Break
	line of sight, hide behind people and in bushes, and run across
	streets and through buildings with a unique brand of frantic stealth.</p>
	</li><li><p>Play
	the game as a different, randomly generated character every time. If
	you get caught pantsless by too many people, you'll get fired for
	indecency. The cycle continues with the next person to get hired for
	your job.</p>
	</li><li><p>Best
	your personal record and see how many pairs of pants you can get in
	the shortest amount of time!</p>
</li></ul>
<h3></h3>

<iframe width="720" height="450" src="https://www.youtube.com/embed/vIGbtr5U2Go" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTc0MTA0Lzg5MDg2MS5wbmc=/original/FYdA0%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc0MTA0Lzg5MDg1OC5wbmc=/original/0rmRIX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc0MTA0Lzg5MDg2Ni5wbmc=/original/c2Xkng.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc0MTA0Lzg5MDg1OS5wbmc=/original/yxuvd6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc0MTA0Lzg5MDg2OC5wbmc=/original/fDAve6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc0MTA0Lzg5MDg2NC5wbmc=/original/HF1Z9N.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc0MTA0Lzg5MDg2MC5wbmc=/original/ghuNer.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc0MTA0Lzg5MDg2Mi5wbmc=/original/NIxuiW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc0MTA0Lzg5MDg2OS5wbmc=/original/2RXixU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc0MTA0Lzg5MDg2NS5wbmc=/original/Y5bnD3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc0MTA0Lzg5MDg2My5wbmc=/original/6ToKCM.png]]
<h1>Ripple</h1>
<p>The game requires you to escape from the facility using only your ears and impaired vision. Your lack of vision allows you to use a form of echolocation to see the world around you. Distract the robots tracking you using objects and attempt to escape.</p>
<h2>Features</h2>
<ul><li>Full controller support for Xbox 360 and PS4 (Using DS4Windows).</li><li>Five levels to explore and escape from.</li><li>Additional difficulty option. Can you truly conquer the darkness?</li><li>Progression system that saves your progress.</li></ul>
<h2>Feedback</h2>
<p>I hope that you enjoy playing through the game and look forward to hearing any feedback you have!&nbsp;</p><p><strong>I would love to update this game further with more polish if people would like :)</strong><br></p>
<p>Leave a comment below or send an&nbsp;email to protonfox@outlook.com.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/zupWWSsYQwc" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjI1MjA5LzMzOTM3NjYucG5n/original/Hct7aP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjI1MjA5LzMzOTM3NzAucG5n/original/1Ujr8A.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjI1MjA5LzMzOTM3NjcucG5n/original/aEwK9L.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjI1MjA5LzMzOTM3NjgucG5n/original/25MenA.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjI1MjA5LzMzOTM3NjkucG5n/original/ZjMDrv.png]]
<p><img src="https://img.itch.zone/aW1nLzM5ODc5NzYucG5n/original/GWRugP.png" loading="lazy"></p>
<p><strong>RISE: A Game of Spreading Evil</strong> is the evil sister of <a href="https://blackwellwriter.itch.io/delve-a-solo-map-drawing-game"></a><a href="https://blackwellwriter.itch.io/delve-a-solo-map-drawing-game">DELVE: A Solo Map Drawing Game</a>.<br></p>
<p><strong>RISE: A Game of Spreading Evil </strong>is a map drawing game that puts you in control of a monstrous dungeon as you seek to reach the surface and take over their puny kingdoms. As long as you can keep your mutinous minions under control that is.<br></p>
<p>This 41 page zine has everything you need to generate natural formations, forgotten ruins, enemies, magics, artefacts, and heroes. It has a simple turn-based combat system, rules for building your dungeon and optional challenges for a harder experience.
</p>
<p>Inspired by games like <em>Dwarf Fortress</em> and <em>Dungeon Keeper</em><em>,</em> <strong>RISE</strong> aims to capture that feeling of building and ruling a dungeon, dealing with mutinous minions, and proving that you are the One True Evil.<br></p>
<p>All you need to play is, a pencil, paper (preferably 1" grid), and a deck of playing cards. <br><em><br></em><img src="https://img.itch.zone/aW1nLzM5OTk3NDcucG5n/original/%2B29XAb.png" loading="lazy"><em></em></p>
<p><em>Having awoken a thousand years after an embarassing defeat, you must build your dungeon from scratch, whip these mewling minions into line, and take the surface once and for all!</em></p>
<p>Each round your minions will mine another square of the grid, you draw a card from your deck of playing cards and see what they found. Hearts ♥ and Diamonds ♦ are resources and trade goods that you'll use for building and hiring units while Clubs ♣ and Spades ♠ are natural formations and forgotten ruins. From dwarven outposts to mysterious portals, these subterranean locales will become part of your dungeon's unique layout and may provide unexpected benefits. Or you might just unleash a horde of pixies in which case, you'll need to fight.</p>
<p>Combat in <strong>RISE </strong>is designed to allow for forward planning and strategic thinking without weighing you down with book-keeping. Enemies follow a tower-defense style path towards your Dungeon Heart while you move your units in simple turn-based tactical combat. Utilise traps, ranged attacks, and special units to face deadly foes or chronicle the collapse of your dungeon for use in a story or RPG.</p>
<p><strong>RISE </strong>will also be supported with ongoing updates and expansions which bring new features such as hunger and farming, competitive dungeons, surface domination, and more. Or you can check out <strong><a href="https://blackwellwriter.itch.io/delve-a-solo-map-drawing-game">DELVE</a> </strong>(a dwarf stronghold variant that started this whole venture) or <strong><a href="https://blackwellwriter.itch.io/umbra-a-solo-game-of-final-frontiers">UMBRA</a></strong> (a sci-fi variant which challenges you with colonising strange alien planets).</p>
<p><strong>Join the Discord - <a href="https://discord.gg/wr9x25s" rel="nofollow noopener" referrerpolicy="origin">https://discord.gg/wr9x25s<br></a></strong></p>
<p><strong>Physical Copies can be ordered from <a href="https://www.blackwellwriter.com/" rel="nofollow noopener" referrerpolicy="origin">https://www.blackwellwriter.com/</a></strong></p>
<h1><strong>Expansions<br></strong></h1>
<p><strong>RISE: Demons -- <a href="https://blackwellwriter.itch.io/rise-demons">https://blackwellwriter.itch.io/rise-demons</a></strong><br></p>

[img width=500 [https://img.itch.zone/aW1nLzQxODk0MTAucG5n/original/iF6CYX.png]]
<p><strong>Concept</strong></p>
<p>In Rising Tide, you are a member of a crew fighting for ecojustive. You live your life aboard a ship, in a near-future Earth where the oceans have risen, destroying many coastal areas. Corporations and corrupt governments continue abusing the ecosystem, too dependent on the resources or too inept to break old habits.</p>
<p><strong>Aim</strong></p>
<p>In the story, your crew’s aim is to perform missions to take down the people and organizations continuing to exploit the Earth’s ecosystem. As you complete missions, you live up to ideologies, retiring when you’ve completed one ideology.</p>
<p><strong>Tone</strong></p>
<p>The stories are meant to be intense, violent, and gritty. The crew is working outside the law and establishment to render justice. They will witness real harm being done to the environment, to animals, and to disenfranchised people.</p>
<p><strong>Subject Matter</strong></p>
<p>Rising Tide deals with environmental disasters, injustice, and violence. There may be tension between the crew as they debate the ethical, moral, and appropriate actions to take.</p>
<p>------------<br>Rising Tide uses the Paragon System © 2021 by John Harper and Sean Nittner.<br>To play this game you must have a copy of Agon. <a href="http://agon-rpg.com/" rel="nofollow noopener" referrerpolicy="origin"><span class="">AGON-RPG.com</span></a><span></span></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/c8WgEbJcOpg" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTE2NTI4LzY2NjQ5NDYuanBn/original/yVNT%2BB.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE2NTI4LzY1MDM4NjUucG5n/original/XJ7mG6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE2NTI4LzY2NjQ5NDcuanBn/original/4s5aRy.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE2NTI4LzY2NjQ5NDguanBn/original/ErELif.jpg]]
<p>RITE is a high-speed, precision platformer where you must conquer a series of demanding trials, a rite of passage for every Nim.&nbsp;Find the key and reach the exit to move on to the next trial, and maybe collect some gold along the way. Who knows, they could prove valuable to those who like a brutal challenge..<br><br>For fans of platformers old and new, RITE features 160 carefully crafted levels, fluid and responsive controls, lush pixel art, and an original soundtrack by Grand Prize Big Fuzz.<br></p>
<p>Available 07.07.2020 for Windows</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/MRdIAX08OR4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjU4MzI3LzM1NDA0MTUucG5n/original/xW2mHH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjU4MzI3LzM1NDA0MTcucG5n/original/cW4YHs.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjU4MzI3LzM1NDA0MTYucG5n/original/1yDxw5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjU4MzI3LzM1NDA0MTgucG5n/original/gexgHA.png]]
<p>Rivals is a two-player competitive story telling game using the classic Rock Paper Scissors, to drive the narratives.</p>
<p>Players roleplay as two best friends from a small secluded village, both of whom are determined to become a local legend. They will go on quests, qualm local fears, and compete against each other in competitions, to prove to the locals that one of them is a true hero.</p>
<p>This game is about using your imagination, and humor, to create funny, and interesting stories together, as you compete, and sometimes interrupt, each other to become a legend.</p>
<p>Included in this purchase are 12 full color pages, and a sheet of tokens to be printed and cut out.</p>
<p>Join our discord and ask for help with any confusion, or questions!&nbsp;<a href="https://discord.gg/5guPbwTX2A" rel="nofollow noopener" referrerpolicy="origin">https://discord.gg/5guPbwTX2A</a></p>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1nLzc1NTI2NDUucG5n/original/yo4uFm.png]]
<p class="text-justify"><em>After consulting ancient codes in search of the Dreamlands, one night you went to sleep and started dreaming.&nbsp;<br></em><em>It was not a dream like the others, it was vivid and real, so much so that you could not distinguish it from the wake. <br>Time seems to pass more slowly in the Dreamlands and any attempt you made to wake up has been in vain.
In this world, everyone addresses you by another name and claims that you have always been someone else. The memories of this identity of yours are vague and superimposed on your memories of the Waking World. <br>Having failed to find the way to awake, you started living your life here.
The Dream is sometimes full of wonders, other times of unmentionable horrors and now you have to face this life beyond imagination. Now you are a <strong>Roamer of the Dream</strong></em><em>. Will you ever find a way to wake up?</em></p>
<p class="text-justify"><em></em><em>Roamers of the Dream</em> is an&nbsp;old school inspired adventure game in which you play the role of a dream wanderer. <br>The game system is simple to learn.&nbsp;&nbsp;You will find everything you need to create and play a character.
<br>Players will take on the role of <em>Roamers </em>who will have to live, survive and find a way to wake up before losing their lucidity for good.</p>
<p>Created for the&nbsp;<a href="https://twitter.com/hashtag/DreamingJam" rel="nofollow noopener" referrerpolicy="origin">#DreamingJam</a></p>
<p>Free text-only web version available <a href="https://zeruhur.space/roamers-of-the-dream/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">here</a>.</p>
<p><em></em><strong><em>Please note</em></strong>: this games is not play tested yet albeit I consider it fully playable. Purchasing it you support my work&nbsp;and improved future releases.<br>Your feedback is very important: if you feel to share your insights and criticism about this game, please consider to leave a comment below!</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODk0Mzg5LzUwNTA3ODYuanBn/original/6Zshod.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODk0Mzg5LzUwNTA3ODkuanBn/original/cTg9PX.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODk0Mzg5LzUwNTA3ODguanBn/original/Wv%2B9ps.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODk0Mzg5LzUwNTA3ODcuanBn/original/Wevmco.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODk0Mzg5LzUwNTA3OTAuanBn/original/G3FUwK.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODk0Mzg5LzUwNTA3OTEuanBn/original/6p35xD.jpg]]
<h2 class="text-center"><em></em><strong></strong>"It's the Rodent Records Guitar Band Battle!</h2>
<p class="text-center"><strong>You're going to give the greatest show the world has ever seen<br> and win absolutely epically.&nbsp;</strong></p>
<p class="text-center"><strong>Two things:&nbsp;<br>1. You have a plan for a complex show that requires precise timing and excellent teamwork.&nbsp;2. You are goddamn rodents."</strong></p>
<p class="text-center">~~~</p>
<p>"Rodents with Guitars" is a&nbsp;role-playing game for 2-5 players and 1 GM. It's no-prep/low-prep and perfect for one-shots.</p>
<p>It uses 1-2 six-sided dice (D6) to play. To pick from a bunch of lists during setup, you also&nbsp; need&nbsp;D8 and D12 (or you can&nbsp;just choose items without rolling).</p>
<p>"Rodents with Guitars" is&nbsp;a&nbsp;hack of Grant Howitt's <a href="https://gshowitt.itch.io/honey-heist" target="_blank" style="font-size: inherit">Honey Heist</a>.<br></p>
<p class="text-center">~~~</p>
<h2 class="text-center">What do I get?</h2>
<p>The game has four A5 pages. You get one PDF with single pages and one PDF with&nbsp;spreads that can be printed double-sided onto A4 paper&nbsp;and folded into a mini zine. So, technically, it's still a one-page game. With a lot of rodent puns.</p>
<p>And because you can obviously never have enough rodents with guitars, you also&nbsp;get a PDF with a postcard-sized (A6) image of a rocking rat with a blank space to draw your own awesome guitar!</p>
<p>To make the game more accessible, there's also an HTML version&nbsp;of the entire game (minus the postcard) that you can download and open in a browser of your choice (instructions are included in the ZIP).<br></p>
<p>You get all of this in English as well as in German.</p>
<p><em>Please note that the spreads PDF is formatted in DIN A4. You may need to&nbsp;adjust&nbsp;your printer settings ("scale to fit")&nbsp;</em><em>if you use a different paper format.</em><br></p>
<p class="text-center">~~~~~~~<br></p>
<h2 class="text-center">"Es ist der Rodent Records Guitar Band Battle!</h2>
<p class="text-center"><strong>Ihr werdet das tollste Konzert abliefern, das die Welt je gesehen hat, und absolut episch gewinnen.</strong></p>
<p class="text-center"><strong>Zwei Dinge:</strong><strong></strong><strong><br></strong></p>
<p class="text-center"><strong>1. Ihr habt einen Plan für eine komplexe Show, die präzises Timing und exzellentes Teamwork erfordert. 2. Ihr seid verdammte Nagetiere."</strong></p>
<p class="text-center"><strong>~~~
    </strong></p>
<p>"Nagetiere mit Gitarren" ist ein Rollenspiel für 2-6 Spielende und 1 Spielleitung. Es braucht wenig bis keine Vorbereitung und ist perfekt für Oneshots.
    </p>
<p>Zum Spielen braucht ihr 1-2 sechsseitige Würfel (W6). Für die Auswahllisten zu Spielbeginn braucht ihr außerdem W8 und W12 (oder ihr sucht einfach Dinge ohne zu würfeln aus).</p>
<p>"Nagetiere mit Gitarren" ist ein Hack von Grant Howitts <a href="https://gshowitt.itch.io/honey-heist" target="_blank">Honey Heist</a>.</p>
<p class="text-center">~~~
    </p>
<h2 class="text-center">Was bekomme ich?</h2>
<p>Das Spiel hat vier A5-Seiten. Du bekommst ein PDF mit einzelnen Seiten und ein PDF mit Doppelseiten, die du beidseitig auf A4-Papier ausdrucken und in ein Mini-Zine falten kannst. Technisch gesprochen ist es also immer noch ein einseitiges Spiel. Mit sehr vielen Nagetier-Wortwitzen.<br></p>
<p>Und weil man offensichtlich nie genug Nagetiere mit Gitarren haben kann, bekommst du außerdem ein PDF mit einem postkartengroßen (A6) Bild von einer rockenden Ratte mit Platz, um deine eigene coole Gitarre zu zeichnen!<br></p>
<p>Um das Spiel barrierefreier zu machen, gibt es weiterhin eine HTML-Version des gesamten Spiels (ausgenommen die Postkarte), die du herunterladen und in einem Browser deiner Wahl öffnen kannst (eine Anleitung dafür ist im ZIP enthalten).<br></p>
<p>All dies bekommst du sowohl auf Deutsch als auch auf Englisch.</p>
<p><em>Beachte bitte, dass das Doppelseiten-PDF auf DIN A4 formatiert ist. Eventuell musst du deine Druckereinstellungen anpassen ("auf Seite anpassen"), wenn du ein anderes Papierformat benutzt.</em></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE1NjI5MC82NzIwMDEzLmpwZw==/original/imhOBh.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1NjI5MC82NzIwMDE0LmpwZw==/original/SBTWKi.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1NjI5MC82NzIwMDE1LmpwZw==/original/Cwh22s.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1NjI5MC82NzIwMDE2LmpwZw==/original/AUeWq2.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1NjI5MC82NzIwMDEyLmpwZw==/original/2GpVLh.jpg]]
<p>RogueCraft Squadron is a fast paced real-time strategy space adventure with roguelike elements. Play as a squadron commander fighting against a hostile alien race; collecting resources, researching new ships, and building an armada as you fight to survive against overwhelming odds. &nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>Features</p>
<ul><li>Fast paced space-faring RTS. </li><li>Roguelike gameplay. Death marks the end of your mission.</li><li>Fully featured and customizable Skirmish mode. Includes Co-Op and PvP game types using online multiplayer.</li><li>Build a wide variety of fleets with over 15 different ships to unlock.</li><li>Deep strategy elements. Carefully manage your fleet and resources to defeat your enemies.</li><li>Dynamic musical score that changes as you play.</li></ul>
<ul><em>Scroll down to try the demo! Try the multiplayer fun with your friends!</em><br><br></ul>
<p>Adapted from the LoveJam 2017 version of RogueCraft Squadron. You can check out the early prototype <a href="http://missingsentinelsoftware.com/game/roguecraft-squadron" target="_blank" rel="nofollow noopener" referrerpolicy="origin">here</a>.</p>
<p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/-IlYHr2tgs8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIxNDcyLzE4NTU3NjkucG5n/original/6eqeVE.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxNDcyLzE4NTU3NzAucG5n/original/74ukEC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxNDcyLzE4NTU3NzMucG5n/original/rgtTnk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxNDcyLzE4NTU3NzQucG5n/original/qNzY%2FC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxNDcyLzE4NTU3NzYucG5n/original/DIvRR6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxNDcyLzE4NTU3NzIucG5n/original/%2BP8PCE.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxNDcyLzE4NTU3NzEucG5n/original/D0PZBS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxNDcyLzE4NTU3NzUucG5n/original/bwA7ES.png]]
<p><em>A roguelike puzzle adventure.</em></p>
<p>We like 2048 and we love dungeon crawlers. So, just for the fun of it, we mashed the two together. RogueSlide is what happened.</p>
<p>Position is everything.&nbsp;Gameplay is casual, yet each decision is strategic.&nbsp;Each move presents a new puzzle as you slide tiles around the board, slaying monsters, drinking potions, and casting spells.</p>
<p>Survive 3 worlds of unique enemies and obstacles with 5 unlockable characters.&nbsp;Or try your hand at the Daily Dungeon or Arena modes.</p>
<p><strong>Coming 2/22/2022</strong><br></p>
<p><a href="https://discord.gg/2C4HKr4JgT" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Join the Discord →</a><span></span></p>
<p><a href="https://rogueslide.com" rel="nofollow noopener" referrerpolicy="origin">RogueSlide Website →</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/W3fAz5Ingnk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODY4ODYyLzgxODY2MTkucG5n/original/0khmT3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODY4ODYyLzgxODY2MTcucG5n/original/Hche%2Ft.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODY4ODYyLzgxODY2MTgucG5n/original/3wUkNu.png]]
<p><strong>It’s Monday TTRPG Night at Screen Time arcade!</strong></p>
<p>Everyone in the town of Fernweh knows and adores Sophia, the sweet co-owner of Screen Time arcade. Well, almost everyone. Sophia is tired of avoiding confrontation and keeping herself small. She wants to be a strong woman, but WHAT DOES THAT EVEN MEAN? 
</p>
<p><strong>You decide.</strong>
</p>
<p>Playtime: A "one-shot" length of&nbsp;60 minutes.
</p>
<figure><blockquote>“Not only does Roll For Confidence thoughtfully portray a trans woman, it also takes a great look at TTRPGs ‘going wrong.’&nbsp;”&nbsp;&nbsp;— Beatrix Livesey-Stephens (Artificial Womb)</blockquote></figure>
<p><strong><img src="https://img.itch.zone/aW1nLzc3NzU3OTkucG5n/original/8iW0eO.png" loading="lazy"><br></strong></p>
<p><strong>TTRPG and the Power of Games</strong><br>Many people have used video games and TTRPG characters to experiment with different aspects of their self-expression. Roll for Confidence highlights how useful of a tool games can be, especially for the trans community. Sophia rolls various different characters and chats with her friends about their characters and what it feels like to be a trans woman, as she tries to figure out what feels best for her IRL.  
</p>
<p><img src="https://img.itch.zone/aW1nLzc3NzU3OTgucG5n/original/Q%2F4%2BKD.png" loading="lazy"><br></p>
<p><strong>Cultural Awareness</strong><br>Roll for Confidence takes place in a fictional Northeast coastal town in the United States called Fernweh (pronounced Fern - Vee), with a strong LGBTQIA+ and diverse community. Toadhouse Games has reached out to the communities we aim to represent to ensure we do so in an accurate and respectful manner. We also hire cultural consultants and sensitivity readers.</p>
<p><em>CMC vignettes are unique snack sized games. They feature characters and locations from Call Me Cera.&nbsp;</em><em>A portion of all&nbsp;Toadhouse Games sales goes to charities that benefit the marginalized groups our characters represent.&nbsp;&nbsp;</em></p>
<p><img src="https://img.itch.zone/aW1nLzc3NzU3OTkucG5n/original/8iW0eO.png" loading="lazy"></p>
<p><strong>Call Me Cera:&nbsp;A crunchy wholesome game about making friends as an adult.&nbsp;
<br></strong>Wishlist here:&nbsp;<a href="https://store.steampowered.com/app/1523870/Call_Me_Cera/" rel="nofollow noopener" referrerpolicy="origin">https://store.steampowered.com/app/1523870/Call_Me_Cera/</a>&nbsp;
</p>
<p>Join Team Toadhouse:&nbsp;<a href="https://discord.gg/Q5mK58hMSt" rel="nofollow noopener" referrerpolicy="origin">https://discord.gg/Q5mK58hMSt</a>&nbsp;
</p>
<p>Play the CMC vignettes here:&nbsp;<a href="https://teamtoadhouse.itch.io/">https://teamtoadhouse.itch.io/</a>&nbsp;
</p>
<p>Follow Toadhouse Games:&nbsp;<a href="https://twitter.com/Toadhouse_Games" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/Toadhouse_Games</a>&nbsp;<br>Follow Call Me Cera:&nbsp;<a href="https://twitter.com/CallMeCera" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/CallMeCera</a>
<br>Follow Team Toadhouse:&nbsp;<a href="https://twitter.com/Toadhouse_Games" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/TeamToadhouse</a></p>
<p><strong>Thirsty Sword Lesbians is a real game you can play!&nbsp;<br></strong>Find it&nbsp;here:&nbsp;<a href="https://www.evilhat.com/home/thirsty-sword-lesbians/" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin"></a><a href="https://evilhat.itch.io/thirsty-sword-lesbians">https://evilhat.itch.io/thirsty-sword-lesbians</a>&nbsp;Toads Support Toads!&nbsp;</p>
<p><img src="https://img.itch.zone/aW1nLzc3NzU4MDcucG5n/original/yshdgK.png" loading="lazy"><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NjI3MC83Nzc2MTQzLnBuZw==/original/Y1tKkX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NjI3MC82NzcyODQyLnBuZw==/original/ac%2FFaF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NjI3MC83Nzc2MTQ0LnBuZw==/original/s8FvsW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NjI3MC83Nzc2MTQxLnBuZw==/original/dVnr3X.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NjI3MC83Nzc2MTY3LnBuZw==/original/TerTZ6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NjI3MC82NzcyODE5LnBuZw==/original/79WlN3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NjI3MC83Nzc2MTY5LnBuZw==/original/PQe64E.png]]
<p>Roly-Polo it's a fast and fun sport videogame for up to four players.<br></p>
<p>
</p>
<p>It's available for Windows, Linux, Ouya and Android, it has support for gamepads, keyboard, and touchscreen, you can download the <a href="https://lapieza.itch.io/roly-polo#demo">FREE DEMO</a> and try it out.<br><br>In the game you control a PillBugBear (or a pair of them if you chose Twins-Mode), to win you have to score 15 points by throwing the purple ball thought the ring goals.<br></p>
<p>The controllers have an auto throw to goal aid that you can turn On and Off on the options menu, also options for twin-mode, and the number of A.I. players that you want to play with.</p>
<p>It's <strong>local-multiplayer</strong> against friends or CPU controlled players, &nbsp;and doesn't have any online mode but it can be played online using streaming software like PARSEC (<a href="https://parsecgaming.com/" rel="nofollow noopener" referrerpolicy="origin">https://parsecgaming.com/</a>) or Remote Play Detached (<a href="https://github.com/smaTc/RemotePlayDetached" rel="nofollow noopener" referrerpolicy="origin">https://github.com/smaTc/RemotePlayDetached</a>).<br><br>By the time of release it comes with 8 hand-made stages that are selected one after the other in semi-random order for non-stop fun, and more will be added in the near future.<br></p>
<p></p>
<p></p>
<p>I made a Discord to help people find people to play online using the streaming software or talk about the game: <a href="https://discord.gg/tVUHz8NQ" rel="nofollow noopener" referrerpolicy="origin">https://discord.gg/tVUHz8NQ</a><br></p>
<p></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzcxOTQ4LzQ0MjI3ODgucG5n/original/rYfIdk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzcxOTQ4LzQ0MjI3OTAucG5n/original/CN9FZC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzcxOTQ4LzQ0MjI3OTEucG5n/original/QN2lxu.png]]
<h2>Explore the roots of a classique...</h2>
<p><em>ROOM EXPLORER 2010: <strong>DELUXE </strong>LOVER'S PAQUE </em>is a <strong>DELUXE </strong>paque for lovers that features many <strong>DELUXE </strong>goodies for fans of the 2021 PC game ROOM EXPLORER 2010. I have constructed it as somewhat of a "deconstructed art-book". a beautiful <strong>DELUXE</strong> trek through the creation of my first real videogame for the computer.</p>
<h3>DELUXE Contents:</h3>
<ul><li>A very lightly retouched windows build of RXP2010, based off the previously WET GAMIN exclusive HTML5&nbsp;build.</li><li>The full RXP2010 source code For Gamemaker Studio 2. In all its&nbsp; un-commented beauty.</li><li>All original image and sound assets from the game. Sorted into folders for your convenience.</li><li>A variety of TXT files that describe the history or otherwise give commentary on most of the aforementioned assets. Also for your convenience.</li><li>A larger variety of screenshots that were taken during the game's development. Many oddities to be seen. Not all of them directly depicting the game's development, but most of them likely affecting it or being an effect of it in some way.</li><li>The original PSD files for all assets that have one!</li><li>A 1 hour long modular synthesizer jam session, from someone who has never touched&nbsp; a modular setup before recording it (me). It only appears as a 5 second soundbite in the HTML5 build. </li><li>(COMING SOON, give it a good couple weeks) A loosely guided&nbsp;video tour through the source code / barely-a-Q&amp;A recorded with the lovely <a href="https://milosoft.itch.io/" target="_blank">Milosoft</a>.</li><li>A few much less exciting things that I don't feel the need to list here.</li><li>And possibly more to come!</li></ul>
<p>Overall, due to my inexperience at the time I was constructing this game, I don't think the contents will be very - strictly speaking - "useful" to anyone. But I hope they prove to be insightful or at the very least interesting.&nbsp;Thanks! <br></p>
<p><em>note: the version of RXP2010 and its related contents within have been lightly changed for this <strong>DELUXE</strong> paque. for various reasons, largely to make it purchase-for-money-able. I think what was changed should be pretty obvious if the original is still fresh in memory.</em> <br></p>
<p>(warning: this game contains some [non-pointed, nobody's hurting anyone else] cartoon depictions of injury.)<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNjgwNi84MzE1NjYxLnBuZw==/original/333npK.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNjgwNi84MzE1NjY1LnBuZw==/original/NhurYV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNjgwNi84MzIyODk5LnBuZw==/original/O9nd5X.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNjgwNi84MzIyOTA1LnBuZw==/original/237WAY.png]]
<p>Rose is desperate to unravel the mysteries of time travel, so she can rescue her parents who are trapped in the past. One day she feels close to an answer, but must be careful to not cause any paradoxes.</p>
<p><br>This is a puzzle game for Windows, Mac and Linux that combines time-travel and stealth gameplay.</p>
<ul>
<li>Collect crystals to time travel</li><li>Rewind out of paradoxes</li><li>20 Mind/Time bending puzzles</li><li>Story with hand-drawn illustrations</li><li>Short but sweet game</li></ul>
<p>New remastered version has:</p>
<ul><li>All new soundtrack by <a href="http://soundcloud.com/aeronic" rel="nofollow noopener" referrerpolicy="origin">Aeronic</a></li><li>New character model for Rose</li><li>New physically based materials for everything</li><li>Newer menus from the OUYA version</li><li>New story art and effects</li><li>Much improved gamepad support</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/RJRp6auXtR4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTUvMTI3OTA2LmpwZw==/original/6iD2vw.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTUvMTI3OTA3LmpwZw==/original/jD%2BLWh.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTUvMTI3OTA4LmpwZw==/original/Kde73w.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTUvMTI3OTA5LmpwZw==/original/uDDrnO.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTUvMTI3OTEwLmpwZw==/original/CU3zqD.jpg]]
<p><em>Rosette Diceless</em> is an approach to roleplaying that focuses on collaborative storytelling and consent-based conflict resolution. You can roleplay everything from complex combat to intricate political debate with the same set of simple, quick-playing rules that work equally well for a tabletop game as they do for a LARP.</p>
<p>With <em>Rosette Diceless</em> you can take part in games with many more players than are practical for many roleplaying systems.&nbsp;You can&nbsp;easily split into groups without dividing the attention of a single&nbsp;game master. There's no randomness; challenge resolution is&nbsp;simple and based on resource expenditure, understanding your&nbsp;target's strategies, and setting up story to enable your success.</p>
<p><em>Rosette Diceless</em> has an agenda: it is dedicated to a consensus-based, story-first, and improvisational approach. We believe that this creates the best social environment for creating and expressing stories that incorporate everyone's creativity.</p>
<blockquote><em>"this is it. this is the type of thing i'm looking for. something with more ambition than sense, and enough sense to strangle god."</em> - an itch.io user's collection note</blockquote>
<p><em>Rosette Diceless</em> is a complete, standalone book containing the core principles, character creation and advancement rules, conflict resolution system, and story-running techniques for GM-less games.</p>
<p><em>Rosette Diceless </em>is now at version 1.0.1. For a list of changes since the initial release, download the errata from this page.</p>
<p>For additional guidance and supplemental materials, including new Traits and optional rules, <a href="https://rosetterpg.com/supplemental-material/" rel="nofollow noopener" referrerpolicy="origin">check out the Rosette Diceless website</a>.&nbsp;</p><p>You can now pick up the <a href="https://futureproofgames.itch.io/rosette-diceless-companion"><em>Rosette Diceless Companion</em></a>, a supplemental book with more advice and play options!&nbsp;&nbsp;<a href="https://itch.io/s/56238/rosette-diceless-complete">If you want to buy the two together, you can get the&nbsp;bundle for 20% off!</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTY4MTY0LzM2MzQ1NjMucG5n/original/6TJEhb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY4MTY0LzM2MzM1MTIucG5n/original/Lrq0Ad.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY4MTY0LzM2MzM1MTQucG5n/original/52%2F0Op.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY4MTY0LzM2MzM1MTUucG5n/original/%2BB3zty.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY4MTY0LzM2MzM1MTYucG5n/original/jsE8bo.png]]
<p>The <em>Rosette Diceless Companion</em> is a supplement for&nbsp;<em></em><a href="https://futureproofgames.itch.io/rosette-diceless"><em>Rosette Diceless</em></a>, our collaborative and consent-based storytelling system. <br></p>
<p>Based on our years of running <em>Rosette Diceless</em>, we've compiled new optional rules, advice for Narrators and players, and new character options into a single volume for easy reference. There are a bunch of&nbsp;original pieces of advice and proposed rules&nbsp;as well as revised versions of articles previously posted as <a href="https://rosetterpg.com/supplemental-material/" rel="nofollow noopener" referrerpolicy="origin">supplemental material</a> on the Rosette website.</p>
<p>If <em>Rosette Diceless</em> is working for your game, this book will help it run even better; and if you aren't sure if <em>Diceless </em>is working for you, this book&nbsp;will hopefully address any issues you have!</p><p>If you're interested in a paperback version of the book, you can get <a href="https://www.drivethrurpg.com/product/346612/Rosette-Diceless-Companion" rel="nofollow noopener" referrerpolicy="origin">a print-on-demand edition at DriveThruRPG</a>!</p>
<p><strong><a href="https://itch.io/s/56238/rosette-diceless-complete">The base book and the Companion are available in a bundle for 20% off!</a></strong></p>
<p></p>
<p>If you have comments or questions, post them over in the <a href="https://futureproofgames.itch.io/rosette-diceless/community"><em>Rosette Diceless</em> community</a>.<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTE0Mjg4LzUxODY1ODMucG5n/original/IqvYan.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE0Mjg4LzUxODY1OTAucG5n/original/l25NeJ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE0Mjg4LzUxODY1ODkucG5n/original/2rfFJm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE0Mjg4LzUxODY1OTEucG5n/original/L6HRAV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE0Mjg4LzUxODY1OTIucG5n/original/8F3R5y.png]]
<p><strong></strong><strong>--GAMEPAD RECOMMENDED--</strong></p>
<p></p>
<p><strong>CONTENT UPDATE V1.1 HAS BEEN RELEASED!</strong></p>
<p><em></em><strong><em>New Game Mode "A Postal Life"</em></strong></p>
<p><em></em></p><em>
<p><strong><em>New Maps + Routes</em></strong></p>
<p><strong><em>Basic Combat</em></strong></p>
</em><p><em></em><br></p><p><em><strong><em>+ More!</em></strong></em></p>
<p><img src="https://img.itch.zone/aW1nLzcxOTU3NTYuZ2lm/original/rCd5On.gif" loading="lazy"><em></em></p>
<p><strong><em>He's the one who knocks...</em></strong></p>
<p></p>
<p><strong><em>To let you know about your mail!</em></strong></p>
<p>Complete various routes across multiple cities before your work day ends.&nbsp;
</p>
<p>Memorize your routes and knock them out in record time to become the best Postman that the company has ever seen!
</p>
<p>Upgrade your Postman's abilities and buy decorations for your house at the Route Me Shop. It's also a good idea to pay off your debts!
</p>
<p>Collect Hidden Mail and deliver Special Packages to increase your daily payout.&nbsp;Become the ultimate postman!
</p>
<p>
</p>
<p><strong>Key Features:</strong>
</p>
<ul><li>Climb over buildings and obstacles
</li><li>3 Cities and over 16 Routes
</li><li>Properties that can be furnished
</li><li>Companions that follow you
</li><li>Upgrades such as Speed Boost Pads + Puppy Frightening Devices to keep those dogs at bay!
</li><li>Once a route is started it can be completed in any order that you wish
</li><li>Mail depot HUB
</li><li>More content on the way!</li></ul>
<p>Also available on the Nintendo Switch!</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/Ci1jjC4cK7M" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE2NTQyOS82NzgwOTI4LmdpZg==/original/YpH6K7.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE2NTQyOS82NzgxMDA0LmpwZw==/original/thbzkD.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE2NTQyOS82NzgxMDAwLmpwZw==/original/sK%2BxFi.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE2NTQyOS82NzgxMDAyLmpwZw==/original/7SMAb9.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE2NTQyOS82NzgxMDAxLmpwZw==/original/9LvkSP.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE2NTQyOS82NzgxMDAzLmpwZw==/original/HQyHp4.jpg]]
<h5>About the Game:</h5>
<p><strong>Rubies in Space™ is a 3D Third Person Platformer made by one person in under a week. You Play as Lacy™ or Ranky™ to experience different levels and gameplay mechanics to collect "Precious" Rubies (I'm not talking about&nbsp; "Gollum" from "The Lord of The Rings" XD lol). Each ruby is worth money! (Not Real Money) The most expensive ruby is the RED Ruby!&nbsp;</strong></p>
<blockquote><strong>NOTE: THIS GAME DOES NOT CONTAIN SIMULATED GAMBLING AND/OR DOESN'T INVOLVE REAL CURRENCY!&nbsp; THIS GAME IS ALSO NOT VR SUPPORTED!!!
IF YOU SEE ANY VIDEOS ON YOUTUBE THAT THIS GAME CAN BE PLAYED IN VR, DON'T BELIEVE IT! IT'S CLICKBAIT! (EX. POiiSED, SERNANDOE, MRBOSSFTW, ETC.)</strong></blockquote>
<p><strong><br></strong></p>
<h3><strong>Features:</strong></h3>
<blockquote><strong>* 50+ Levels of Gameplay<br>* Ranky is now a playable character<br>* Level Selection to select a random level to play<br>* In-Game Achievements<br>* Character Selection Menu<br>* News Feed to keep you up to date from Jon Jon Games Studios, Inc.<br>* and Much More!</strong></blockquote>
<h3></h3>
<p><strong>FAQ:</strong></p>
<blockquote><strong>
Q: Will this game be on Steam?
<br>A: There is a planned release for this game to hit Steam. Once I get more info, I'll update everyone in the devlog.&nbsp;<em>What you see in the demo, will not be in the final product!&nbsp;</em></strong><strong>The demo will be on Steam as well! ;)&nbsp;
<br><br>Q:&nbsp; Can I Mod this game? How much will it be?
<br>A: I do love mods. I want to focus on getting the full game out first.&nbsp;<br><br>Q: Will there be controller support?
<br>A: For this type of game, no.&nbsp;</strong></blockquote>
<h4>Refund Policy:</h4>
<p><strong>&gt;&gt; NO REFUNDS.&nbsp; ALL SALES FINAL. &lt;&lt;</strong></p>
<p><strong>CONTROLS:</strong></p>
<blockquote><strong>WASD - MOVEMENT<br>
SPACE BAR - JUMP
<br>P - PAUSE GAME
THESE ARE LOCATED ABOVE THE Q &amp; W <br>KEYS
1 - Hides Cursor
2 -&nbsp;Shows Cursor
</strong></blockquote>
<p><strong>RUBY Cost (Score Worth):</strong></p>
<blockquote><strong>RED RUBY: $10,000 (10,000 pts)<br>
YELLOW RUBY: $1,997 (1,997 pts)
<br>ORANGE RUBY: $2,500 (2,500 pts)
<br>BLUE RUBY: $1,750 (1,750 pts)
<br>PINK RUBY: $1,000 (1,000 pts)</strong></blockquote>
<p><strong><em>NOTE: This game might contain bugs/errors. These bugs will be fixed in the 2.0 (Final Major Update). Please Report any bugs/errors in the "Report Bugs" forum.&nbsp; P.S.: ALL THE ASSETS WERE MADE FROM SCRATCH AND NONE WAS TAKEN FROM JIMMY VEGAS' TUTORIAL SERIES.&nbsp;</em></strong></p>
<p><strong><em>Copyright © 2020-2022 Jon Jon Games Studios, Inc.</em></strong><strong><em>®. Rubies In Space<strong>™, Characters, Assets,&nbsp;images and&nbsp;logos&nbsp;are Trademarks of Jon Jon Games Studios, Inc<em>®</em>. All Rights Reserved.</strong>&nbsp;</em></strong></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/xXWEj2SSrt4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODM1MjkwLzQ2ODA2NDcucG5n/original/FxSYvl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODM1MjkwLzQ2ODA2NTEucG5n/original/SAAp4T.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODM1MjkwLzQ2ODA2NDYucG5n/original/g4Gdnz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODM1MjkwLzQ2ODA2NDgucG5n/original/um7Y84.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODM1MjkwLzQ2ODA2NDUucG5n/original/EroD8I.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODM1MjkwLzQ2ODA2NTAucG5n/original/muUaHO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODM1MjkwLzQ2ODA2NDkucG5n/original/j2oWbm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODM1MjkwLzQ2ODA2NTIucG5n/original/xOwulT.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODM1MjkwLzUxOTk5NDMucG5n/original/mQ0Tys.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODM1MjkwLzU0MzQwMjIuanBn/original/LuP%2FBP.jpg]]
<p><span></span></p>
<p><em>Explore the expansive region of Thebryll,&nbsp;a place filled with many&nbsp;dangers and secrets while&nbsp;collecting over 40 different items to aid you on your journey to find the six fragments of the Eternity Rune before it's too late!</em><span></span></p>
<div class=""><iframe style="width: 500px; height: 281px" src="https://www.youtube.com/embed/A9dilq_kJa8" frameborder="0" allowfullscreen=""></iframe></div>
<p><strong>The Story</strong><br>Long ago, the wizard Odu created two magical runes to balance the natural forces of good and evil in the universe. They became known as the Runes of Eternity and Destruction, and were sealed away after Odu's passing.</p>
<p>Eventually, another wizard named Drodu stole the Rune of Destruction from its resting place.&nbsp;He was promised strange new&nbsp;powers by the rune, and it corrupted him. The Eternity Rune&nbsp;was broken into six pieces and scattered throughout Thebryll, leaving the now corrupted Drodu to go into hiding to master his newfound powers, confident he could not be stopped.</p>
<p>Odu arose from his grave, and knowing that the world could meet its doom, looked for someone to send on a mission to recover the pieces of the Eternity Rune. He eventually found Aloe, a warrior from the forest. Aloe was dubbed the title of "Rune Seeker" and was sent on his journey to reassemble the Rune of Eternity and save Thebryll.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/A9dilq_kJa8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDIzMjAwLzI4NjE2NTkucG5n/original/lyQU%2Fh.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDIzMjAwLzM5Mjk3MTEucG5n/original/NDeR8o.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDIzMjAwLzM5Mjk3MTIucG5n/original/jGjQhV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDIzMjAwLzM5Mjk3MTMucG5n/original/s9fjeP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDIzMjAwLzM5Mjk3MTYucG5n/original/6Wkh%2B6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDIzMjAwLzM5Mjk3MTcucG5n/original/Bwly%2Be.png]]
<p><em>In a long forgotten age, a raging war shattered and devastated the worlds of gods and men. Now green life blooms amidst the ruins of the lost worlds. Wondrous and terrible beings roam the Nine Realms. Civilisation stumbles forward, fresh and reaching.</em><br></p>
<p><em>Fate carves the skein anew but there are loose threads, lost long ago in the wars, with no place in the tapestry. These threads must seek the fire within and weave their own path.</em>
 </p>
<p><em>Strap on your bearded axe and linden wood shield, delve into the forsaken barrow and cleanse the draugr within. They will overhwhelm you at first so prepare to die. But when you wake up at the bonfire, you'll know what to expect for your next attempt. Parry their attacks, disarm them, and hack them to pieces. Defeat the mad jotunn within and claim the soul remnant they protect.</em>
 </p>
<p><em>Death is not the end.</em>
 </p>
<p><strong>Runecairn: Core Rules</strong> is a 44-page, black and white tabletop RPG zine, which includes a Norse fantasy setting, a full game system, and character creation rules for adventures set after Ragnarok destroyed most of the Nine Realms of Norse mythology. Runecairn is based on Cairn by Yochai Gal, with streamlined rules, fast character creation, and gameplay based on exploration and player choice.
 </p>
<h4>Core Rules Includes: </h4>
<ul> <li>Play designed for two players, one Warden and one Adventurer.
 </li><li>Full rules for play, based on the streamlined <em>Cairn</em> system and with mechanics inspired by the Dark Souls game series.
 </li><li>Death is not the end as Adventurers re-awaken at a bonfire when slain.
 </li><li>Four starting classes with unique weapon and item abilities: the hearty warrior with an axe and shield, the nimble scout with dual knives, the cunning seer with a staff and runestone magic, and the spirited skald whose voice channels the power of the gods.
 </li><li>Dynamic combat filled with devastating weapons, reactive magic, and reactive abilities.
 </li><li>30 forceful runestones spells for the cunning seer and 26 versatile sagas for the resolute skald.
 </li><li>15 unnerving and mysterious monsters drawn from tales of Norse mythology.
  </li></ul>
<p>&nbsp;
 </p>
<p>Illustrated throughout with evocative black and white line-art.</p>
<h3>What Others Have Said</h3>
<blockquote>Thank you for such an awesome game - I loved reading Runecairn and it’s on my list of 2022 games to get to the table. And the layout is lovely too.
 </blockquote>
<p>– Rich August (<a href="https://twitter.com/RpgAugust" rel="nofollow noopener" referrerpolicy="origin">@RpgAugust</a>), Steamforged Games
 </p>
<blockquote>If you're looking for a moderately crunchy duo TRPG, or if you're a fan of Souls games, or if you want to see a stellar adaptation of video game mechanics to tabletop, I would strongly recommend giving Beneath the Broken Sword (and Runecairn) a shot.
 </blockquote>
<p>– Richard Kelly (<a href="https://twitter.com/SprintingOwl" rel="nofollow noopener" referrerpolicy="origin">@SprintingOwl</a>), designer
 </p>
<blockquote>This is a quality game, adapting Cairn to an apocalyptic Norse setting with a greater emphasis on arms, armour and combat without losing the deadly and considered tone of the its forebear.
 </blockquote>
<p>– Sebrina Calkins (<a href="https://twitter.com/EntwifeXP" rel="nofollow noopener" referrerpolicy="origin">@EntwifeXP</a>), reviewer
</p>
<p>Also now available:</p>
<iframe frameborder="0" src="https://itch.io/embed/1182201?linkback=true&amp;bg_color=222222&amp;fg_color=eeeeee&amp;link_color=FFC600&amp;border_color=363636" width="552" height="167"><a href="https://byodinsbeardrpg.itch.io/beneath-the-broken-sword">Beneath the Broken Sword by By Odin&#x27;s Beard RPG</a></iframe>
<ul><li><strong>SRD</strong>:&nbsp;<a href="https://runecairn.byodinsbeardrpg.com/srd/" rel="nofollow noopener" referrerpolicy="origin">https://runecairn.byodinsbeardrpg.com/srd</a></li><li>Character generator: <a href="https://runecairn.byodinsbeardrpg.com/generator/" rel="nofollow noopener" referrerpolicy="origin">https://runecairn.byodinsbeardrpg.com/generator/</a><span></span></li></ul>
<p>Text licensed under <a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">CC BY-SA 4.0</a>.</p>
<h4>Print:</h4>
<p>UK:&nbsp;<a href="https://shop.byodinsbeardrpg.com/product/runecairn-core-rules" target="_blank" rel="nofollow noopener" referrerpolicy="origin">By Odin’s Beard RPG</a>,&nbsp;<a href="https://www.rookspress.com/products/runecairn" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Rook’s Press</a>,&nbsp;<a href="https://www.dungeonland.co.uk/home/Runecairn-Core-Rules-p374918252" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Dungeonland</a>,&nbsp;<a href="https://iglootree.com/runecairn-by-colin-le-sueur-1116-p.asp" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Igloo Tree</a>,&nbsp;<a href="https://thesecretcatshop.co.uk/products/runecairn" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Secret Cat Shop</a></p>
<p>US:&nbsp;<a href="https://www.exaltedfuneral.com/products/runecairn-pdf" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Exalted Funeral</a>, Iron Buffalo Gaming
</p>
<p>Canada:&nbsp;<a href="https://rattiincantati.com/products/runecairn-core-rules-pdf" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Ratti Incantati</a>,&nbsp;<a href="https://monkeyspawgames.com/products/runecairn?_pos=1&amp;_sid=e1d47a5c4&amp;_ss=r" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Monkey’s Paw</a>, and&nbsp;<a href="https://www.fourroguestrading.co/collections/newest-books/products/runecairn-pdf" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Four Rogues Trading Company</a></p>
<p><br></p>
<div class=""><iframe width="560" height="315" src="https://www.youtube.com/embed/woleWx0-vNY" frameborder="0" allowfullscreen=""></iframe></div>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/woleWx0-vNY" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTQxNTIyLzYxMDg0NTIucG5n/original/SKUPCg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTQxNTIyLzYxMDg0NTEucG5n/original/FLe0Lo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTQxNTIyLzU0MjQ5NzcuanBn/original/ykYM89.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTQxNTIyLzY1MDI2NTUucG5n/original/LGgHUN.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTQxNTIyLzc2MDUzODIucG5n/original/abUQGJ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTQxNTIyLzY1MDI1MTEucG5n/original/zu5XgX.png]]
<p><span class=""></span><strong>Want to break into a heavily guarded bank to steal a mafia leader's diamonds with your coworkers, but only have an hour free on your lunch break?</strong><strong></strong><br></p>
<p><strong>Compelled to haul illegal goods across the vast expanse of the united galaxies while avoiding the Intergalactic Police, but too intimidated to learn a whole new complex set of rules to do it?</strong><strong></strong><br></p>
<p><strong>Ever wanted to delve deep into the tombs of Aa'tagon Ruu and slay the ancient dragon guarding its vast treasures, but you're someplace where rolling dice and breaking out the character sheets is a bit too cumbersome?</strong><span class=""></span><span class=""><br></span></p>
<p></p>
<p><span class=""><em>Runt is an 10-page rules-light, materials-free and genre agnostic tabletop roleplaying system designed for 2+ players</em>. </span>It features simple, freeform mechanics which are easy to internalize, allowing a greater focus on the story, world and experience and less fiddling with complex rules or remembering intricate systems. It also <span class="">requires no materials to play: </span>no dice, no character sheets, no cards, nothing! This allows a game of Runt to be portable and be played whenever you're in the mood for a game.</p>
<p><span class="">It's designed for one shots and short campaigns</span>, but there's no reason it can't be used to host long term experiences with either. Additionally <span class="">it's a genre and setting agnostic system</span>, so you can play whatever experience you want to explore wherever you want it to happen!<br><br></p>
<p><span class="">The Runt Guidebook is a 10 page black and white, printable .pdf</span> that contains all the rules players need to know for running a game in the Runt system, such as:</p>
<ul><li><strong>&nbsp;</strong><span class=""><strong>Consent Systems</strong>&nbsp; </span>- an introduction on how to keep Runt fun for everyone</li><li>&nbsp;<span class=""><strong>Character Creation</strong></span><strong> </strong>- including rules for equipment and Unique Abilities your character may have</li><li>&nbsp;<span class=""><strong>Rules on "Challenges"</strong></span><strong> </strong>- a step-by-step walkthrough of Runt's simple resolution mechanic</li><li>&nbsp;<span class=""><strong>"How To Host"</strong></span><strong> </strong>- a quick primer on how to get in the mindset of Hosting a game in the Runt system</li><li><strong>Printable One-Page .pdf</strong> - all the rules on one handy sheet!</li><li><strong>Character Sheet Templates</strong> - to track your character details and keep tabs on your wonderful companions!</li></ul>
<p><br></p>
<p>Runt was made possible by the contribution of its wonderful backers on <a href="https://www.kickstarter.com/projects/runt-tabletop/runt-a-materials-free-and-rules-lite-rpg-system/" rel="nofollow noopener" referrerpolicy="origin">Kickstarter</a>.<br></p>
<p>Runt uses the Anti-Capitalist software license: <a href="https://anticapitalist.software/" rel="nofollow noopener" referrerpolicy="origin">https://anticapitalist.software/<br></a></p><p>Runt was featured in the <a href="https://itch.io/b/861/queer-games-bundle-2021" target="_blank">2021 Queer Games Bundle</a>.<br></p>
<p><a href="https://anticapitalist.software/" rel="nofollow noopener" referrerpolicy="origin"><br></a></p>
<p>Have a question, comment or feedback? Drop by <a href="https://discord.gg/xJTrVwa2g4" rel="nofollow noopener" referrerpolicy="origin">the Runt Discord</a> and leave a message!<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTIzNTQ0LzQyMDM5MTUucG5n/original/0i4bms.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTIzNTQ0LzUxMjUxMzcucG5n/original/c5aVQe.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTIzNTQ0LzQyMDM4ODEucG5n/original/QSMgV5.png]]
<h2>You're invited to the Rusty Lake Hotel!</h2>
<p>
	Welcome our guests to the Rusty Lake Hotel and make sure they will have a pleasant stay. There will be 5 dinners this week. Make sure every dinner is worth dying for.<br>
	<br>
	Rusty Lake Hotel is a mysterious point and click game developed by the <em></em>creators of the <strong>Cube Escape</strong> series.
</p>
<h3><strong></strong>Features:</h3>
<p>
	<br>
</p>
<ul>
	<li>Pick-up-and-play: easy to start, but it will be hard to put down</li>
	<li>Tons of puzzles: a total of 6 rooms full of unique and various brain teasers</li>
	<li>Thrilling and engaging story: there will be 5 dinners with intriguing guests and staff</li>
	<li>Full of suspense and atmosphere: Rusty Lake Hotel is a surreal place, where anything can happen…</li>
	<li>Impressive soundtrack: every room has its own designed theme song</li>
	<li>Achievements: an all-time gallery you never seen before</li>
</ul>
<p>
	<br>
	Tap on the arrows to navigate inside the rooms and lobby. <br>
	Interact with guests, staff and objects by tapping. <br>
	Select found items in your inventory and tap somewhere on screen to use them.<br>
	<strong><span></span></strong><br>Please send us an <a href="http://www.rustylake.com/contact/" rel="nofollow noopener" referrerpolicy="origin">email</a> if you have question or if any bug/issue occurs. We will try to find a solution as soon as possible. We want to keep everyone happy, especially now that it is our first paid game.<br>
	<br>
	<iframe style="border: 0; width: 400px; height: 120px" src="https://bandcamp.com/EmbeddedPlayer/album=2311844208/size=large/bgcol=ffffff/linkcol=333333/tracklist=false/artwork=small/transparent=true/"><a href="http://victorbutzelaar.bandcamp.com/album/rusty-lake-hotel-soundtrack" rel="nofollow noopener" referrerpolicy="origin">Rusty Lake Hotel Soundtrack by Victor Butzelaar</a></iframe><br>
	<br>
	We will unfold the Rusty Lake story one step at a time. So check <a href="http://www.rustylake.com" rel="nofollow noopener" referrerpolicy="origin">RustyLake.com</a> every day for new content and follow us on:<br>
	<br>
	Facebook: <a href="https://www.facebook.com/rustylakecom" rel="nofollow noopener" referrerpolicy="origin">https://www.facebook.com/rustylakecom</a><br>
	Twitter: <a href="https://twitter.com/rustylakecom" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/rustylakecom</a><br>
	or subscribe to our mailing list: <a href="http://eepurl.com/bhphw1" rel="nofollow noopener" referrerpolicy="origin">http://eepurl.com/bhphw1</a>
</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/xUyYNTuX4PY" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDU2NjYvMjAyNjQxLmpwZw==/original/flf3Ku.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU2NjYvMjAyNjQyLmpwZw==/original/MQ2E5F.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU2NjYvMjAyNjQzLmpwZw==/original/Biq2qX.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU2NjYvMjAyNjQ0LmpwZw==/original/Mljp80.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU2NjYvMjAyNjQ2LmpwZw==/original/Cb4ZSU.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDU2NjYvMjAyNjQ3LmpwZw==/original/Lrzn%2FT.jpg]]
<p><em>Sad Robot</em>&nbsp;is a shortform, collaborative tabletop roleplaying game for 2-4 players about the human diaspora.&nbsp;</p>
<p>Each player is a robot sent to observe, record and report on the fortunes and misfortunes of a single colony, out among the stars, in the human diaspora. Each turn, you narrate an automated missive from that robot to its colleagues.</p>
<p>You'll need several six-sided dice and a regular deck of playing cards, with the jokers removed. You'll also need a few hours to play all the way through.</p>
<p><em>Sad Robot</em>&nbsp;is the second of a series of shortform story games written by Marcus Shepherd of <strong>Blue Golem Games</strong>. It's complete, but feedback and reviews are invaluable for any future development.</p>
<p><br></p>
<p><br></p>
<p><br></p>
<p><em>Cover image: Derivative of "</em>First Curiosity Drilling Sample in the Scoop<em>", credited to NASA/JPL-Caltech/MSSS, 2013. Available at:&nbsp;<a href="https://www.nasa.gov/mission_pages/msl/multimedia/pia16729.html" target="_blank" rel="nofollow noopener" referrerpolicy="origin">www.nasa.gov</a>. Retrieved July 2019.</em></p>

[img width=500 [https://img.itch.zone/aW1nLzIyNTAyOTcuanBn/original/7nxwS%2B.jpg]]
<p><strong><em>Note: Safari Zone was originally released in April 2021 on Steam, Windows Store and Xbox One and newer.</em></strong></p>
<p><strong>Safari Zone is a creature-collection adventure!</strong><br><br><img src="https://cdn.akamai.steamstatic.com/steam/apps/1421600/extras/Banner_Game.png?t=1618008198" loading="lazy"><br><br>Thousands of years ago a catastrophic event destroyed cities and terraformed regions around the world causing mutations in fauna and creatures. People travel from all over to learn about the Baun Tree and now&nbsp;<strong>it's your turn to discover the newest Safari Zone and catalogue all of the native creatures it is home to</strong>.<br><br><img src="https://cdn.akamai.steamstatic.com/steam/apps/1421600/extras/miniEgressCave.png?t=1618008198" loading="lazy"><br><br>Learn about all of the people who call the Safari Zone home, befriend all of the creatures in the Rocky Tundra and be the first to catalogue the mythical creature Solarin!<br><img src="https://cdn.akamai.steamstatic.com/steam/apps/1421600/extras/Banner_Features.png?t=1618008198" loading="lazy"></p>
<ul><li><strong>Full Controller Support:</strong>&nbsp;Whether you want a laid-back experience or just want to play as if you're on a home console, Safari Zone supports complete controller support.<br>
</li><li><strong>Roguelike Elements:</strong>&nbsp;When you run out of energy in the Safari Zone you have to leave the park and rest to avoid damage from the Baun Tree. When you rejoin it's like it's your first time. Live in a loop and improve your cataloguing skills by learning from your past paths.<br>
</li><li><strong>Easy Entry:</strong>&nbsp;Creatures aren't the easiest to catch. Park guides around the Safari Zone are always happy to give you tips, you can even go through the induction with them whenever you want. Ever not sure what to do? Brush up on your skills whenever you want.<br>
</li><li><strong>Colourful Characters:</strong>&nbsp;Talk to everyone and learn about the lives of those in the park. From the Karmybra fanatics to the spiritual lovers, there's a story to be found everywhere.
</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/t0nRhmalAKc" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA3MjQwMS82MTQ2Nzc5LnBuZw==/original/91jazv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3MjQwMS82MTQ2Nzc4LnBuZw==/original/WJ10sQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3MjQwMS82MTQ2Nzc3LnBuZw==/original/ik6ShO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3MjQwMS82MTQ2NzgwLnBuZw==/original/UXZBuA.png]]
<p>The complete official OST for Safari Zone!</p>
<p>Tracklist:<br>Adorn Gully<br>Adorn River<br>Azalea Forest<br>Eastern Planes<br>Egress Cave<br>Forgotten Wasteland<br>Guidance Island<br>Interchange<br>Ivory Forest<br>Kebar Village<br>Lake Perano<br>Main Menu<br>Mount Adorn<br>Parhar Village<br>Rocky Tundra<br>Ruins Zone<br>Tropical Zone<br>Western Planes</p>

[img width=500 [https://img.itch.zone/aW1nLzQ0NDc0MjUuanBn/original/tpCHsr.jpg]]
<h3><em>AVAILABLE NOW FOR PC AND MAC!<br></em></h3>
<p><em>"I met Anne first, waiting for the bus. I asked her what she was selling and she laughed and said nothing, nothing at all, that what she had to offer was free for anyone who wanted it bad enough. I asked her what had helped her. She just said 'James.'"</em></p>
<p><strong>Sagebrush</strong> is a first-person narrative adventure about exploring the compound of an apocalyptic Millenialist cult in remote New Mexico years after they collectively took their lives in a mass suicide event.</p>
<p>In <strong>Sagebrush</strong>, you'll investigate the long-abandoned Black Sage Ranch, the former home of Perfect Heaven, an apocalyptic cult formed in the early 1990s under the guiding hand of the prophet Father James.<br></p>
<h3>Inspired by Real-World Apocalyptic Cults</h3>
<p>Based on extensive research into cult groups both famous and obscure, large and small, Sagebrush avoids simplistic motivations and easy answers. The members of the Flock are diverse and complex people with varied needs, hopes, and fears.<br></p>
<h3>An Immersive, Lo-Fi 3D World</h3>
<p>Sagebrush features an evocative low-poly, low-resolution, less-is-more art style that combines retro aesthetics with modern technology, along with a fully-realized soundscape and an original ambient musical score that immerses you in the remote New Mexico desert.<br></p>
<h3>A Whole Compound to Explore</h3>
<p>Black Sage Ranch is yours to wander, from the trailers that housed the cultists, to the halls where they gathered for food and prayer, to the old mines that stretch out below the compound, untouched for nearly a century.<br></p>
<h3>Uncover the Real Story</h3>
<p>Find notes, recordings, and belongings that give insight into the people who lived at Black Sage Ranch. What did they believe? Why did they join? Were they happy? And why did they choose to end it all?</p>
<p>Estimated Play Time: 60-120 minutes<br><br></p>
<p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/A0vCZWBDdDw" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTczNzk2LzgxMDI3Mi5naWY=/original/7e%2FAc6.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTczNzk2LzgxMDI3My5qcGc=/original/sMuvph.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTczNzk2LzgxMDI3NC5qcGc=/original/Ea5GFW.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTczNzk2LzgxMDI3NS5qcGc=/original/Rf2kAT.jpg]]
<p><em><span class="">It's Summer Break, and you're about to </span><strong>die.</strong><br></em></p>
<p><em><span class="">You don't know who first suggested playing </span><em>Sallow-Face</em><span class="">... It was just supposed to be some dumb game like </span><em>Bloody Mary</em><span class="">, to help relax after another brutal year of high school drama.</span><span class=""> </span>
</em></p>
<p><em><span class="">But the monster known as Sallow-Face is </span><strong>very real</strong><span class="">, and you've </span><strong>summoned him</strong><span class="">. The doors and windows are locked- there’s no way to fight back, no way to escape.</span>
</em></p>
<p><em><span class="">Well… there’s one way. Sallow-Face prefers to </span><strong>eat rotten souls. </strong><span class="">He’s willing to leave if you offer up the </span><strong>most rotten soul</strong><span class=""> to him. Who among you has High School changed for the worse? Who’s the class bully, who’s spreading gossip and lies? You’ll have to decide among yourself- because if you can’t, Sallow-Face is going to eat </span><strong>ALL </strong></em><span class=""><em>of you.</em></span>
</p>
<p>---</p>
<p>Sallow-Séance is a dice-less tabletop roleplaying game, intended for groups of 4 or more players. Taking on the role of teenagers who've summoned a demon at a slumber-party, you must gossip and spread rumors about your friends in order to survive the night.</p>
<p class="text-right">Written by: Malcolm Derikx</p>
<p class="text-right">Art by:&nbsp;<span class="">Lorena Torres Loaiza</span></p>
<p class="text-right"><strong></strong><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMzU2MS81NzEzODUwLnBuZw==/original/JH5Z87.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMzU2MS81NzEzNjY4LmpwZw==/original/azTQ3y.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMzU2MS81NzEzNjY5LmpwZw==/original/zRSUJC.jpg]]
<p>This is an island adventure written by Robin Fjärem for <a href="https://yochaigal.itch.io/cairn" target="_blank">Cairn</a>, the fantasy RPG by Yochai Gal. <br></p>
<p>The quiet fishing town of Salthaven, located on an island with the same name, is suddenly plagued by terrible storms. No ships are able to leave or dock due to the relentless waves pummeling the shoreline. There are even rumors that people have been attacked by terrible monsters washing up on the shore. Panic is spreading among the populace and a sinister marsh cult is quick to take advantage of this by recruiting the scared townsfolk to their cause.</p>
<p>In these 3 pages you will find:</p>
<ul><li>A town under attack from both sea and land</li><li>An impostor pirate captain</li><li>A sinister cult trying to awaken a terrible monster</li><li>A clock counting down the impending doom</li><li>A one-page dungeon</li><li>8 enemies with stats for Cairn</li></ul>
<p>To print a booklet: Print double-sided landscape with short-edge binding.</p>
<p>Also check out the <a href="https://ialath.itch.io/salthaven-town-gazetteer" target="_blank">Salthaven Town Gazetteer</a> to flesh out the town itself and <a href="https://ialath.itch.io/salthaven-sewers" target="_blank">Salthaven Sewers</a> for some underground adventuring!<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM0MzMwOC83ODE4MzYwLnBuZw==/original/iy3mvo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM0MzMwOC83ODE4MzU5LnBuZw==/original/s2JzLE.png]]
<p><strong><img src="https://img.itch.zone/aW1nLzQ5MzAwNjAuZ2lm/original/kGQRIf.gif" loading="lazy"><br></strong></p>
<p><strong>Sarawak is a short literary mystery game set in Oxford and Borneo.<br></strong></p>
<p><strong></strong></p>
<p>A university professor is found dead on the steps outside your hotel. The police arrest someone very close to you for his murder. The dead professor has left behind him a web of secrets that you alone can unravel.<br><br>Sarawak is a narrative adventure game that takes you from the dreaming spires of Oxford to the jungles of Borneo as you make interactive choices and solve puzzles in a story that blurs the boundaries between narrative games and conventional literature.<br><br><strong><img src="https://img.itch.zone/aW1nLzQ5MzAwNjUuZ2lm/original/K4H9KI.gif" loading="lazy"></strong></p>
<p><strong>For fans of narrative adventure games or old-fashioned mystery novels</strong><br>Sarawak will appeal to players who enjoyed the likes of 80 Days, A Case of Distrust, LucasArts adventure games or Agatha Christie novels. Sarawak is best described as a narrative adventure, and gameplay is split between interactive text choices and puzzles.<br><br><strong>Choose your words wisely</strong><br>Through dialogue choices, you interact with a whimsical cast of characters who help or hinder your progress. The more you unravel, the more conflicted you become as you start to question who's lying and who's telling the truth.<br><br><strong>Solve puzzles</strong><br>Discover Sarawak's beautiful and interactive illustrations as you open locks and doors, discover secret rooms, hack into police equipment, pore through newspaper archives, and light up a jungle research station.</p>
<p><br></p>
<h2>COVERAGE</h2>
<p></p>
<p><br></p>
<p>"A charming, pleasant and relaxing game"<br>"Sarawak puts forward an engaging tale that will keep you enticed for its duration"<br>8/10 -&nbsp;<a href="https://www.gamereactor.eu/sarawak-review/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Gamereactor</a><br><br>"I can’t gush enough about how much I enjoyed this game and can find no fault. It features a well-written story that’s brimming with character, charm, and wit. It has incredible art that complements incredibly vivid prose, and fun, engaging puzzles to help make the experience a little more interactive. This is truly one of the best narrative experiences I’ve had in a while, the kind that makes me happy I’m a game’s journalist."<br>10/10 -&nbsp;&nbsp;<a href="https://www.thegamecrater.com/sarawak-truly-a-masterpiece-pc-review/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">The Game Crater</a><br><br>"If you’re looking for a story-driven mystery with plenty of intrigue and fun, give this one a go."<br>"With an interesting story and creative art style, it’s well up there as one of the more unique games I’ve played."<br><a target="_blank" rel="nofollow noopener" referrerpolicy="origin"></a><a href="https://www.gamespew.com/2021/01/sarawak-is-a-well-written-tale-with-an-intriguing-mystery/" rel="nofollow noopener" referrerpolicy="origin">Gamespew</a></p>
<p><br>"Sarawak is a delightfully cozy piece of interactive fiction"<br>"Had me hooked on both cracking the mystery and simply existing as this witty traveling anthropology student."<br><a href="https://goombastomp.com/indie-games-spotlight-a-glimmer-of-hope/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Goombastomp</a></p>
<p><br></p>
<p><strong></strong></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/AKqUAfg5yMA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTA4MjgyLzQ5Mjk5OTIucG5n/original/3VnYQl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA4MjgyLzQ5Mjk5NzMucG5n/original/XrDwmR.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA4MjgyLzQ5Mjk5ODcucG5n/original/Aoh4wW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA4MjgyLzQ5Mjk5OTEucG5n/original/fIdDws.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA4MjgyLzQ5Mjk5ODUucG5n/original/fD8F6h.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA4MjgyLzQ5Mjk5OTUucG5n/original/d1fOVy.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA4MjgyLzQ5Mjk5OTQucG5n/original/WmvWUs.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA4MjgyLzQ5Mjk5OTAucG5n/original/hD6UVa.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA4MjgyLzQ5Mjk5ODgucG5n/original/JNYSGl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA4MjgyLzQ5Mjk5OTMucG5n/original/AzY8uj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA4MjgyLzQ5Mjk5OTYucG5n/original/y0Qzj%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA4MjgyLzQ5Mjk5ODkucG5n/original/MefinS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA4MjgyLzQ5Mjk5ODYucG5n/original/IEh7jO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA4MjgyLzQ5Mjk5OTgucG5n/original/r9M4DB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA4MjgyLzQ5Mjk5OTcucG5n/original/MkgSnV.png]]
<h3>Sausage Sports Club is a physics game about floppy animals playing sports!</h3>
<p>Play solo or couch co-op with up to 4 friends in Adventure Mode! Compete, make friends, and explore the toy-filled Overworld as you make your way through a season of the hit reality show Sausage Sports Club.</p>
<p>Having a party? Perfect! Up to 8 players can compete or play together in Free Play! Any way you play, you’ll unlock tons of customizations in characters, skins, and hats.<br></p>
<p><strong>Key features:&nbsp;</strong><br></p>
<ul><li>More than a dozen playable floppy animal characters including Corgis, Pigeons, Flamingos, and more</li></ul>
<ul><li>A highly replayable Adventure Mode that works solo or co-op with up to 4 players</li></ul>
<ul><li>Various game modes like Soccer, Capture the Flag, Paintball, and more</li></ul>
<ul><li>Four unique arenas including Bug Museum, Aquarium, Junkyard, and Tiny Tokyo</li></ul>
<ul><li>A huge, toy-filled Overworld spread over four biomes including Jungle, Beach, Desert, and Sportsville</li></ul>
<ul><li>Over 100 unlockable customizations through hats and character skins</li></ul>
<ul><li>Competitive local multiplayer for up to 8 players on one device</li></ul>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/SXNTQqWZnDk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjc1OTcvMTM1NDY2NC5qcGc=/original/A8flCv.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjc1OTcvMTM1NDY3My5qcGc=/original/spVcxY.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjc1OTcvMTM1NDY2OS5qcGc=/original/UzPl%2F6.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjc1OTcvMTM1NDY3MC5qcGc=/original/gqsvD0.jpg]]
<p>The continuation to the SeraphCircle series of monster packs, here you will find 20 vibrant creatures explored in several variants for your game! From cutesy nut eaters to the ravenous undead, these creatures mastered the elements to burn the unprepared party to a crisp. Or freeze them. Or maybe summon demons, you pick!<br></p>
<p>
	Whether you're on a lookout for a new enemy rotation or need an inspiration boost for constructing your game's lore, Seraph Circle Monster Pack 2 is a fantastic addition to your growing library of RPG resources.</p>
<h3>This pack contains:</h3>
<ul><li>20 unique monsters.</li><li>5+ variations of each monster.</li><li>Frontview compatible. Each variation has frontview version.</li><li>Sideview compatible. Each variation has a sideview version.</li><li>Each of these is available in RPG Maker MV and Original (HD) sizes.</li><li><strong><em>Deluxe Edition Exclusive: New variations!<br></em></strong></li><li><strong><em>Deluxe Edition Exclusive: Updated graphics!<br></em></strong></li><li><strong><em>Deluxe Edition exclusive: full resolution PSDs for every monster!
<br></em></strong></li><li><em><strong></strong></em><strong><em>Deluxe Edition exclusive: Sketches and drafts for every monster!</em></strong><br><strong></strong><strong><em></em></strong></li>
</ul>
<p>This pack has received a significant improvement over its original release, which you will only find here on itch.io.<br></p>
<p>
Have you used this pack? I'd love to have a look at your game, and perhaps give it a shot!
</p>
<h3>If you like this, check out the rest of my work available on itch.io!</h3>
<p><a href="https://josephseraph.itch.io/sc-monster-pack-1"><img src="https://cdn.discordapp.com/attachments/273542730997563394/642202252194611220/unknown.png" alt="SC Monster Pack I" title="SC Monster Pack I" loading="lazy"></a></p>
<figcaption>40+ unique monsters, 5+ variants of each, side and frontview compatible! Over 1000+ files! </figcaption>
<p><a href="https://josephseraph.itch.io/js-big-icons-01" target="_blank"><img src="https://img.itch.zone/aW1nLzI2NjIyNTQucG5n/original/4jGEi8.png" alt="SC Icon Pack 1:" title="SC Icon Pack 1:" loading="lazy"></a></p>
<figcaption>19 item icons in pixel art and big icon form. It's free!</figcaption>
<p></p>
<p>This asset pack is licensed under <a href="https://creativecommons.org/licenses/by/3.0/" rel="nofollow noopener" referrerpolicy="origin">CC-BY 3.0</a>. Usage is free and unlimited, as long as credit is given. If you use my work, I would be very happy if you report to me, although it's not necessary. I love seeing what people do with it!</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTU3MDg5LzI5NDc3MzEuanBn/original/ZFkt9n.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTU3MDg5LzI5NDc3MzMucG5n/original/hplGh6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTU3MDg5LzI5NDc3NjAucG5n/original/ZhKYuD.png]]
<p>Outnumbered and outgunned in deep space? No problem! Turn bullet hell into bullet heaven with your advanced Schildmaid technology and start collecting dangerous projectiles to power up your ship and score big! But when your shield runs out and danger time kicks in, you better switch up your strategy fast...</p>
<p>Schildmaid MX is a fresh, new and shiny 2D shoot 'em up&nbsp; in which you pick 1 of 3 ferocious space fighter crafts to wreak havoc on the invasion fleet that threatens your planet. Embark on multiple attack runs and put fear in the hearts of your enemies. The best pilots are immortalized on the online leaderboards!</p>
<p><img src="https://img.itch.zone/aW1nLzczOTI0NDQuZ2lm/original/ljrweZ.gif" loading="lazy"><br></p>
<p>Schildmaid MX features:</p>
<ul><li>delicious bullet absorbing scoring mechanics;</li><li>a friendly difficulty curve for beginners in Jaeger Mode;</li><li>instant action and a frantic challenge for veteran shmup players in Krieger Mode;</li><li>a true endless survival gauntlet for the most die hard players in Chimera Mode;</li><li>a short and seriously spicy playthrough that tests your mastery of the game's mechanics in Sieger Mode;</li><li>multiple secret boss fights that activate via specific player actions and achievements;</li><li>3 selectable ships;</li><li>numerous loops that progressively introduce new enemies and situations across all 3 game modes;</li><li>more than 40 handcrafted stages, spread out over the different game modes;</li><li>automatically saved checkpoints after each cleared stage&nbsp;in Jaeger Mode</li><li>online leaderboards;</li><li>unlockable in-game achievements and titles for your player profile;</li><li>amazingly catchy <a href="https://mudprintsmusic.bandcamp.com/album/schildmaid-mx-original-soundtrack" target="_blank" rel="nofollow noopener" referrerpolicy="origin">OST by Ed Tremblay of Studio Mudprints</a>;</li><li>optional proper CRT display emulation for a beautiful, nostalgic look.</li></ul>
<p>Follow us on Twitter&nbsp;<a href="https://twitter.com/HitPStudio" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">@HitPStudio</a>&nbsp;and&nbsp;join the community on <a href="https://discord.gg/vvRMJGHm6j" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">Discord</a>.&nbsp;<br></p>
<p>Minimum required system specs:<br></p>
<ul><li>Dual core CPU</li><li>Intel HD 4000 integrated GPU</li><li>4 GB RAM</li></ul>
<p>Recommended system specs:</p>
<ul><li>Quad core CPU</li><li>Dedicated GPU (GTX/Radeon)</li><li>8 GB RAM</li></ul>
<p>OS requirements:<br><br>Up to date Windows/macOS/Linux (tested on Ubuntu)</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/etPWvUg1ZeA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODg2NDU0LzczNjE3OTYucG5n/original/wa%2FPxt.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODg2NDU0LzczNjE3OTgucG5n/original/htxszI.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODg2NDU0LzczNjE4MTAucG5n/original/FAkd7Z.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODg2NDU0LzczNjE4MTIucG5n/original/hVijJS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODg2NDU0LzczNjE4MjEucG5n/original/sm6vUo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODg2NDU0LzczNjE4MjUucG5n/original/2ljRRA.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODg2NDU0LzczNjE4MjMucG5n/original/ZfCPVy.png]]
<p>73 sound effects - UI &amp; HUD, Ambience Loops, Weapons, Impacts, Monsters, and more!</p>
<p><strong>SFX Preview: </strong><a href="https://soundcloud.com/chrislsound/sci-fi-sfx-pack-preview" rel="nofollow noopener" referrerpolicy="origin">https://soundcloud.com/chrislsound/sci-fi-sfx-pack-preview</a></p>
<p>SFX (.wav - stereo, 44.1kHz, 16bit)</p>
<ul><li>Amb_Alarm_LOOP</li><li>Amb_EnergyHum_LOOP + Down (2 total SFX)</li><li>Amb_EnergyPulse_LOOP + Down (2 total SFX)</li><li>Amb_Engine_LOOP + Startup (2 total SFX)</li><li>Amb_InnerMind_LOOP</li><li>Amb_RadioStatic_LOOP</li><li>Amb_SmallMotor_LOOP</li><li>Amb_Space Loop Layers: Groan, Hiss, Noise, Squeaks, SubBass (5 total SFX)</li><li>EnergyGun_Charge 1-2 w/ Loops (4 total SFX)</li><li>EnergyGun_Shoot 1-2 (4 variations each, 16 total SFX)</li><li>Menu_Close 1-2</li><li>Menu_Open 1-2</li><li>Menu 1-4, each w/ NavA, NavB, SelectA, SelectB (16 total SFX)</li><li>Misc_AirlockRelease</li><li>Misc_BassSynthSwell</li><li>Misc_Beep1</li><li>Misc_Beep2</li><li>Misc_BreathAttack + BreathSweep (2 total SFX)</li><li>Misc_CrunchySweep</li><li>Misc_DissolveSweep</li><li>Misc_ElectricBuzzSweep</li><li>Misc_EnergyBlastRise</li><li>Misc_GlitchBuzz_LOOP</li><li>Misc_GlitchInterference_LOOP</li><li>Misc_GlitchNano_LOOP</li><li>Misc_GlitchNoisy 1-6</li><li>Misc_MonsterBreath 1-2</li><li>Misc_MonsterGrowl</li><li>Misc_MonsterRoarReverb</li><li>Misc_Scanning_LOOP</li><li>Misc_SpringySweep</li><li>Misc_TechRise
</li></ul>
<p><strong>Contact</strong>: ChrisLSound@gmail.com</p>
<p>If you have any requests or are interested in hiring me for custom music/SFX, please send me an email!
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjk1ODA4LzE0NDM2MTguanBn/original/GnUvQf.jpg]]
<p><a href="http://aamatniekss.itch.io/" style="font-size: 40px">My other packs</a></p>
<h2>Sci-Fi Space - Customizable&nbsp;high&nbsp;quality pixelart backgrounds.</h2>
<p></p>
<p><strong>This is a space background set with included planets, space clouds, stars and asteroids to make all kinds of different space backgrounds!<br>Almost all assets like Asteroids and space clouds are rotatable and flippable in all directions giving much more variety.&nbsp;<br></strong></p>
<p>The assets are made in sizes large enough to be used in various screen resolutions.</p>
<p><strong>Full Details:</strong></p>
<ul><li>4 Tileable Base background versions(Blue, Red, Green or Mixed star colours) 720x640px</li><li>4 unique asteroid sprites(recoloured in 2 brightnesses) ~&nbsp;18x18px - 48x48px</li><li>16 Unique Planet sprites in various sizes(With some recolours in different variations) ~&nbsp;12x12px - 70x60px</li><li>6 Unique Space cloud variations(recoloured in 2 other colours for a total of 18) ~ 120x120px - 200x300px</li><li>12 Unique star shapes to be used in separate layers(with 2 other recolours) ~ 3x3px - 25x25px</li><li>3 Premade Parallax backgrounds with multiple layers as samples or to be used as is.</li></ul>
<p><br></p>
<p><strong>LICENCE: This asset pack&nbsp;can be used in both&nbsp;free and commercial projects. You can modify it to suit&nbsp;your own needs. Credit is not necessary, but appreciated.&nbsp; You may not redistribute it or resell it.</strong></p>
<p>Follow me on Twitter for updates on more Asset Packs -&nbsp;<a href="https://twitter.com/Namatnieks" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/Namatnieks</a></p>
<p><em>I am now also on&nbsp;<strong>Patreon</strong>, where by pledging you can get access to all new asset pack releases -&nbsp;<a href="https://www.patreon.com/Namatnieks" rel="nofollow noopener" referrerpolicy="origin">https://www.patreon.com/Namatnieks
</a></em></p>
<p><strong>And if you like the pack remember to Rate it! :)&nbsp;</strong></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODYxOTMzLzQ4NDM0MTUuZ2lm/original/ALidej.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvODYxOTMzLzQ4NDM0MTcuZ2lm/original/S83jYa.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvODYxOTMzLzQ4NDM2MDAuanBn/original/yfrWWc.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODYxOTMzLzQ4NDM2MDEuanBn/original/vyCUq9.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODYxOTMzLzQ4NDM2MDIuanBn/original/cX%2FLTv.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODYxOTMzLzQ4NDM0NDUuanBn/original/OtbgKh.jpg]]
<p>Game ready scifi computer and instruments! Created due to not finding ones I liked in the asset packs I had, and now available on itch!</p>
<p>UE4 Packed textures available. All texture sheets are 2048x2048.<br></p><p>Folder structure screenshot shows contents of zip file!<br></p>
<p>Note: Screenshot showing polycount also includes an additional model not included in this pack. Screenshot is being used to showcase topology.<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNzIwNS84MzE3Mzg5LmpwZw==/original/HrDeIO.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNzIwNS84MzE3MzkwLmpwZw==/original/jxnDt3.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNzIwNS84MzE3NDA1LmpwZw==/original/9oG2RY.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNzIwNS84MzE3NDg1LmpwZw==/original/0od7A3.jpg]]
<p>You are a little Racoon that lives in a den out the back of a Wizards Tower. The kind Wizard that lives in the Tower often leaves scraps of food and bizarre animal parts out back for you and your motley crew of friends to eat.</p>
<p><span class="">One night the door was left open and you entered the tower and had a potion party, the morning after you realise the kind Wizard is still missing and has been kidnapped! it up to you to rescue them and to deal with the unfortunate side effects of this potion hangover!</span></p>

[img width=500 [https://img.itch.zone/aW1nLzUwNDIyODMuanBn/original/LCbZwE.jpg]]
<h1 class="text-center">YOU ARE A ROBOT</h1>
<h2 class="text-center">WELCOME TO THE&nbsp;ARCANE&nbsp;APOCALYPSE</h2>
<p class="text-justify">The world is a harsh and dangerous place for a rag-tag group of self-made bots. When your home’s energy core begins to deteriorate, it is up to you to seek out the lost arcano-tech to fix it. When news reaches you of a coven of eldritch machines approaching from the East, it is up to you to learn whether they might be trusted to join you, or whether their intentions are to turn your home back into scrap metal. And when the hordes of the Singularity blot out the sun, it’s up to you to save your little robot family from annihilation.</p>
<p class="text-justify"><em>Scrapyard Junkbots</em> is a fast-paced, high-action roleplaying game illuminated by the <a href="https://gilarpgs.itch.io/lumen" target="_blank">LUMEN system</a> by Spencer Campbell of Gila RPGs. In it, you play junky, scrappy, yet incredibly powerful robots fighting to save your home.&nbsp;</p>
<h2 class="text-center">QUICKSTART</h2>
<p>The quickstart can be downloaded for free, and includes everything you need to run a basic game, including:&nbsp;</p>
<ul><li>Basic Rules</li><li>3 Character Models with Quickstart Character Sheets (Mechanic, Tank, and Ghost)</li><li>5 Enemy Statblocks</li></ul>
<h2 class="text-center">THE FULL GAME INCLUDES</h2>
<ul><li>Full Rules</li><li>7 Character Models with Unique Power and Abilities (Mechanic, Tank, Ghost, Necromech, Crowbot, Eldritch Machine, and Swarmcrafter)</li><li>9 Weapon Upgrades</li><li>17 Enemy Statblocks</li><li>Robot Identity Mechanics</li><li>Blank Character Sheet</li><li>7 Quickstart Character Sheets, 1 for each Model</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA3NDc0MC82MzAyNTg2LmpwZw==/original/1Hva%2BL.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3NDc0MC82MzAyNTk5LmpwZw==/original/hAxODr.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3NDc0MC82MzAyNTg3LmpwZw==/original/orjM9L.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3NDc0MC82MzAyNTg4LmpwZw==/original/2i3ler.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3NDc0MC82MTcwNDI0LmpwZw==/original/qFBWOE.jpg]]
<p>You find yourself alone in the mountains of the Alps. Discover strange contraptions, wild animals and the mysteries of an ancient culture. Uncover the <i>Secrets of Rætikon </i>in an atmospheric, open-world 2D game in which you fly like a bird and explore an uncharted world.</p><p><i>Secrets of Rætikon </i>is an action-focused exploration game with an open world. Fly through the savage mountains of the Alps and collect parts of ancient machines. The world is rich in interactivity. Trees, rocks, plants and animals – everything is physics based and can be grabbed and dragged around.<br><br>Hostile animals protect their habitats and interact with you as well as each other. Use this ecosystem to your advantage: drag a bird of prey to another predator and they attack each other; grab a robin and feed it to a buzzard – it will attack the poor bird instead of you; defend yourself by wielding spiked plants or by pushing foes into thorn bushes.<span></span><span></span></p><p><br></p><h5>"… A TITLE OF MASTERFUL MYSTIQUE, BEAUTY, AND PLAYFULNESS", KILL SCREEN</h5><p><br></p><hr><p><br></p><h5>SYSTEM REQUIREMENTS</h5><ul><li><strong>Windows:</strong> XP / Vista / 7 / 8</li><li><strong>Mac:</strong> OSX 10.6</li><li><strong>Linux:</strong> Ubuntu 12.04</li><li><strong>Processor:</strong> 2 GHz</li><li><strong>Memory:</strong> 1024 MB RAM</li><li><strong>Graphics:</strong> Intel HD 4000</li><li><strong>Hard Drive:</strong> 200 MB available space</li></ul><p><br></p><hr>

<iframe width="720" height="450" src="https://www.youtube.com/embed/mn_aMZZyIpI" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzM2MTcvNjAxMjIyLnBuZw==/original/c%2Bs4vz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzM2MTcvNjAxMjIxLnBuZw==/original/anSYty.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzM2MTcvNjAxMjIzLnBuZw==/original/hARn23.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzM2MTcvNjAxMjMxLnBuZw==/original/%2F6HAA8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzM2MTcvNjAxMjI0LnBuZw==/original/AE2v3t.png]]

<p><strong>Here's the zine with hot new moves for every occasion</strong>. Including:</p>
<p><em>When the dead woman you're exploiting has something to say,</em></p>
<p><em>When stories don't end so much as bleed into each other,</em></p>
<p><em>When you need to save Weird Al's dream</em>&nbsp;<em>from his own depression,</em></p>
<p><em>When what</em>&nbsp;<em>looks like</em>&nbsp;<em>nonsense means something to you and you need it to mean something to them,</em></p>
<p><em>When you're discovering marvelariffic crawlimers in nonspecifical dimensiocosms,</em></p>
<p><em>When you're documenting the peculiar lives and unpleasant</em>&nbsp;<em>ends of perplexing</em>&nbsp;<em>souls,</em></p>
<p><em>When you are best friends, even though</em>&nbsp;<em>it's hard.</em></p>
<p><em><strong>Poetry has always been a genre of story game</strong></em><em>. These are</em>&nbsp;<em>just some fun</em>&nbsp;<em>new ways to play.<br></em></p>
<p>This 32 page zine contains 10 Poetry games as well as an introductory discussion of poetic forms as games. The titles include:</p>
<ul><li>&nbsp;<strong>What She Meant:</strong>&nbsp;An asymmetric game where one player is a forger whose brilliant poet mother is &nbsp;trying to communicate from beyond death and the other players are fans, critics, or other vultures staking a claim on the interpretation of her legacy, played via letter or e-mail.</li><li>&nbsp;<strong>Laughter or a Lit Flame:</strong>&nbsp;A hack of renga (the collaborative poetic form that is the origin of haiku) which was a finalist for the 2017 200 Word RPG Contest.</li><li>&nbsp;<strong>The Untimely Endings:</strong>&nbsp;A silly alphabet acrostic party game of miserable Gorey-esque limericks.</li><li>&nbsp;<strong>The Misnaturalists of Zifyex:</strong>&nbsp;Basically the same game but for discovering crazy Dr. Seuss-esque creatures.</li><li>&nbsp;<strong>Weird Al Doesn't Want To:</strong>&nbsp;A reunion LARP for friends where you are all Weird Al's assistants trying to create a pitch for a jukebox parody Broadway musical.&nbsp;</li><li>&nbsp;<strong>The Translation Game:</strong>&nbsp;A game about interpretation and translation using modified Oulipo techniques to radically transform a text.</li><li>&nbsp;<strong>Friends Forever:</strong>&nbsp;An infinitely long game for two best friends, forever or not.</li><li><strong>&nbsp;Rectification</strong>: A poetry game for optimists.</li><li>&nbsp;<strong>The Poets Tell Us</strong>: A tiny expansion for campaign-style Microscope (requires a copy of Microscope by Ben Robbins, available from Lame Mage)</li><li><strong>&nbsp;Never Metagame I Didn't Like</strong>: A pun writing game for board game nights.</li></ul>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjExODUyLzMzNjUzNzEucG5n/original/nGs2gi.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjExODUyLzMzNjUzNzQucG5n/original/J1Au7j.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjExODUyLzMzNjUzNzIucG5n/original/wxGGx%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjExODUyLzMzNjUzNzMucG5n/original/R724JB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjExODUyLzMzNjUzNzUucG5n/original/AERHiO.png]]
<p>found-footage horror game about the scars we leave on land, and how they heal. Explore a local defence factory as an urban exploration youtuber.&nbsp; A 15 minute horror experience.<br></p>
<p>take only pictures, leave only rot.</p>
<p><img src="https://img.itch.zone/aW1nLzczMDIzNjAucG5n/original/uDaDZj.png" loading="lazy"></p>
<p><img src="https://img.itch.zone/aW1nLzczMDIzNjMucG5n/original/O5Rp3c.png" loading="lazy"><br></p>
<figure><img src="https://img.itch.zone/aW1nLzczMDIzMzYucG5n/original/9VIxv0.png" loading="lazy"><br><br>The Linux build has not been tested, and the mac build may also have ongoing issues - please contact me if you encounter any errors.<br><br>Featuring sfx by Imphenzia<br></figure>

[img width=500 [https://img.itch.zone/aW1nLzcxNDc3ODcucG5n/original/nDrx1W.png]]
<p>Congratulations!</p>
<p><span class="" lang="en"><span class="">You are in the process of selecting the job of your dreams.</span><span class=""><br></span><span class="">You will have to assert yourself between the different candidates and the different tests to be able to achieve that desired job.</span><span class=""><span></span></span></span></p>
<p><span class="">Are you able to defeat the Human Resources?</span><span class=""><br></span><span class="">Or are you going to give up now that you are close to getting that job you wanted?</span><span class=""><span></span></span></p>
<p><span class=""><strong>Instructions</strong>:</span></p>
<p>W / A / S / D -&gt; Move</p>
<p><span class="">Control-&gt; Crouch</span></p>
<p><span class=""></span><span class="">Space-&gt; Jump</span></p>
<p><span class=""></span><span class="">Tab-&gt; Slow down time</span></p>
<p><span class=""></span><span class="">Right Click -&gt; Change weapon firing mode</span><span class=""> </span> <span class="">-Burst mode: Hold down left click</span><span class=""> </span> <span class="">-Normal mode: Press left click</span><span class=""><span></span></span></p>
<p><span class=""></span></p>
<p><span class=""><strong>The objective</strong> is to defeat all the enemies, once done, the elevator will open and you can pass the level</span><span class=""><span></span></span></p>
<p><span class="">I hope you enjoy this game as much or more as I did in making it.</span></p>
<p></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br></p>
<p></p>
<p><br></p>
<p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/VJh8-EiAwxA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTM2NDU2LzUzMDgzNDYucG5n/original/IDjQFr.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTM2NDU2LzUzMDgzNDIucG5n/original/EJInrF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTM2NDU2LzUzMDgzNDMucG5n/original/2gV2Fc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTM2NDU2LzUzMDgzNDQucG5n/original/hqy932.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTM2NDU2LzUzMDgzNDUucG5n/original/AW3IrY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTM2NDU2LzUzMDgzNDcucG5n/original/fZId6L.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTM2NDU2LzUzMDgzNDgucG5n/original/y7e9pv.png]]
<div class=""><br></div>
<div class=""><iframe style="width: 500px; height: 281px" src="https://www.youtube.com/embed/FzjHszwb7vA" allowfullscreen="" frameborder="0"></iframe></div>
<h2 class=""><a href="https://argent-games.itch.io/self-checkout-unlimited-original-soundtrack" target="_blank"><br>OST NOW AVAILABLE!<br></a></h2>
<p><br></p>
<p><span></span><img src="https://img.itch.zone/aW1nLzI4NjAzMTgucG5n/original/6%2BIxbe.png" loading="lazy"><br></p>
<p>An <strong>empty shopping mall</strong> after closing time.<br><br></p>
<p>Lost and alone inside a <strong>pristine relic</strong> of the past.<br><br></p>
<p>As sunset slowly approaches, navigate between surreal stores with only two cheerful PA announcers to keep you company. Can you unravel the mystery of your journey before it's time to say goodbye?<br><br></p>
<p>"Thank you for choosing Wilson Center Mall—a single stop for everything you'll ever need!"<br><br></p>
<p>❤<br><br></p>
<p>Inspired by the 8-circuit model of consciousness, the mallsoft/"dead mall" genre, and the book Prometheus Rising, Self-Checkout Unlimited is a unique exploration of both mind and matter.</p>
<p><br><br></p>
<p><img src="https://img.itch.zone/aW1nLzQyMzg2OTkuanBn/original/wcS3JD.jpg" loading="lazy"><br></p>
<p><br><img src="https://img.itch.zone/aW1nLzI4NjAzMTkucG5n/original/WHt078.png" loading="lazy"><br></p>
<p><br><u>Genre:</u> Walking sim, philosophical, surreal<br><u>Length:</u> Short (~1-2 hrs, replayable)<br><u>Platforms:</u>&nbsp;Windows, Mac, Linux<br><br><u>Features:<br><br></u>- Explore a <strong>nostalgic late 90s/early 2000s indoor mall</strong><br>- Relaxing atmosphere with <strong>minor puzzles</strong> and <strong>no time limits</strong><br>- Different story elements based on your choices<br>- Voice acting&nbsp;<br>- <strong>"Free Mall" mode</strong>—free exploration mode unlocked by beating the game<br>- A slushwave/vaporwave &amp;&nbsp;smooth jazz OST by <a href="https://desertsand.bandcamp.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong>desert sand feels warm at night</strong></a> and <a href="https://sebastienzunino.bandcamp.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong>Sebastien Zunino<br><br></strong></a></p>
<p><strong><em>CONTENT WARNING:</em>&nbsp;This game contains bright lights and flashing images that may cause discomfort or seizures for players with photosensitive epilepsy. It also contains sequences of eerie gameplay and minor jumpscares/startling moments, but it is not a horror game.<br></strong><br></p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzQyMzg3MDIuanBn/original/mDRyd%2B.jpg" loading="lazy"><br></p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzI4NjAzMjAucG5n/original/VvV7YM.png" loading="lazy"><br></p>
<p><br><strong>Design Lead/Writing/Programming:</strong> Dovah<br><strong>Management: </strong>Gamma<br><strong>3D Modeling/Textures: </strong>Alec Ziskind<br><strong>Music:</strong> <a href="https://sebastienzunino.bandcamp.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Sebastien Zunino</a>, <a href="https://desertsand.bandcamp.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">desert sand feels warm at night</a><br><strong>Voice Acting:</strong>&nbsp;<span class="">Katie Flamman, Michael Schwalbe</span><span class=""><br><strong>Concept/Promo Art:</strong> Jarid Scott,&nbsp;Axiom Design&nbsp;</span></p>
<p><br></p>
<hr>
<p><img src="https://img.itch.zone/aW1nLzQyMzg3MDguanBn/original/MsuwCd.jpg" loading="lazy"><br></p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzQyMzg3MTMuanBn/original/IIsCP%2F.jpg" loading="lazy"><br></p>
<p><br></p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzQyMzg3MTAuanBn/original/UuOvPA.jpg" loading="lazy"><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/FzjHszwb7vA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTQ2MTQwLzMwODMwNDQuanBn/original/BeKm0L.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQ2MTQwLzMwODMwNDMuanBn/original/mZ7yAi.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQ2MTQwLzI4NTA4ODEuanBn/original/Kk2xn6.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQ2MTQwLzI4NTA4ODIuanBn/original/HiYwK9.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQ2MTQwLzI4NjA1ODMuanBn/original/NO%2B2QS.jpg]]
<h2>No jumping. Only falling.</h2>
<p>Serious Scramblers is a fast-paced vertical platformer where you can't jump. Descend through a hazardous pit and defeat a massive monster lurking in the deep in this small but unabashedly tough game!</p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzI2NzA0NDYuZ2lm/original/yxj6BR.gif" loading="lazy"><br></p>
<p><img src="https://img.itch.zone/aW1nLzI2NTI4NjQuZ2lm/original/gwztBA.gif" loading="lazy"><br></p>
<ul><li>Fall your way through the super intense arcade action</li><li>Randomized level generation</li><li>Test your skills on challenging obstacles</li><li>Unlock new characters - each with game changing abilities</li><li>Get ready for the finale - MASSIVE BOSS FIGHT</li><li>Enjoy with some real sweet chip-tune music while playing the game</li></ul>
<p><img src="https://img.itch.zone/aW1nLzI2NTI4NzAuZ2lm/original/UqBhYk.gif" loading="lazy"><br>Serious Scramblers features a colorful cast of unlock-able characters, each changing the game in significant ways. Here are some examples:<br><br><strong>Motoko - Time jumper</strong><br>Like a certain innovative FPS, time only moves when Motoko moves. There is a catch however, the level scrolls a lot faster when time isn't paused - so, unless you want to get skewered by the ceiling spikes, you'll have to make each move carefully!</p>
<p><strong>Silhouette - Gotta go fast</strong><br>Silhouette moves at top speed at all times, so avoiding spike traps is as easy as A, B, and C! However, the trade-off is that there will be significantly lesser gold coins to collect.<br></p>
<p><strong>Mummy - Gold Grabber</strong><br>Fancy getting more coins to unlock more characters? Mummy's the one to choose. It's worth noting that Mummy is one of the slowest characters though!</p>
<h3><br>Join our community</h3>
<p><a href="https://discord.gg/exGJZ7C" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzI2NzI1NzEucG5n/original/%2B1mjP3.png" loading="lazy"></a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/ZfJG20yg-9g" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTEwODA0LzI2NzA0ODQucG5n/original/5eyFlO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEwODA0LzI2NzA0ODgucG5n/original/SsQErP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEwODA0LzI2NzA0ODcucG5n/original/60lBAW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEwODA0LzI2NzA0ODUucG5n/original/X43Lfi.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEwODA0LzI2NzA0ODYucG5n/original/dh2O4%2F.png]]
<p><em>Session Zero is a game about characters.</em></p>
<p><em>It is the story of the life they have already lived before your story with them begins.</em></p>
<p><em>It is who they are, who has helped them, what has benefited them, and what has caused them harm.</em></p>
<p>Session Zero is a deck based, character creation game. Using a standard deck of cards or the deck of Session Zero cards, draw a hand and answer the prompts to create the story of your character from before your story with them began. Each unique prompt has a set of follow up questions to really get to the root of who this character is as well as the events and people who shaped their lives.</p>
<p>Designed as a solo game, it can easily be adapted to be played in groups within the same setting.&nbsp;</p>
<p>Downloadable content includes all files for both Session Zero and its expansion - rule and prompt pdfs (for play with a standard card deck), plain text versions of prompt lists, and individual files for all cards.&nbsp;</p>
<p>If you like this game, please tell me about it on <a href="https://twitter.com/meghanlynnFTW" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter</a>!</p>
<p>If you want to watch someone playing Session Zero - check out <a href="https://www.youtube.com/watch?v=SLTYLsHlkJc&amp;list=PL-HBI8PlzdZ1BMZNTNtGqor6XzNEpPW3a&amp;index=17" target="_blank" rel="nofollow noopener" referrerpolicy="origin">this video</a> of my friend&nbsp;<a href="https://twitter.com/go_jg" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Jess</a> creating a character for a DnD oneshot!</p>
<p><iframe width="560" height="315" src="https://www.youtube.com/embed/SLTYLsHlkJc" frameborder="0" allowfullscreen=""></iframe><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/SLTYLsHlkJc" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDM1ODExLzI2NjYzNjIuanBn/original/1BL%2Fub.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDM1ODExLzMxMzg2OTcucG5n/original/iSI50c.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDM1ODExLzMxMzg3MDAucG5n/original/Xnmm8N.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDM1ODExLzMxMzg2OTYucG5n/original/aWR2sl.png]]
<p>“a very good roguelike”<br><a href="https://steamcommunity.com/linkfilter/?url=http://www.newyorker.com/online/blogs/culture/2014/04/video-games-that-embrace-irony-and-death.html" target="_blank" rel="nofollow noopener" referrerpolicy="origin">The New Yorker</a><br><br>“Shattered Planet is breathing new life into the rogue-like genre”<br>4/5 –&nbsp;<a href="https://steamcommunity.com/linkfilter/?url=http://supergamedroid.com/2014/04/12/shattered-planet-review" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Super Game Droid</a><br><br>“frankly beautiful”<br><a href="https://steamcommunity.com/linkfilter/?url=http://www.cnet.com.au/shattered-planet-towards-the-perfect-procedural-death-labyrinth-339346988.htm" target="_blank" rel="nofollow noopener" referrerpolicy="origin">CNET Australia</a><br></p>
<p><br></p>
<p>Explore a dangerous planet that's different every time and try to survive! The Galactic Union's job for you is clear: research the alien wildlife -- for science! However, in this case, researching may include lasers, explosions, hungry aliens, space sushi, and other similarly delicious-or-terrifying hazards.<span></span></p>
<p>Whether you survive or die, you'll come away better than you started!<br><br>Features:&nbsp;</p>
<ul><li>Procedurally generated levels&nbsp;</li><li>200+ items, from swords to cookies to grenades&nbsp;</li><li>Alien monsters to fight or befriend</li><li>Everyone gets the same Daily Challenge - compare your progress with your friends</li><li>Class system - each clone skin has a different advantage</li><li>Pet cloning - maintain your companions' DNA in their own clone vat</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/NLqkRSm6h28" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzE0ODY3LzE1NDkyMjUucG5n/original/5YetCH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzE0ODY3LzE1NDkyMjEucG5n/original/j9Xwhk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzE0ODY3LzE1NDkyMjQucG5n/original/XVD5Md.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzE0ODY3LzE1NDkyMjIucG5n/original/oCKRdC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzE0ODY3LzE1NDkyMjYucG5n/original/seQDMj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzE0ODY3LzE1NDkyMjkucG5n/original/xzYYXU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzE0ODY3LzE1NDkyMjMucG5n/original/W3hNBK.png]]
<p><strong>A food-fight, reverse battle royale where everybody stays in the game until one player gives out all their items and remains empty handed to win.</strong><strong><br></strong></p>
<p><img src="https://img.itch.zone/aW1nLzY2MzEwNjcuZ2lm/original/JJt%2BOZ.gif" loading="lazy"></p>
<p><strong>Choose your anthropomorphic vending machine and get to food tossin'!<br></strong></p>
<ul><li>Hectic and simple platforming gameplay. Dodge food and throw food!</li></ul>
<ul><li>Customize your character with different colors, effects, trails and even buddies!</li></ul>
<ul><li>90's Inspired pixel art and FM-Synth-heavy, Jazzical music</li></ul>
<ul><li>Levels in various locations such as a mall, the French Quarter and more to come!</li></ul>
<ul><li>Join the public lobby or create private lobbies for you and your friends to play!<strong><br></strong></li></ul>
<p></p>
<p>Humanity is gone, all that remains is the tech they left behind. Learn from their mistakes, be generous and care about others! :)</p>
<p></p>
<p>Made with game engine LÖVE, pixel art tool Aseprite and music tracker Milkytracker by Mana&nbsp;Dream <br></p>
<p>This project is under active development with new customizations, characters and levels added routinely!<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/XlLqoOrclVk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTIzNDQzLzczOTA3ODYucG5n/original/PdwhU0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIzNDQzLzczOTA3ODIucG5n/original/xCL6dy.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIzNDQzLzczOTA3ODMucG5n/original/yPw2Ba.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIzNDQzLzczOTA3ODAucG5n/original/fnpTiY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIzNDQzLzczOTA3ODEucG5n/original/AwQocJ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIzNDQzLzczOTA3ODUucG5n/original/NdKQqT.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIzNDQzLzczOTA3ODQucG5n/original/rXB6ap.png]]
<p><strong>AND WE ARE ON STEAM!!!<br></strong></p>
<hr>
<p><strong></strong></p>
<p><strong>SHINY GAUNTLET </strong>is a Dungeon Hack n Slash, Bullet Hell, Rogue-Lite Adventure.<br></p>
<p><span></span>Select your champion and explore the Gauntlet. </p>
<ul><li>Collect weapons </li><li>Find  enchanted rings</li><li>Bottle and/or consume the mysterious remains of defeated foes (<em>if you're into that sorta thing</em>)</li><li>Chase the Wily Cultist who has stolen your Shiny Shard!<span></span></li></ul>
<hr>
<p><strong>FEATURES:</strong></p>
<ul><li>Fight your way through a randomly generated death labyrinth!</li><li><strong>20</strong> playable classes!</li><li>Over<strong> 60</strong> enchanted rings!</li><li>Bottle the remains of your foes and consume them later for power-ups     (if you're into that sort of thing).</li><li>6 Artifacts that influence the difficulty of each run!</li><li>A really <strong>SHINY</strong> shard!</li></ul>
<p><strong>REPORT A BUG: </strong>ghenry@spritewrench.com<br></p>
<p><strong><br></strong></p>
<hr>
<p><strong>Contribute to development!</strong></p>
<ul><li><u><strong><a href="https://docs.google.com/forms/d/19_u8oZQYaXSC4DRkkA1jE6mVVg-W4Nf0ADqnky7Jamc/viewform" rel="nofollow noopener" referrerpolicy="origin">Suggest a new ring</a></strong></u></li><li><a href="https://docs.google.com/forms/d/1s8TewlX48vJMVZ52WTtnsX__V0DNUsfFlFRXKDCRSKk/viewform" rel="nofollow noopener" referrerpolicy="origin"><strong>Suggest a new aretfact</strong></a></li></ul>
<p style="margin-left: 20px; text-align: center"><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/5rdZ_oT3wYI" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAzNDQvMTQ2MTczLmdpZg==/original/jRY5zE.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzNDQvMTQ2MTc4LmdpZg==/original/IpjMVh.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzNDQvMTQ2MTgwLmdpZg==/original/zRvAaY.gif]]
<p>Shipwreck is a top down adventure game in which you must travel the land, explore dungeons, and defeat monsters to earn safe passage off the island on which you are stranded.&nbsp;</p>
<p>Shipwreck is the first game from Brushfire Games, a small game studio in Washington state, run by siblings Kelly Gravelyn&nbsp;and Joe Gravelyn. Shipwreck was created by these fine folks:</p>
<ul><li>Kelly Gravelyn - Design/Programming</li><li>Joe Gravelyn - Design/Programming</li><li>Ty Lagalo - Art</li><li>Dan Waters - Audio</li></ul>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p><dt></dt><p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTQ0LzEzMTgzLnBuZw==/original/rNrm2j.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTQ0LzEzMTg2LnBuZw==/original/j4jQfO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTQ0LzI5MjIxNS5wbmc=/original/kpXuiG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTQ0LzMyMjg5MzAucG5n/original/akEP9J.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTQ0LzMyMjg5MzYucG5n/original/S1rbdU.png]]
<p>When you want a coffee cup for your game, but you don't want it to look toooooooooo normal.</p>
<p>This short and stout coffee cup was built for precisely that. Perfect for the James Holdens of your game.<br></p>
<p>Screenshot shows the contents of the zip file. Mesh and textures!<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNzIxNy84MzE3NDgwLmpwZw==/original/yDnsYj.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNzIxNy84MzE3NDgxLmpwZw==/original/et3vWH.jpg]]
<h1><strong>Shredded Secrets</strong></h1>
<p><em>“Be kind; Everyone you meet is fighting a hard battle.”</em></p>
<p><strong><em>Shredded Secrets</em></strong> is a charming story-based 2D platformer that lets you step into the lives of four people at a middle school - Isabella, Taylor, London and Oakley.</p>
<p>Their lives intersect at different points as each character faces their own complex issues. Isabella, dubbed the "nerd"&nbsp; of the school, is being&nbsp;bullied by Oakley, a problematic kid in her grade.&nbsp;Taylor struggles with his grades, anxiety, and&nbsp;pressure from his family to do well in school.&nbsp;London is navigating depression and grief, while trying to keep up with her&nbsp;job as a middle school teacher.</p>
<p>Learn each character's&nbsp;fears and face off&nbsp;against bullies, hurled insults,&nbsp;inner demons, grade monsters &amp; more. Seek comfort in each character's favorite item. Confront your biggest enemy - the worst&nbsp;bully, or your inner self!<br></p>
<p><em>Shredded Secrets</em>&nbsp;builds empathy,&nbsp;manifesting&nbsp;human issues through interesting and charming gameplay.</p>
<hr>
<h2><strong>About the Development Team</strong></h2>
<p><em>Shredded Secrets</em> was created by Team Sarcastic Shark Clouds, a group of middle school girls at the 2018 Girls Make Games Seattle Summer Camp. The game won Grand Prize at GMG’s 2018 Demo Day competition and went on to raise over $30K on Kickstarter.&nbsp;</p>
<p><strong>Team Sarcastic Shark Clouds:</strong> Crystal, Isadora, Keira, Gracie</p>
<hr>
<h2><strong>About Girls Make Games</strong></h2>
<p><strong>Girls Make Games</strong> is a series of international summer camps and workshops designed to inspire the next generation of designers, creators, and engineers.</p>
<p>GMG’s flagship video game summer camp teaches girls ages 8-18 how to design and code their own games. The camps culminate in Demo Day, a national competition where the top teams from around the country pitch their games to industry professionals. The Grand Prize winning team receives extended mentorship and the opportunity to have their game professionally produced and published.</p>
<p>To learn more, visit <a href="https://girlsmakegames.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">https://girlsmakegames.com</a>.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/p6sLPwzXJR8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODI2MTEwLzQ2MzAwNTIucG5n/original/eWjKaP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODI2MTEwLzQ2MzAwNTkucG5n/original/CvCR%2FZ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODI2MTEwLzQ2MzAwNjAucG5n/original/j4sukf.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODI2MTEwLzQ2MzAwNTcucG5n/original/0xQ6N3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODI2MTEwLzQ2MzAwNTgucG5n/original/gf5omj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODI2MTEwLzQ2MzAwNTUucG5n/original/aIx8HZ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODI2MTEwLzQ2MzAwNTYucG5n/original/NyPg3G.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODI2MTEwLzQ2MzAwNTMucG5n/original/l5phWx.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODI2MTEwLzQ2MzAwNTQucG5n/original/xsN33C.png]]
<h1>Fight yourself. Die Trying.</h1>
<h3>== Both of our FREE content updates - SHUTDOWN and SHUT UP - are now live! ==</h3>
<div class=""><iframe width="500" height="281" src="https://www.youtube.com/embed/ae5h377yDnU" frameborder="0" allowfullscreen=""></iframe></div>
<h2>== Play the free demo&nbsp;<strong><a href="https://hiddentrack.itch.io/shut-in-demo">HERE</a></strong>&nbsp;==</h2>
<p></p>
<p><strong>SHUT IN is a dark comedy/psychological horror adventure game which explores depression and isolation by trapping you inside your own house.</strong></p>
<p>Your task is simple: Get out of bed, go outside, and get some Fresh Air. Think you can handle that?</p>
<p>Oh, but it might not be quite that simple. Your house isn't looking quite like it used to. You don't recognise any of these photos, everything's gotten dirty and disgusting, cracks seem to be opening up everywhere, and you're SURE everything didn't used to be so... constantly trying to kill you.<br><br>Maybe it's not worth it. Maybe go back to bed. Try again tomorrow.<br><br>If you do decide to keep going, you'll have to face strange puzzles, bizarre and uncomfortable obstacles, and a narrator who is unreliable at best, and downright insulting at worst. You'll have to get through your day under a constant barrage of judgment, sarcasm, and melancholy. If you can cope with that. Idiot.<br><br>SHUT IN is about tension and discomfort in a familiar environment. Your greatest tools are also your worst enemies. Common sense will keep you alive, but it might not get you very far. Curiosity can have great rewards, but will probably just get you killed.<br><br>But don't worry. When you (inevitably) die - because you fell down the stairs, were too stupid to operate an oven properly, got ripped apart by untold invisible horror, something like that - you can always just give up. Try again tomorrow. Or the next day. Or the next day.</p>
<h4>Here's what people have been saying about the game:</h4>
<p><em>“Tackles the subject of mental health in a really clever way... whilst striking the perfect balance with its dark comedy.”<br>9.2/10 –&nbsp;<a href="https://fullsync.co.uk/shut-in-review/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Full Sync</a><br><br>“With depth far beyond the initial on-the-surface horror story, this experience taps into the evocativeness of a mental health crisis.”<br>9/10 –&nbsp;<a href="http://www.cubed3.com/review/6235/1/shut-in-pc.html" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Cubed3</a><br></em></p>
<p><em>"It's funny. It's darkly funny. It's cruelly funny."</em> <a href="https://buried-treasure.org/2020/11/shut-in/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Buried Treasure</a></p>
<p><em>“Exploring themes of mental illness has certainly been done in games before, but SHUT IN does it exceptionally well.”</em><br><strong>4/5 </strong>– <a href="https://adventuregamers.com/articles/view/shut-in" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Adventure Gamers</a></p>
<p><em>“I’ve never felt more unintentionally *seen* by a video game before.”&nbsp;&nbsp;<a href="https://www.heypoorplayer.com/2020/10/29/shut-in-review-pc/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">HeyPoorPlayer</a>&nbsp;</em></p>
<p><strong></strong></p>
<h1>Key Features:</h1>
<ul><li>Over a dozen unique ways to die!</li><li>Probably a way to survive!</li><li>Original atmospheric horror soundtrack by composer Luc Wilkinson.</li><li>Everything else done by person/mess Cael O'Sullivan.</li><li>A dangerous house full of original puzzles, and loads of ways to get them wrong!</li><li>A hint system which isn't that helpful, and often insults you!</li><li>Multiple items to experiment with, each with tons of unique interactions that solve no puzzles and achieve nothing.</li><li>Option to just stay in bed forever!</li><li>Quite short, so it's over quicker!</li><li>Writing up these features is exhausting...</li><li>Try again tomorrow.</li></ul><h4>-- For another game by Cael O'Sullivan &amp; Hidden Track, check out <a href="https://hiddentrack.itch.io/how-to-win-season-one">How to Win: Season One</a> - now available on <a href="https://store.steampowered.com/app/1386510/How_to_Win_Season_One/" rel="nofollow noopener" referrerpolicy="origin">Steam</a> &amp; <a href="https://hiddentrack.itch.io/how-to-win-season-one">Itch.io</a>&nbsp;for absolutely free! --</h4>

<iframe width="720" height="450" src="https://www.youtube.com/embed/ae5h377yDnU" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzk2MTQ4LzcyNDQxMjQucG5n/original/o%2B9isk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk2MTQ4LzQ0NzAyOTguZ2lm/original/5gGiXY.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk2MTQ4LzQ0NzAzMTQuZ2lm/original/o349Nk.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk2MTQ4LzQ0ODUwNzIuZ2lm/original/EntJA1.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk2MTQ4LzQ0ODUwNzYuZ2lm/original/6FMgHO.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk2MTQ4LzQ0ODUzMTIuZ2lm/original/hT%2BOTW.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk2MTQ4LzQ0NzAzMjYuZ2lm/original/yWrvOZ.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk2MTQ4LzQ0NzAzMDYuZ2lm/original/FFpsrT.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk2MTQ4LzQ0NzAzMjIuZ2lm/original/xSVCNC.gif]]
<p class="text-center">take a stroll<br>take a picture<br></p>
<p><img class="custom-img1" src="https://img.itch.zone/aW1nLzY2NDUxMTMucG5n/original/MHKAHP.png" loading="lazy"></p>
<p class="text-center">visit hundreds upon hundreds<br>of generated islands</p>
<p><img class="custom-img2" src="https://img.itch.zone/aW1nLzY2NDUxMTkucG5n/original/k5my8t.png" loading="lazy"></p>
<p class="text-center">share your photographs <br>on Twitter <a href="https://twitter.com/search?q=%23ShutterStroll" target="_blank" rel="nofollow noopener" referrerpolicy="origin">#ShutterStroll<br></a>or on <a href="https://disord.link/ShutterStroll" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Discord</a></p>
<p><img class="custom-img3" src="https://img.itch.zone/aW1nLzY2NDUxNDMucG5n/original/Z6aydb.png" loading="lazy"></p>
<p class="text-center">relax<br>there is no goal<br>take your time</p>
<p><br></p>
<p class="text-center">also play <a href="https://jannikboysen.itch.io/monoliths" target="_blank">Monoliths – a Shutter Stroll fiction</a> for free<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTgzMDgxLzY2NDQ5MDMucG5n/original/1bSkcA.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgzMDgxLzY2NDQ5NTkuanBn/original/MIj5R8.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgzMDgxLzY2NDQ5MjEucG5n/original/JiL4ft.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgzMDgxLzY2NDQ5NTQuanBn/original/%2Bafsql.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgzMDgxLzM1MjgzMzkuanBn/original/s%2B6CDU.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgzMDgxLzY2NDQ5NDAuanBn/original/6g%2BRVH.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgzMDgxLzM1MjgzNDEuanBn/original/y6%2B0cy.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgzMDgxLzM1MjgzNDQuanBn/original/J0Plvu.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgzMDgxLzY2NDQ5MjIucG5n/original/fKx64N.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgzMDgxLzY2NDQ5NTUuanBn/original/KihH2x.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgzMDgxLzY2NDQ5NTgucG5n/original/wKVCl6.png]]
<p>Grab a cup of coffee and relax with Sidewords.</p>
<p>Sidewords is part logic puzzle, part word game, all original.&nbsp;</p>
<p>No timers. No penalties. No pressure. Just you and a good puzzle.</p>
<p>Sharpen your mind with hundreds of puzzles, from small and quick, to large and captivating. Plus three new puzzles to do every day! There’s even a bonus game included!</p>
<p>Choose a color scheme that fits your mood and environment. Get your morning started with bright colors, or unwind at the end of a long day with a dark theme.</p>
<p>So sit back, relax, and enjoy a good puzzle. You deserve your Sidewords time.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/qW4HTgy2nDw" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTczNTI4LzgwODU2OS5wbmc=/original/CjQ%2FlI.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTczNTI4LzgwODU3MC5wbmc=/original/y21t%2BN.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTczNTI4LzgwODU2Ny5wbmc=/original/GwlNuD.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTczNTI4LzgwODU2Ni5wbmc=/original/PevmiQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTczNTI4LzgwODU2OC5wbmc=/original/0%2BN5wt.png]]
<p>Everything I drew in 2020, collected in one handy, high quality PDF for your viewing convenience.</p>
<p>Includes occasional developmental sketches or WIP shots, as well as some work I haven't publicly shared online!</p>
<p><u>Categories include:</u></p>
<ul><li>Original Work</li><li>Weirdogs-Related Art</li><li>Sketch Requests</li><li>Commissions and Gift Art</li><li>Fanart</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvODc0Mjg1LzQ5MTcyNDkuanBn/original/A8uFpO.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODc0Mjg1LzQ5MTcyNTguanBn/original/PxWrQz.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODc0Mjg1LzQ5MTcyOTIuanBn/original/XKfjw%2F.jpg]]
<p>Everything I drew in 2021, collected in one handy, high quality PDF for your viewing convenience.
</p>
<p>Includes occasional developmental sketches or WIP shots, as well as some work I haven't publicly shared online!
</p>
<p><u>Categories include:</u>
</p>
<ul><li>Original Work
</li><li>Weirdogs-Related Art
</li><li>Sketch Requests
</li><li>Commissions and Gift Art
</li><li>Fanart
</li><li>Animations
</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM1NTc4OS83ODkyMDgzLmpwZw==/original/U559Wr.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM1NTc4OS83ODkyMDg0LmpwZw==/original/hom2Zk.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM1NTc4OS83ODkyMDg2LmpwZw==/original/TSielG.jpg]]
<p class="text-center"><strong>Six Figures Under</strong></p>
<p class="text-center"><strong>or</strong></p>
<p class="text-center"><strong>You Went Through Ten Years Of Necromancy School And They Never Taught You How To Market Yourself.</strong></p>
<p><br></p>
<p>A series of 6 solo micro-games about being a freelance necromancer:</p>
<ol><li>False Life Advertising - Write a Craigslist ad</li><li>Dead Ringer - Record a message for your answering machine</li><li>A Day in the Life - Journal about a revivification job</li><li>Cheap as Dirt - Write a recipe</li><li>At Death’s Door - Journal about work following you home</li><li>Life Insurance - Write instructions for your own revivification</li></ol>
<p></p>
<p>Every purchase at $3+&nbsp;will add 1 community copy to the pool.</p>
<p>Submitted to the <a href="https://itch.io/jam/spring-from-the-graves-jam" target="_blank">Spring From the Graves Jam</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAxMjI2My81NzY3MDYxLmpwZw==/original/IPqMew.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAxMjI2My81NzY3MDcyLmpwZw==/original/aUVEMx.jpg]]
<p>(does <strong>not </strong>include a Steam key - if you want that, go buy it on Steam, thanks!)<br></p>
<p>You're a lonely lil' bird, and your Big Friend has hung up their board for good. Their job sucks, and lately, they're barely ever home to play with you. You're gonna fix all that with the power of being a chill little skateboarding bird. You may be tiny, but the more you skate, the more following you get, the more the world of bird skating will open up. Birds will come check out your park, help you find more parks, and together you'll (somehow) fix Big Friend's life! Above all else, skate birds try their best.</p>
<ul><li>Explore lots of bird-sized parks, with simple controls familiar to any pro skating tiny hawk.</li><li>Find fancy clothing, secret mixtapes of new music, birbs that need your help, and more!</li><li>Skate to an original low-fi birb-hop soundtrack!</li></ul>
<p>And if you bail, you just get back up - because above all else, skate birbs try their best! <br></p>
<p>&lt;play the trailer up top to make music for this dancing birb&gt;<br></p>
<figure><img src="https://img.itch.zone/aW1nLzIyOTA0MjQuZ2lm/original/biP4ZI.gif" loading="lazy"><br></figure>

<iframe width="720" height="450" src="https://www.youtube.com/embed/F0Dr9YBq_u0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDMxMTE0LzY5NTUxNTkucG5n/original/QhvsOv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDMxMTE0LzY5NTUxNTYucG5n/original/fyQiGc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDMxMTE0LzY5NTUxNjAucG5n/original/Cas8rm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDMxMTE0LzY5NTUxNjIucG5n/original/6XC3%2Bp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDMxMTE0LzY5NTUxNTgucG5n/original/J4GuR7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDMxMTE0LzY5NTUxNTcucG5n/original/6CD7MW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDMxMTE0LzY5NTUxNjEucG5n/original/aRwy9P.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDMxMTE0LzY5NTUxNjMucG5n/original/TP38WV.png]]
<p><em>Congratulations, you've escaped the bonepile!</em></p>
<p><em>You've found both tibias, both fibulas, and all those pesky little phalanges. But you're not done yet! You're still deep in the dungeon with the clinking and clunking, the grinding and gnashing of the angry fortress standing between you and freedom. And don't think the bonepile is going to give up that easy.</em></p>
<p><em>So be quick, run as fast as your bony little legs will carry you, And, no matter what, don't give up, skeleton!</em></p>
<p>Skelerun is a randomly generated platformer where you race against the clock to escape a dungeon littered with all manner of tricks, traps, and hazards before the way out slams closed.</p>
<p><br></p>
<p>Would you like to have this game's sprites available as a kit to build your own games? Good news! They are all available <a href="https://firesidestudio.itch.io/pixel-skeleton-dungeon-pack" target="_blank">HERE</a> as a standalone package!  <br></p>
<p><br></p>
<p><br> <br><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/sFJTjm1OjlA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzQ3NjA3LzQ2NTk5NzgucG5n/original/CCyCXd.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQ3NjA3LzQ2NTk5NzYucG5n/original/jFNs95.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQ3NjA3LzQ2NTk5NzcucG5n/original/CTXJh8.png]]
<p><strong><a href="https://biscuitfundgames.com/products/skirmish-wallet-friendly-wargaming" rel="nofollow noopener" referrerpolicy="origin">Physical copies now available at biscuitfundgames.com!</a></strong></p>
<p><strong>Skirmish </strong>is a tactical wargame depicting combat encounters between two small armies, battling either for objectives or for annihilation. Unlike similar wargames, however, Skirmish does not use miniatures or measurements, and is played entirely with dice and an eight-by-eight square grid. The aim is a wargame with a low barrier to entry that’s accessible on a tight budget, with simple base rules but plenty of space to build on.</p>
<p><span style="color: inherit; font-size: inherit">The </span><strong style="color: inherit; font-size: inherit">Skirmish </strong><span style="color: inherit; font-size: inherit">core rulebook features the&nbsp;Tamerlane Wars. Taking&nbsp;place on war-torn Tourlian, the industrialised war machine of the Mordaunt Empire clashes endlessly with the loosely aligned states of the Ventrasse Alliance. Though the endless Tamerlane Wars have now become the norm for the people of Tourlian, very few know that the war itself is the result of an coup d'état by the Mordaunt prince-regent Beauregard - a means to both consolidate his power and stamp out the sorcerous traditions of Witch-Queen Ventrasse.</span></p>
<p><img src="https://img.itch.zone/aW1nLzUxNTY3NDcucG5n/original/4EtXNC.png" loading="lazy"></p>
<p class="text-center"><em>A spread from the rulebook, introducing&nbsp;the Ventrasse Alliance</em></p>
<p><strong>Skirmish: Wallet Friendly Wargaming</strong> features:</p>
<ul><li>20 armies to get right into combat with, ranging from assassins and&nbsp;cavalry to&nbsp;steampunk mechs and priests of unreality</li><li>Optional rules for objective play</li><li>Guidelines to create your own armies and worlds</li><li>Art by <a href="https://alyssakrasnansky.carrd.co/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Alyssa&nbsp;Krasnansky<br></a></li><li>A demo version with the full rules and two armies to try out the system with</li></ul>
<p><strong>Press</strong></p>
<p>Dicebreaker -&nbsp;<a href="https://www.dicebreaker.com/games/skirmish-wallet-friendly-wargaming/news/skirmish-wallet-friendly-wargame-kickstarter" rel="nofollow noopener" referrerpolicy="origin">Budget wargame Skirmish gives you Warhammer-like battles for a tenner</a></p>
<p>Featured in Tabletop Gaming Magazine's&nbsp;<a href="https://www.tabletopgaming.co.uk/News/weekly-kickstarter-round-up-wednesday-19th-august" rel="nofollow noopener" referrerpolicy="origin">Weekly Kickstarter Round Up: Wednesday 19th August</a><br></p>
<p>Wyrd Science - <a href="https://mailchi.mp/22eab17c1c10/gazetteer13" rel="nofollow noopener" referrerpolicy="origin">Gazetteer 13 PLAY Review</a></p>
<p><strong>Awards:</strong><br></p>
<p>The <a href="https://aggrocrab.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Aggro Crab</a> Seal of Quality&nbsp;</p><p><strong>Additional Content:</strong><br></p><ul><li>Bonus armies on the <a href="https://www.patreon.com/biscuitfund" rel="nofollow noopener" referrerpolicy="origin">Biscuit Fund Games Patreon</a></li><li><a href="https://acorpseamongus.itch.io/the-war-rages-on">Skirmish:&nbsp;The War Rages On</a>, by Joe Young</li><li><a href="https://acorpseamongus.itch.io/skirmish-we-are-but-linebackers">Skirmish:&nbsp;We Are But Linebackers</a>, by Joe Young</li></ul>
<p><em>With thanks to the kind support of our 235 Kickstarter backers, Skirmish was funded. If you backed the project but didn't receive&nbsp;an email with your code for the game, send a DM on Twitter to @BiscuitFundTTG, or through Kickstarter message. </em></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTAwMDc2LzUxNTA4ODkucG5n/original/jWJNOB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTAwMDc2LzUxNTMyMTgucG5n/original/MnhQKa.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTAwMDc2LzUxNTMyMTAucG5n/original/ms%2BO0p.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTAwMDc2LzUyMTQ1MjYucG5n/original/%2FiPgyK.png]]
<p>Sky Rogue is a fwooshy rogue-lite action flight simulator! Blow things up over land, sea, and air, on an infinite number of procedurally-generated islands. &nbsp;Choose one of a diverse set of aeros and kit it out with a dizzying array of weaponry. Go toe-to-toe with enemy aces or assault giant flying aircraft carriers, but watch out for volleys of missiles; when you die, you're dead.</p>
<p><a href="http://store.steampowered.com/app/381020/" rel="nofollow noopener" referrerpolicy="origin"><img src="https://i.imgur.com/ZD2uTs2.png" loading="lazy"></a> <strong>Steam key included! </strong>(EXCEPT as part of the Racial Justice Bundle, the Palestine Aid Bundle, or Bundle for Ukraine)<strong><br></strong></p>
<p>
	<strong>If you buy the game here on itch.io, the team will see more of the money.</strong>
</p>
<p>
	<strong><a href="http://www.rockpapershotgun.com/2014/02/11/blue-sky-fragging-sky-rogue/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Rock Paper Shotgun</a> says:</strong>
</p>
<p>
	<em>"...it's a sweet little arcade shooter. It's immediately welcoming and then tougher than you'd expect..."</em>
</p>
<p>
	<strong><a href="http://www.eurogamer.net/articles/2014-02-17-flight-of-the-kondor-sky-rogues-dogfighting-glory" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Eurogamer</a> says:</strong>
</p>
<p>
	<em>"Speed and fury and wide open space: sat inside a Kondor - or even better, parked just behind it as it loops and snarls - air combat doesn't get much better."</em>
</p>
<p>
	Talk with other players in the 
	<a href="http://www.reddit.com/r/skyrogue/" rel="nofollow noopener" referrerpolicy="origin">official subreddit, /r/skyrogue</a>!
</p>
<p>
	Follow progress and bask in animated GIFs 
	<a href="http://skyroguegame.tumblr.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">on the devlog</a>!<span></span>
</p>
<p>
	Programming: Kenny Backus (@nihilocrat)
</p>
<p>
	Art: Charles Blanchard (@DelkoDuck)
</p>
<p>
	Music: Phonetic Hero (Otherworld Agency)</p>
<p>
	<strong>YOUTUBE / LET'S PLAY PEOPLE:</strong> Feel free to create, post, and monetize videos of Sky Rogue and any other game I make!
</p>
<p><strong>MODDERS:&nbsp;</strong>You can find the Steam Workshop Uploader here (scroll down to "Downloads":<br> <a href="https://github.com/nihilocrat/SteamWorkshopUploader" rel="nofollow noopener" referrerpolicy="origin">https://github.com/nihilocrat/SteamWorkshopUploader</a><br></p>
<p>You can quickly preview your changes without having to constantly restart the game using this tool:<br><a href="https://www.dropbox.com/s/flcwocfp259dbh0/skyrogue_mod_previewer.zip?dl=0" rel="nofollow noopener" referrerpolicy="origin">Sky Rogue Mod Previewer - Build 1</a><br></p>
<p>If you want to make "new"-style mods, creating asset bundles in the Unity engine, download the latest mod tool project files from its github page:<br></p>
<ul><li>Go to <a href="https://github.com/nihilocrat/SkyRogueModTool" rel="nofollow noopener" referrerpolicy="origin">https://github.com/nihilocrat/SkyRogueModTool</a></li><li>Click "Clone or Download" then "Download ZIP"</li></ul>
<p>Bugs reports, can be sent to <strong>support@skyroguegame.com</strong>
</p>
<p>Questions, comments, etc. can be sent to <strong>contact@skyroguegame.com</strong></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/RGFPwx31O7o" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjQ3Lzc3Njk2MS5naWY=/original/mt55sP.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjQ3Lzc3Njk2Mi5naWY=/original/Wo%2Bjq0.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjQ3Lzc3Njk2NS5naWY=/original/Z1x8AX.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjQ3LzY0MDA1LmdpZg==/original/SBi6Hi.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjQ3Lzc3Njk2Ni5naWY=/original/YJdgI2.gif]]
<h3>Skyling: Garden Defense is an action-arcade maze game with 30 levels of mayhem.</h3>
<p>
	Touch every square without being caught by a monster to rescue the garden. Use elevators, gates, switches and sleeping cats to your advantage! Inspired by arcade classics like Pac-Man, Q*Bert and Crystal Castles, Skyling: Garden Defense is challenging, maze-game fun for all ages.
	<br>
</p>
<p>
	<strong>Features</strong>
</p>
<ul>
	<li>30 gardens to rescue</li>
	<li>A variety of unique monsters</li>
	<li>Simple and intuitive game play</li>
	<li>Mouse, keyboard or gamepad controls</li>
	<li>Three star scoring system to challenge skilled players</li>
</ul>
<p>
	More information is available at 
	<a href="http://www.mightystudios.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">www.mightystudios.com</a>
</p>
<p>
	Skyling is also available on <a href="http://bit.ly/SkylingXboxOne" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Xbox One</a> and <a href="http://bit.ly/SkylingSteam" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Steam</a>!
</p>
<iframe src="https://gfycat.com/ifr/MagnificentIncompatibleAnemoneshrimp" frameborder="0" scrolling="no" width="640" height="359" allowfullscreen=""></iframe>
<p>
	<strong>Thanks for downloading &amp; supporting Indie Games!</strong>
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzY2MS8yMDM3MS5wbmc=/original/xr5LYZ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzY2MS8yMDM3Mi5wbmc=/original/IGtW2d.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzY2MS8yMDM3My5wbmc=/original/UVM6DR.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzY2MS8yMDM3NC5wbmc=/original/EozEPE.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzY2MS8yMDM3NS5wbmc=/original/4eA1Nl.png]]
<p>These tracks are from 3 of the 5 minigames found in Slime-San, a fast-paced platformer by Fabraz. However, these tracks are in the original BPM they were made in and include a draft of the Karting track.<br><br>Edgar Omar Castro Jr. (EonNomad) - Composer<br>Edgar Omar Castro Sr. (MazinEd) - Composer, Producer</p>

[img width=500 [https://img.itch.zone/aW1nLzM1OTA2NzcucG5n/original/ornp8q.png]]
<p><em><strong>A journey to the glaciated world of Mora's Misstep</strong> lands the players in the middle of a whodunit aboard the&nbsp;</em>Nantucket&nbsp;Sleigh Ride<em> as they attempt to uncover the truth behind the mysterious murders plaguing the ship. Will they reveal the culprit or suffer a cold, lonely&nbsp;demise on the face of the unforgiving ice?</em></p>
<p>This is an official&nbsp;38 page adventure for Troika! Includes macramé owls and murder mysteries on ice.</p>
<p>Find <a href="https://melsonian-arts-council.itch.io/troika-numinous-edition">Troika here</a> and order physical copies of <a rel="nofollow noopener" referrerpolicy="origin">Slow Sleigh to Plankton Downs here</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MjUwMS82MjkyNTQ2LnBuZw==/original/a7WIzo.png]]
<h2><img src="https://img.itch.zone/aW1nLzgxNjYwMjAucG5n/original/XiHNhp.png" loading="lazy"> Introduction</h2>
<p>Slow down time, fire off tons of bullets and defeat dopey ghosts. That is what <em><strong>Sly Panda</strong></em> is all about! <br><br><em><img src="https://img.itch.zone/aW1nLzgxNzk1MTIucG5n/original/2E6fIq.png" loading="lazy"> - That is what you get for destroying their precious urn ...  </em><br></p>
<h2>Controls</h2>
<p> <strong>Keyboard</strong><br>Arrow keys, Z and X, P for pause</p>
<p><img src="https://img.itch.zone/aW1nLzgxNzk1NzIucG5n/original/pDP9ai.png" loading="lazy"><br></p>
<p><strong>Controller</strong><br>D-pad / Joystick,&nbsp; A/B or X/Y, Start for pause<br><img src="https://img.itch.zone/aW1nLzgxNzk2MTUucG5n/original/HWCBdP.png" loading="lazy"><br></p>
<h2>Credits </h2>
<p> <strong><img src="https://img.itch.zone/aW1nLzgxNjU2NjgucG5n/original/fnDCWd.png" loading="lazy"> - <em>Sebastian Lind</em></strong><br>Follow me on <a href="https://twitter.com/Elastiskalinjen" rel="nofollow noopener" referrerpolicy="origin"><strong>Twitter</strong></a><strong> </strong><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/JPJjoC5jLoA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQwMTE4My84MTgwNTcyLmdpZg==/original/BjrStP.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQwMTE4My84MTgwNTgzLmdpZg==/original/P2CGkj.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQwMTE4My84MTgwNTg0LmdpZg==/original/ttU6hD.gif]]
<h2 class="text-center">Snacks and spikes are falling from the sky!</h2>
<h3 class="text-center">How to Play</h3>
<p>You, Aspen, must run around dodging the falling spike balls and scoffing the delectable foodstuffs.</p>
<p>- Eat 5 snacks to clear a round. Try to grab 5 of the same grub in a row for a perfect bonus!
  </p>
<p>- Keep an eye out for the rare heart and star power-ups. Snag a star to gain temporary invincibility for the round or capture a heart for an extra life!
  </p>
<p>- Get hurt by the spike balls and you lose a life. Get hit enough times though, and your game is over!
</p>
<h3 class="text-center">Credits</h3>
<p>Snack Scoffer was created solely by Niall Chandler&nbsp;in the Pico-8 game engine. I had a lot of fun making the game, learning many things about game development and programming in the process.&nbsp;</p>
<p>If you have any feedback about the game, then by all means give it. I'd love to hear it, and I'd love to thank you so much for playing my game.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/ZZYukARlJDk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTEzMTM0My82NTU0Mzg3LmdpZg==/original/fCXHFs.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEzMTM0My82NTU0Mzg4LmdpZg==/original/8i0Pu3.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEzMTM0My82NTU0NDA3LmdpZg==/original/zxN98I.gif]]
<p>(Oct-10-2019) - UPDATE 1.0.0.1:</p>
<ul><li>Dramatically decreased popping volume of small blue score balloons</li><li>Regressed control time bug in which players could regain time faster by repetitively pushing the left stick in any direction over and over.</li><li>Added additional details and names to the credits text document file.</li></ul>
<h1 class="text-center">Summary:</h1>
<p class="text-justify text-center">No control? No worries!</p>
<p>Ride inside one of 50 inflatable tubes that stick and ride together as one on contact all the way to the bottom of one tall mountain through multiple winding routes and areas!&nbsp;Pop as many balloons as possible to gain the most points as you race to the bottom! Playable with&nbsp;up to four players via local splitscreen, Snowdown boasts a casual pick-up-and-play focus with a low barrier to entry!</p>
<p class="text-center">Remember: the only way is down!&nbsp;</p>
<p class="text-center"><del>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</del></p>
<h3 class="text-center">Instructions:</h3>
<p>Players each have a yellow Control Timer on their screen that slowly replenishes by itself when they aren't moving around. The higher the timer gets, the more control they can exert over their inflatable tube. However, when they start to move around, the timer will start to tick down to zero at which point they won't be able to move at all for a certain amount of time.</p>
<p class="text-justify">Riding through a Time Gate will grant more control time back for players who are able to reach it ahead of others and riding through yellow Hazard Rings will set a trap in one of the 36 different zones for other tubes currently riding through it! Players then get to watch the event play out in real time on a giant screen as the trapped tubes are scrambled in the chaos!</p>
<p class="text-justify">Inspired by rollercoaster action chase films, classic arcade titles of the 1990s and modern Battle Royale games, Snowdown is designed to exhibit a more "chilled-out" approach to traditional concepts of game flow, complimenting an idle brand of party atmosphere, allowing players the freedom to step back and let a session play out by itself and return later on or even let someone else take over if they so choose.</p>
<p class="text-center"><del>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</del><br></p>
<p class="text-justify">So hop in and crash, bash and slide your way into the biggest racing mosh ten thousand feet above! Hold on tight...now let go!</p>
<p class="text-justify">If you encounter any issues, feel free to leave any suggestions or feedback with a comment. Feel free to also get in touch via the Twitter handle @BonsaiTreehouse where you can catch up on general game devlopment news and all the goings on in the world!</p>
<p class="text-center"><del>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</del><br></p>
<h1 class="text-center">CONTROLS:</h1>
<h3 class="text-center">Gamepad In-Game:</h3>
<ul><li>Left Option = PAUSE</li><li>Left Stick = STEER</li><li>D-Pad = LOOK AROUND</li></ul>
<h3 class="text-center">Keyboard In-Game:</h3>
<ul><li>P = PAUSE</li><li>A = STEER LEFT</li><li>Q&nbsp;= LOOK LEFT</li><li>D = STEER RIGHT</li><li>E = LOOK RIGHT</li><li>W = LOOK UP</li><li>S = LOOK BEHIND</li></ul>
<h3 class="text-center">Keyboard In-Menus:</h3>
<ul><li>Arrow Keys: Toggle UI Buttons</li><li>Space Bar/Enter: Confirm Selection</li></ul>
<h3 class="text-center">Gamepad In-Menus:</h3>
<ul><li>D-Pad/ Left Stick: Toggle UI Buttons</li><li>Lower Face Button: Confirm Selection</li></ul>
<p class="text-center"><del>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</del><br></p>
<p class="text-center">Snowdown uses Unreal® Engine. Unreal® is a trademark or registered trademark of Epic Games, Inc. in the United States of America and elsewhere. Unreal® Engine, Copyright 1998 – 2019, Epic Games, Inc. All rights reserved.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/7PFTxU3g0Uc" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzc4ODgwLzI2NDU2MzcucG5n/original/N0a1wj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc4ODgwLzI2NDU2NTguanBn/original/7kRBYZ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc4ODgwLzI2NDU2NDEucG5n/original/huifVm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc4ODgwLzI2NDU2NTIucG5n/original/h9gUYF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc4ODgwLzI2NDU2NjAuanBn/original/Ls9EW0.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc4ODgwLzI2NDU2NDAucG5n/original/W6hYlC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc4ODgwLzI2NDU2NDYucG5n/original/zbv4qY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc4ODgwLzI2NDU2NDgucG5n/original/ULjjDZ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc4ODgwLzI2NDU2NTYuanBn/original/Oz9NGh.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc4ODgwLzI2NDU2NDcucG5n/original/b3HLv%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc4ODgwLzI2NDU2NDUucG5n/original/8rwUWr.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc4ODgwLzI2NDU2NjEuanBn/original/3gPo4x.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc4ODgwLzI2NDU2NDIucG5n/original/HLM9oO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc4ODgwLzI2NDU2NDMucG5n/original/bMaFw4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc4ODgwLzI2NDU2NTUuanBn/original/d%2BOpL9.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc4ODgwLzI2NDU2MzkucG5n/original/F95VyQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc4ODgwLzI2NDU2NTMucG5n/original/dDh%2Fbn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc4ODgwLzI2NDU2NTEucG5n/original/rK9CvU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc4ODgwLzI2NDU2NTcuanBn/original/uBmL2J.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc4ODgwLzI2NDU2NDQucG5n/original/QGuWci.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc4ODgwLzI2NDU2NDkucG5n/original/%2FoM9At.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc4ODgwLzI2NDU2NTkuanBn/original/wKyFPq.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc4ODgwLzI2NDU2MzgucG5n/original/BOV8v4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc4ODgwLzI2NDU2NTAucG5n/original/fJ3hQH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzc4ODgwLzI2NDU2NTQucG5n/original/jE%2BXQ3.png]]
<p>Do you remember what happened in the last game? Who saved which royalty? Who conquered which tavern? Who died laughing? Now, it doesn't matter. This is the game where people bet the <del>lives</del> gold to tell the most outrageous stories while the NPCs interrupt with their versions. It's a fantasy rumor mill.</p><p>So You're in a Tavern is about telling outrageous stories about adventures that are absolutely true in every way. It uses a deck of playing cards and a few tokens to help tell the tales and determine a winner. It can be played with a group or solo.</p>
<p>Players take turns drawing cards to prompt for an outrageous story. As the player tells their story, other players add wagers to change the story. <em>"I'm sorry, Sir Pantsonfire, but wasn't it a giant daisy, not a fire-breathing dragon?"</em> The player can accept the wager and incorporate the change or deny it by adding a coin of their own.<br></p>
<p><img src="https://img.itch.zone/aW1nLzgyMzM2MTQucG5n/original/tPuM3m.png" width="150px" align="right" loading="lazy"></p>
<h2>You need:</h2>
<ul><li>A deck of cards with the jokers removed.</li><li>Some tokens to bet with. Five per player is ideal. Gold coins are ideal, but any token at all will work.</li></ul>
<p><em>It was a story as old as time. Four adventuring friends swaggered into a tavern. Sir Gillaboste clanked to the bar and shouted "Barkeep! An ale for my friend!" while Himbo the Thirsty unholstered his trusty lute.&nbsp;</em></p>
<p><em>The round and bald barkeep poured what passed as ale into four dirty glasses while keeping an eye on Shadow, who kept slipping her hands towards the purses of the honest customers. "What brings you back to our fine village?"
</em></p>
<p><em>Grassy the White waggled their fingers, summoning a translucent hand to fetch their drink to a table in the corner.
</em></p>
<p><em>"It's like this," Gillaboste said. "We were minding our own business, guarding this caravan of antique sculptures when...."
</em></p>
<p><em>"Wait!" cried the buxom serving woman. "I heard it was a wagon of untaxed whiskey."
</em></p>
<p><em>"So it was. Anyway, as we entered the Darkenscairee Wood, we were beset by bandits and..."
</em></p>
<p><em>"Hold up," the mayor walked into the room, twirling his mustache. "I have it on good authority that you were accosted by demons."
</em></p>
<p><em>"Right you are!" cried Gillaboste. "But they were wearing masks. Clearly bandits in training. And they had taken a princess hostage."
</em></p>
<p><em>"And by princess,” asked the stableboy. “You mean the crown prince?"&nbsp;
</em></p>
<p><em>"Well, yes, but there was a dragon..."
</em></p>
<p><em>"Wasn’t it two dragons?" asked the red-faced blacksmith.
</em></p>
<p><em>"Son of a...who's telling this story? Just give me a drink."
</em></p>
<p><em>"Son, you can't can't get mad at the rumor mill for beating you here."</em>
</p>
<p><img src="https://img.itch.zone/aW1nLzgyMzM2MzAucG5n/original/ZwtyMv.png" loading="lazy"></p>
<p>So You're in a Tavern can be played as a standalone game or it can be used as a rumor mill for another game to weave tales of the players' exploits and influence how the world sees the party.<br></p>
<p>So You're in a Tavern is a hack This One Time, which, in turn, is a hack&nbsp;of&nbsp;<a href="https://unknowndungeon.itch.io/i-went-to-japan-once" target="_blank">I Went to Japan Once</a>&nbsp;by James Lennox-Gordon and is partially inspired by The Extraordinary Adventures of Baron Munchausen. It uses the&nbsp;<a href="https://speakthesky.itch.io/typeface-dicier" target="_blank">Dicier font</a>&nbsp;by Speak the Sky.
</p>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM5MDU1Ni84MTAyNDIxLnBuZw==/original/6AQecZ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5MDU1Ni84MTAyMjkyLnBuZw==/original/fDND7K.png]]
<h3><em><strong></strong><strong></strong></em>Sodalitas : <em>(Latin, f)</em> Sodalité, camaraderie.</h3>
<p><em>(English-reading friends, please scroll down.)</em></p>
<p><em>Sodalitas</em> est un jeu de rôle en une page (et quelque) écrit et illustré par <a href="http://itch.io/janvanhouten" target="_blank">Jan&nbsp;Van&nbsp;Houten</a>, édité et mis en page par <a href="http://itch.io/nicolasfolliot" target="_blank">Nicolas&nbsp;Folliot</a>. Ces règles ont été&nbsp;conçues et testées sur des parties courtes avec beaucoup de joueurs enthousiastes, et sont accompagnées de personnages&nbsp;prêts-à-jouer et tout ce qu’il faut pour jouer.</p>
<ul><li>Une création d'aventuriers&nbsp;en 4 mots…</li><li>… autour d'une guilde et sa devise&nbsp;;</li><li>Des règles simples pour faire avancer l'aventure…</li><li>… qui mettent en avant l'entraide et les décisions collégiales&nbsp;;</li><li>8 aventuriers déjà créés pour commencer à jouer très vite…</li><li>… et un système d'évolution de la guilde pour continuer les aventures&nbsp;!</li></ul>
<p>Tout ceci tient à l'origine dans 4 pages, mais de nombreux bonus viennent s'ajouter au fur et à mesure des versions (actuellement 1.5)&nbsp;:</p>
<ul><li>BONUS 1.5 : Une page d'accueil/sommaire cliquable</li><li>Les règles (BONUS 1.5 : ajustements et ajout d'un glossaire)</li><li>L'évolution et la fiche de guilde</li><li>Les fiches d'aventuriers (BONUS 1.5 : 2 nouveaux formats de fiches avec plus et encore plus de place pour dessiner)</li><li>8 camarades prêtes pour l'aventure</li><li>BONUS 1.5 : Une guilde pré-illustrée</li><li>BONUS 1.1 : Un pack de figurantes à utiliser seules ou en tant que guilde concurrente</li><li>AIDE BONUS 1.5 : Une fiche d'aventurier remplissable&nbsp;(PDF interactif)</li><li>AIDE BONUS 1.5 : Une fiche de guilde remplissable (PDF interactif)</li></ul>
<p>Le contenu de&nbsp;<em>Sodalitas</em>&nbsp;est enrichi au gré de l'inspiration de son auteur Jan&nbsp;Van&nbsp;Houten, grâce à des extensions qui proposeront de nouveaux contenus et outils, comme par exemple : une guilde concurrente de figurantes à mettre dans les pattes des aventuriers (Les Collectionneurs dans la V1.1),&nbsp;une liste d'obstacles tout prêts, un monument aux aventuriers disparus, des règles en dix pages pour la gestion des véhicules, un système de combat naval…&nbsp;Ces extensions sont ajoutées gratuitement sur cette page pour toutes celles et ceux qui ont acheté le jeu.<br></p>
<p>Ces règles sont compatibles avec toutes sortes de modules de jeu de rôle, mais si vous voulez en profiter pour découvrir des aventures spécialement créées dans l'esprit de <em>Sodalitas</em>, il y a ces <a href="http://jdrlab.itch.io/aventures-en-une-page" target="_blank">Aventures en une page</a>.</p>
<h4>Vous êtes éducatrice ou éducateur ?</h4>
<p>S<em>odalitas</em>&nbsp;et les <em>Aventures en une page</em> ont été conçues entre autres pour vous, et nous souhaitons que vous puissiez y faire jouer le plus d'enfants possible, alors pour vous c'est gratuit si vous le souhaitez&nbsp;! Envoyez simplement un message à <a href="mailto:aventures-sodalitas@jdrlab.fr" target="_blank" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">aventures-sodalitas@jdrlab.fr</a> pour vous présenter.<br></p>
<h4>Quelques mots de l'auteur&nbsp;<a href="http://itch.io/janvanhouten" target="_blank">Jan Van Houten</a></h4>
<p>Ce jeu est né de la jam&nbsp;<a href="https://itch.io/jam/donjons-pour-debutants" target="_blank">Donjons pour débutants</a>&nbsp;et de mon besoin de proposer un jeu simple mais « carré »&nbsp;pour mon club de JdR. Nos sessions font 55&nbsp;minutes, j’ai régulièrement 7/8&nbsp;joueurs très enthousiastes et imaginatifs, donc j'ai dû m'adapter et développer des méthodes appropriées.</p>
<p>Je remercie chaleureusement:</p>
<ul><li><em>Ma moitié qui a eu la bonne idée de m’offrir une tablette graphique, et fait preuve d’une patience exemplaire quand il faut choisir entre deux images différentes de trois pixels ;</em></li><li><em>Les gens de Twitter et du Discord cestpasdujdr. Notamment&nbsp;<a href="https://emojk.itch.io/" target="_blank">Côme&nbsp;Martin</a>,&nbsp;<span class=""><span class=""><a href="https://guillaumejentey.itch.io/">Guillaume&nbsp;Jentey</a></span></span>&nbsp;et Martin Lefebvre pour leur relecture en profondeur</em><em>;</em></li><li><em>Les élèves et leur accueil bien trop enthousiaste de mes idées loufoques.</em></li></ul>
<h4>Et un dernier mot pour les fontes</h4>
<p>Ce jeu a été mis en page à l'aide de fontes libres&nbsp;:</p>
<ul><li>Sans Merci, une fonte de Jack Usine distribuée gratuitement par la manufacture de lettres SMeltery –&nbsp;<a href="http://www.smeltery.net/fr/fontes/sans-merci" rel="nofollow noopener" referrerpolicy="origin">http://www.smeltery.net/fr/fontes/sans-merci</a></li><li>Sylexiad Sans, une fonte du Dr Robert Hillier&nbsp;créée spécifiquement pour les personnes dyslexiques –&nbsp;<a href="https://www.sylexiad.com/fonts/sylexiad" rel="nofollow noopener" referrerpolicy="origin">https://www.sylexiad.com/fonts/sylexiad</a></li><li>Dicier, une fonte de symboles ludiques par Speak the Sky, sous licence CC BY 4.0 –&nbsp;<a href="https://speakthesky.itch.io/typeface-dicier">https://speakthesky.itch.io/typeface-dicier</a></li></ul>
<figure><img src="https://img.itch.zone/aW1nLzQzMTI5NjAucG5n/original/TxeFzg.png" style="color: inherit; font-size: inherit" loading="lazy"><br></figure>
<p><span></span></p>
<h2>Sodalitas</h2>
<h3><strong>Sodalitas: <em>(Latin</em></strong><em>)</em> Sodality, comradery.</h3>
<p><em>Sodalitas</em> is a one page (and some) tabletop roleplaying game, written and illustrated by <a href="http://itch.io/janvanhouten" target="_blank">Jan&nbsp;Van&nbsp;Houten</a>, edited and laid out by <a href="http://itch.io/nicolasfolliot" target="_blank">Nicolas&nbsp;Folliot</a>. These rules have been&nbsp;designed and tested for short sessions with many enthusiastic players, and are here presented with ready-to-play adventurers&nbsp;and everything you&nbsp;need to play.</p>
<ul><li>Adventurers' creation in 4 words…</li><li>... around a guild and its motto;</li><li>Simple rules to move the adventure forward…</li><li>… which emphasize mutual aid and collegial decisions;</li><li>8 ready-to-play adventurers to dive right away…</li><li>… and a guild evolution system to keep the adventures going!</li></ul>
<p>It used to fit in 4 pages,&nbsp; but many&nbsp;extras come with new versions (currently 1.5):</p>
<ul><li>BONUS 1.5: A welcoming / clickable TOC page</li><li>The&nbsp;rules (BONUS 1.5: tweaks and addition of a glossary)</li><li>The guild sheet and evolution rules</li><li>The adventurers sheets (BONUS 1.5: 2 new sheets formats with extra and extra-extra room to draw)</li><li>8 comrades ready for adventure</li><li>BONUS 1.5: A pre-illustrated guild</li><li>BONUS 1.1: Extras to use on their own or as a competing guild</li><li>HANDOUT BONUS 1.5: A fillable adventurer sheet (interactive PDF)</li><li>HANDOUT BONUS 1.5: A fillable guild sheet (interactive PDF)</li></ul>
<p>The content of&nbsp;<em>Sodalitas</em> is being enriched as inspiration strikes its author Jan&nbsp;Van&nbsp;Houten, with extensions that offer new content and tools, such as an extras rival guild to&nbsp;be placed on the adventurers' paths (The Collectors in V1.1), a list of ready-made obstacles, a&nbsp;monument to fallen adventurers, a ten-page rule set for vehicle management, a naval combat system… These extensions are added for free on this page for all those who have bought the game.</p>
<p>These rules are compatible with all kinds of role-playing modules, but if you want the opportunity to discover adventures created in the spirit of <em>Sodalitas</em>, check out these <em><a href="https://jdrlab.itch.io/adventures-on-a-single-page" target="_blank">Adventures on a single page</a></em>.</p>
<h4>Are you an educator?</h4>
<p><em>Sodalitas</em>, as the <em>Adventures on a single page</em>, have been designed for you, and we want you to be able to get as many children playing as possible, so you can get the game for&nbsp;free if you want! Just send a message to <a href="mailto:aventures-sodalitas@jdrlab.fr" target="_blank" rel="nofollow noopener" referrerpolicy="origin">aventures-sodalitas@jdrlab.fr</a> to introduce yourself.</p>
<h4>A few words from the author <a href="http://janvanhouten.itch.io" target="_blank">Jan Van Houten</a><a href="http://itch.io/janvanhouten" target="_blank" style="font-size: 21px"></a></h4>
<p>This project was born out of a&nbsp;<a href="https://itch.io/jam/donjons-pour-debutants" target="_blank">French "Dungeons for Beginners" jam</a>&nbsp;coupled to my need for simple but efficient game for my TTRPG club. Our sessions are 55&nbsp;minutes long, I regularly have 7/8&nbsp;very enthusiastic and imaginative players at the table, so I had to adapt and develop&nbsp;<span class="">r</span><span class="">elia</span><span class="">bl</span><span class="">e methods</span>.</p>
<p>I warmly thank:</p>
<ul><li><em>My partner, who had the good idea of offering me a graphic tablet, and shows exemplary patience when I have to choose between two images only three pixels apart;</em></li><li><em>People of Twitter and the cestpasdujdr Discord. In particular&nbsp;<a href="https://emojk.itch.io/" target="_blank">Côme&nbsp;Martin</a>, <span class=""><span class=""><a href="https://guillaumejentey.itch.io/">Guillaume&nbsp;Jentey</a></span>,&nbsp;</span>an</em><em>d Martin Lefebvre for their in-depth review and advice</em>s<em>;</em></li><li><em>My students and their over-enthusiastic reception of my goofy ideas.</em></li></ul>
<h4>One last word on fonts</h4>
<p>This game was laid out using free fonts:</p>
<ul><li>Sans Merci, a Jack Usine font distributed for free by the SMeltery factory –&nbsp;<a href="http://www.smeltery.net/fr/fontes/sans-merci" rel="nofollow noopener" referrerpolicy="origin">http://www.smeltery.net/fr/fontes/sans-merci</a></li><li>Sylexiad Sans, a font developed by Dr. Robert Hillier&nbsp;for adult dyslexic readers –&nbsp;<a href="https://www.sylexiad.com/fonts/sylexiad" rel="nofollow noopener" referrerpolicy="origin">https://www.sylexiad.com/fonts/sylexiad</a></li><li>Dicier, a gaming symbols font by Speak the Sky, under licence CC BY 4.0 –&nbsp;<a href="https://speakthesky.itch.io/typeface-dicier">https://speakthesky.itch.io/typeface-dicier</a></li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzM5NDY5LzUzNTQzODEucG5n/original/eUi%2FDH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzM5NDY5LzUzNTQzODIucG5n/original/U34Awg.png]]
<h1>Soft Focuses</h1>
<p>This is a journaling game about dealing with ADHD. At the end of every night you write a journal entry about a fictionalized version of yourself. They have attempted the same things you have throughout the day, but usually with very different results. Create stats for this new version of yourself and roll on modifier tables to see how different your day might have been.</p>
<p>While the designed version of the game and the bookmark character sheet are priced at $7, the plain text version of game will always be available for pay-what-you-want. There are also community copies of the designed version available if you are unable to. I highly encourage you to donate the money you would have spent on this game to organizations supporting ADHD and other neurodivergent issues. Might I recommend <a href="https://www.differentbrains.org/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Different Brains</a>?<br></p>
<h4>Note:</h4>
<p>This game is about trying to see our daily lives through others' experiences. As such, try to keep an open mind and be as caring for this "other you" as you can be. I also acknowledge that everyone's experiences are different and my experience with ADHD is not necessarily the experience of others. I have worked with others to help account for this and wish to be as inclusive as I can be with this game.<br></p>
<p>This game is also not meant to be a diagnostic or clinical tool of any sort. The designer of this game is not a medical or mental health professional. If you suspect you have ADHD or another condition, please consult your primary medical caregiver or a specialist. <br></p>
<h4>Also of note</h4>
<p>I am currently researching a supplement that would include optional modifiers. These will deal with subjects like the process of trying to balance a medication dose, the inclusion of comorbidities, and the effects a menstrual cycle has on a medications effectiveness. I wish to cover these topics with care and need more time to cover them, but rest assured they are being thought of. If there is is something you feel should be included in this supplement, please feel free to reach-out and let me know.</p>
<h4>Lastly</h4>
<p> If you try the game, I would love to hear about your experiences with it. If you tweet about it with #SoftFocuses. I will also add more community copies for each thread I see.<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMzNzY4OC83ODMwMzUzLmpwZw==/original/F4JeJa.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMzNzY4OC83ODMwMzU0LmpwZw==/original/Fq%2FgDP.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMzNzY4OC83ODMwMzUxLmpwZw==/original/zMffTU.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMzNzY4OC83ODMwMzUyLmpwZw==/original/eIjuOj.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMzNzY4OC83ODQ2ODA1LmpwZw==/original/AnPQMI.jpg]]
<p><strong>** Please note: the original version has a small syntax error in screens.rpy line 876 with the font definition&nbsp;&nbsp;</strong><strong>(I added a space at the end that shouldn't have been there!) --- please download 2.0, or remove that space in the original file to stop crashes! :D</strong></p>
<p>This is a customized GUI for ren'py. It includes the PNG files and all of the code already programmed into a renpy file (Not Built). You can take the code and assets out, or rename the renpy game file and use it.</p>
<p><strong>This was made in Ren'py 7.3.5.606</strong></p>
<p><img src="https://img.itch.zone/aW1nLzQyMzEzNjEucG5n/original/hkMBtD.png" loading="lazy"></p>
<figcaption>Preview of the Soft Romance GUI including the color codes and the font.</figcaption>
<p></p>
<h3>Includes:</h3>
<ul><li>All Standard Screens</li><li>Textbox, Choices, and Quick menu</li><li>An "Extras" screen for Achievements, Endings and a CG gallery (Code Included!)</li><li>Code for everything already plugged in</li><li>Formatted for 1080x1920</li></ul>
<p>You can plug your script into the game file and change the name, or take the assets and code as needed.</p>
<p>The game uses an open source font "Oleo Script Swash Caps" which you can find for free: <a href="https://fonts.google.com/specimen/Oleo+Script+Swash+Caps" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Here</a></p>
<h3>Rights:</h3>
<p>If purchased you may use this project in commercial projects or free projects. You may not resell part of, or the whole GUI on it's own. You can modify the GUI and code to suit your needs.</p>
<p>You can credit me as Jaime Scribbles if you want, but it is not required.</p>
<h3>Instructions:</h3>
<p>Download, unzip, and enjoy! Some additional instruction included in the download, see below!</p>
<p><img src="https://img.itch.zone/aW1nLzQyMzMwMDQucG5n/original/u1oCc5.png" loading="lazy"></p>
<figcaption>You can find the instructions.txt file under the custom GUI file after it is unzipped. This is the same place where you would find the game folder, and the errors, log and traceback.</figcaption>
<p></p>
<h3>Sample Assets:</h3>
<ul><li><a href="https://alte.itch.io/uncle-mugens-backgrounds" target="_blank">Background Art by Uncle Mugen</a></li><li><a href="https://dejinyucu.itch.io/agustina-visual-novel-sprite" target="_blank">Sprite by DejiNyucu</a></li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzU2NjA5LzQyMjg3NzAucG5n/original/3jucQL.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU2NjA5LzQyMjg3NjIucG5n/original/vdm4Ae.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU2NjA5LzQyMzEzNjMucG5n/original/GEMYF%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU2NjA5LzQyMjg3NjQucG5n/original/bdGNdx.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU2NjA5LzQyMjg3NjMucG5n/original/wzAOzb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU2NjA5LzQyMjg3NjkucG5n/original/%2FWIE%2Ba.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU2NjA5LzQyMjg3NjYucG5n/original/1%2F2N1B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU2NjA5LzQyMjg3NjEucG5n/original/ugV78G.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU2NjA5LzQyMjg3NjcucG5n/original/gBpaNa.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU2NjA5LzQyMjg3NzEucG5n/original/nLPk65.png]]
<p><a href="http://www.sokobond.com/" rel="nofollow noopener" referrerpolicy="origin">www.sokobond.com</a></p>
<p>
	Sokobond is an elegantly designed puzzle game about chemistry. It's logical, minimalist, and beautiful - crafted with love and science.
</p>
<ul>
	<li>Over 100 levels of molecule making mind-benders </li>
	<li>Featuring a gorgeous original soundtrack by Allison Walker</li>
	<li>No chemistry knowledge required</li>
</ul>
<p>
	Awards:
</p>
<ul>
	<li>PAX10 2013 - Finalist</li>
	<li>IndieCade 2013 - Finalist</li>
</ul>
<p>
	All purchases include a Steam key.
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTc5OTkvNjc5MDIucG5n/original/KftGLP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc5OTkvNjc4OTcucG5n/original/sLTqcg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc5OTkvNjc5MDMucG5n/original/NH95%2BB.png]]

<h3>Solo Roleplaying - A brief introduction</h3>
<p>This is a guide to the barest essentials of solo roleplaying. If you are unfamiliar with how playing RPGs by yourself works at its core, this guide will help you get started.</p>
<p>
</p>
<p><strong>Reasons to play by yourself</strong></p>
<p>The most common reason tends to be not being able to find a suitable group to play with. While it’s true there are numerous online platforms and channels that make it easier to find people, it’s not a panacea. You can’t always find the kind of game and the kind of group you want, so you often end up compromising. Online games are also notorious for falling apart due to flaky attendance.<strong><br></strong></p>
<p>Solo roleplaying doesn’t have any of those drawbacks. When you have total control of your game, many of the dissatisfactions that exist when other people are involved disappear. No longer do you have to compromise on the choice of game systems, settings, or stories you want to experience. No character concepts will be rejected by someone else. No conflicting schedules or personality clashes. You are the most important person, and the only one whose opinion matters. You’ll also get to enjoy the aspects of roleplaying games that are generally the exclusive domain of game masters. Nothing is off limits to you.</p>
<p>If you find this work useful, please consider making a donation to <a href="https://goo.gl/S7UVQP" rel="nofollow noopener" referrerpolicy="origin">your local autism charity</a>.&nbsp;</p>
<p>Thank you!</p>

[img width=500 [https://img.itch.zone/aW1nLzM1MjExNTIucG5n/original/OHRC3n.png]]
<p><img src="https://img.itch.zone/aW1nLzgxNzY4NDkucG5n/original/PUJUmA.png" loading="lazy"></p>
<p>The world around us has fallen. Ancient ruins, reminders of a past that no one remembers, dot the fractured landscape. Civilization clings to survival with shaking claws, as the chaotic wild encroaches upon it. Civilization creates a foothold, a light in the darkness. But every time the light is snuffed out and darkness crawls forth again from the depths and pushes back civilization. So it has been for as long as anyone can remember.</p>
<p><strong>What is Songs of the Northlanders?</strong><br></p>
<p>This game is a nod to games that came before it; the classics, the fantasy heartbreakers, the retro-clones, the indie revolution. This is all of that. <em>Songs of the Northlanders&nbsp;is an OSR&nbsp;adjacent&nbsp;game compatible with monsters from B/X</em>. It&nbsp;requires at least 3 players to play. It’s best with 5, maybe 6. &nbsp;</p>
<p>Most of the players in this game take on the roles of characters who venture out on dangerous quests seeking gold and glory. It's about fighting monsters and getting loot. It's about trying to make it out alive. One of the players takes on the role of the Game Master (GM) who adjudicates the rules and is in charge of the overall pacing.
</p>
<p>This is a roleplaying game. A game that will require imagination and thought. It requires that players invest in learning the rules, and interact with creative input.&nbsp; It’s a hard game where the rules are meant to be used and taken advantage of. Darkness creeps up and with every invocation tries to snuff out the light that surrounds your characters. You’ll need to take your time and learn to master the system to fight back against that darkness.&nbsp;&nbsp;
</p>
<p>This is a game about exploration and strategy. It is a game of social graces and violent deadly combat. Gather your friends and light your torches. 
</p>
<p><strong>Intentions</strong><br></p>
<p>I want to share this game with the world. I've put more than a year's worth of work into it -albeit off and on again. And this thing is going to drive me crazy unless I start putting it into the hands of others. That's you!</p>
<p>This is a BETA of the current revision of the game. And it's not complete yet! It has several missing parts that I intend to add over the next few days, weeks, and months. Until it resembles complete. BUT it is ready for you to play! There's enough here for a level one&nbsp;campaign.&nbsp;</p>
<p><strong>What all is included?</strong><br></p>
<p>This is an exploratory draft. The layout is minimal. The art is public domain or some licensed art I had laying around that didn't make it into a previous game. I hope this can be used to gauge people's interest in the game. I would&nbsp;<strong>LOVE</strong> to talk to you about this. I've set up a forum below. If you have questions, errata, suggestions - let's talk.</p>
<p>So, what's included: 9 chapters featuring 65+ pages of content.&nbsp;</p>
<ul><li>An Introduction and Character Creation</li><li>Abilities, Measures &amp; Saves</li><li>Skills</li><li>Traits</li><li>Venturing Forth</li><li>Exploration</li><li>Combat</li><li>Magic &amp; Spells</li><li>Ritual &amp; Prayer</li><li>Camp</li></ul>
<p>The play aides included are:</p>
<ul><li>Two-page physical Character Sheet for at-home printing</li><li>A digital google sheets Character Sheet for online play.&nbsp;</li></ul>
<p><strong>What is Missing?</strong></p>
<p>Quite a lot really. Songs of the Northlanders is missing</p>
<ul><li>Advancement rules</li><li>Elf Spell Songs</li><li>Seasons</li><li>Town</li><li>Conditions &amp; Recovery</li><li>and more...</li></ul>
<p><img src="https://img.itch.zone/aW1nLzgxNzcwMTMuZ2lm/original/cV6Zvk.gif" loading="lazy"></p>
<p><strong>What's the Price for?</strong></p>
<p>The $2.50 tells me you're interested in becoming part of the playtest. You get all the chapters listed above and all additional chapters as they release over the next few weeks and months.&nbsp;</p>
<p><strong>You also get a PDF copy of the final game once it's released!</strong></p>
<p>This early intro price is now only. The final PDF will NOT be $2. And as more chapters release the price will increase as well.&nbsp;</p>
<p>&nbsp;<strong>Format</strong></p>
<p>Each chapter is uploaded as an individual file. This way if you wish to share the character creation file with your players you can. Or if one player is playing a magic-user you can share that file with them. Or if you're not playing with the magic-user, you don't have to worry about downloading or printing that chapter.&nbsp;</p>
<p>Also, this will make it easier as I make corrections to update the individual chapters quicker, without having to wade through the entire game.</p>
<p><br></p>
<p>I can't wait to play and discuss this game with you.&nbsp;</p>
<p><br></p>
<p><strong>NO NAZIS ALLOWED! This game is not for you.&nbsp;</strong><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQwMzI0My84MTc3MTcwLmpwZw==/original/vFaYE6.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQwMzI0My84MTc3MTcyLmpwZw==/original/WRkOWj.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQwMzI0My84MTc3MTczLmpwZw==/original/lVgcn0.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQwMzI0My84MTc3MTc1LmpwZw==/original/6mrLa8.jpg]]
<div class=""><iframe style="width: 500px; height: 281px" src="https://www.youtube.com/embed/6dt_fPSnn4M" frameborder="0" allowfullscreen=""></iframe></div>
<h3><br>Reviews</h3>
<p>“It's easy to play and dive into, but has a surprising depth to the combat.”<br>4/5 –&nbsp;<a href="http://toucharcade.com/2017/01/13/sonny-review/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Touch Arcade</a><br><br>“The system just works so well. In fact, I’ll go as far as to say that I had a mini-revelation about what I expect from the RPG genre.”<br>8.5/10 –&nbsp;<a href="https://www.gamegrin.com/mobile/sonny-review/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">GameGrin</a><br><br>“... well worth your time and money, even if you’ve never played Sonny before in your life.”<br>3.5/4 –&nbsp;<a href="https://appadvice.com/review/sonny" target="_blank" rel="nofollow noopener" referrerpolicy="origin">AppAdvice</a></p>
<h3>About this game</h3>
<p>The beloved Flash RPG series played by millions lives again in an all-new adventure that's not a sequel or a simple remake. When Sonny returns from the dead without his memories, he finds himself caught between the conflict of a seemingly endless horde of mutated monstrosities and a mysterious paramilitary force. With the help of some unlikely allies, he will discover his destiny is greater than he expected, and maybe save the world.<br><br>Sonny is a challenging turn-based, combat-focused RPG where unlocking and combining the effects of new skills and abilities is required to topple foes with an enormous amount of power. Sonny is designed for cunning and creativity with an emphasis on strategy and difficulty as the gameplay evolves. Featuring stunning artwork by Jet Kimchrea and an engrossing original score by David Orr.</p>
<ul><li>Engaging, mysterious storyline full of secrets, conspiracies, and zombies.</li><li>Combat-focused gameplay with an intuitive interface.</li><li>Battles with an emphasis on strategy... think your way through it, don't grind.</li><li>Intriguing party members with their own unique abilities.</li><li>Upgrade and enhance your equipment to grow even more powerful.</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/6dt_fPSnn4M" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTA5MzU4LzI2NTI4MzUuanBn/original/88sJKo.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA5MzU4LzI2NTI4MzIuanBn/original/SGMIqs.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA5MzU4LzI2NTI4MzEuanBn/original/iDSdgo.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA5MzU4LzI2NTI4MzYuanBn/original/lxf%2Fhx.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA5MzU4LzI2NTI4MzAuanBn/original/vUPPpU.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA5MzU4LzI2NTI4MzcuanBn/original/onzoi3.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA5MzU4LzI2NTI4MzguanBn/original/C7fMKE.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA5MzU4LzI2NTI4NDAuanBn/original/6%2BmQtU.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA5MzU4LzI2NTI4MzMuanBn/original/Jyi19k.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA5MzU4LzI2NTI4MzkuanBn/original/uPnVns.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTA5MzU4LzI2NTI4MzQuanBn/original/yGjOHe.jpg]]
<p></p>
<p>Sophie's Cubes is an application that lets you create, scramble, and solve puzzle/magic cubes.</p>
<p>Features:</p>
<ul><li>Play with cubes from 2x2x2 all the way up to 30x30x30</li><li>Cubes are highly customisable; choose face colours, images, and style your cube with variable parts, stickers, and shapes</li><li>For an extra challenge, play with picture/super cubes - where the goal is to return every face to its original orientation and position</li><li>Sessions are saved between use, so if you're challenging yourself to a puzzle that is taking you a while, you can close the app and come back to it later</li><li>Try to beat your best solve times with an automatic timer that starts whenever you scramble the cube - with adjustable inspection time</li><li>Fully rebindable inputs allow you to set up controls for every kind of turn you might want to make</li><li>Specify up to 10 algorithms that can be executed immediately as a macro</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/2G8FvbU1qhE" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTg5ODIzLzMxMzMxMDAucG5n/original/phZdVX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTg5ODIzLzMxMzMwOTcucG5n/original/aLN2MS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTg5ODIzLzMxMzMwOTUucG5n/original/SQk1ap.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTg5ODIzLzMxMzMwOTYucG5n/original/zon1Yd.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTg5ODIzLzMxMzMwOTkucG5n/original/OHhY0A.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTg5ODIzLzMxMzMwOTgucG5n/original/H49ypZ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTg5ODIzLzMxMzMxMDEucG5n/original/56vKr2.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTg5ODIzLzMxMzMwOTQucG5n/original/uZFxIL.png]]
<p><strong>Crack simulated locks using real-life techniques!</strong></p>
<ul><li><strong>Learn how a mechanical safe lock works by peering inside and watching the moving parts!</strong></li><li><strong>Read a tutorial explaining everything from how a lock works - to how to crack it!</strong></li><li><strong>Generate locks with random combinations and see how quickly you can get past them!</strong></li><li><strong>Features a variety of high-tech tools to help you</strong></li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/7qLn-vy5mWM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAyNjM4OS82MDMxMjY4LmpwZw==/original/s%2FheOl.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAyNjM4OS82MDMxMjc1LmpwZw==/original/lPmbui.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAyNjM4OS82MDMxMjcwLmpwZw==/original/bbZnei.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAyNjM4OS82MDMxMjcxLmpwZw==/original/mCzz%2BQ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAyNjM4OS82MDMxMjcyLmpwZw==/original/M%2BO08D.jpg]]
<p>This app adds responsive audio feedback to your keystrokes, for a better typing experience.<br></p>
<p><strong>Choose from 20 different sets of sounds </strong>to make your keystrokes have the desired audio/emotional impact, including:<br></p>
<ul><li>Typewriter/mechanical keyboard sounds for a crisper, more responsive typing experience</li><li>Applause or clapping sounds as you type, for motivation and support</li><li>Monstrous growling keystroke sounds to help you express your rage</li><li>Cute squeaking sounds to make you smile</li><li>Melodic or dissonant keystrokes on Marimbas, Vibraphones, or Grand Piano to give your typing some atmosphere</li><li>Gory blood-splatter sounds for typing/coding up a massacre</li><li>Firework sounds for celebratory typing</li><li>Burping keystrokes, obviously a core requirement of any typing program</li></ul>
<p>The app minimizes to the system tray (lower right part of your screen). Click the Sound Typist icon in the system tray to change sounds, adjust volume, or exit the app.</p><p><strong>Bluetooth Headphone Lag:</strong>&nbsp;Most Bluetooth headphones/earbuds have latency/lag that may make the keystroke sounds feel less responsive.&nbsp;Depending on your sensitivity, this may or may not matter.&nbsp;Recommendation:&nbsp;use wired speakers,&nbsp;wired headphones, or low latency bluetooth headphones (with apt-x low latency, or "gaming mode").</p><p><strong>Installation Note:</strong>&nbsp;You may need to right-click the setup.exe and use the "Run as Administrator" option to install. If you are still having issues, try changing the "Reputation-based protection"&nbsp;settings in Windows to turn off "Check apps and files"&nbsp;and "Potentially unwanted app blocking". This is a random file off the internet after all.<br><br><strong>Portable Version:</strong> You can now download the portable version that doesn't use an installer. Run SoundTypist.exe to start Sound Typist. You can minimize the window to the system tray.&nbsp;Keep in mind that if you use the "Start at login"&nbsp;option, then it will not work if you move the folder's location.</p><p><em>Those who are interested in adding their own sounds can search the comments for&nbsp;tips on how to do it yourself by modifying the configuration file. It is a completely unsupported and undocumented feature, so do not expect me to&nbsp;answer any further questions about it.</em><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/4VJCHHosuSM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzA5MzY1LzE1ODEzNjgucG5n/original/jemOSW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA5MzY1LzE1ODEzNjkucG5n/original/Ghqt9o.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA5MzY1LzE1ODEzOTMucG5n/original/N0wbbm.png]]
<p><strong>Soundodger+</strong> combines the twitchiness of bullet hell shooters with the sonic thrills of rhythm games to create a wholly unique experience. Studio Bean has updated the original Adult Swim Games title with all-new tracks, controller support, and a fully-featured level editor. Plus, auto-generate stages from your own music library!</p>
<ul><li>35 music tracks&nbsp;+ 3 free DLC packs included</li><li>Artists include celebrated game musicians Disasterpeace (FEZ, Runner2), Danny Baranowsky (The Binding of Isaac) and more</li><li>Auto-generate levels in a snap using your personal music collection</li><li>Create and share original levels using the level editor</li><li>Engage slo-mo for the trickiest sequences, or embark on a risk-free musical journey in Zen mode</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/jNPwNU9UNWg" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjE2NzI1LzEwMjI2NDUucG5n/original/RMVAPl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE2NzI1LzEwMjI2NDgucG5n/original/IcZu4o.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE2NzI1LzEwMjI2NDQucG5n/original/eDYEda.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE2NzI1LzEwMjI2NDYucG5n/original/bdVAJ5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE2NzI1LzEwMjI2NDMucG5n/original/BrcWYo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjE2NzI1LzEwMjI2NDcucG5n/original/3UD8LK.png]]
<p>Harness the power of the cosmos with SPACE / MECH / PILOT - THE UNIVERSE DRIVE, which includes the game + supporter pack DLCs!</p>
<p><strong>Embrace&nbsp;</strong>the carnage and become a powerful Pilot in the idle-RPG claimed by IGN Japan to be a&nbsp;"potential cult hit",&nbsp;&nbsp;firing a deadly arsenal of flashy weapons...&nbsp;<strong>Answer</strong>&nbsp;the Cellphone - and meet a new friend.<br></p>
<ul><li><strong>A new riveting adventure awaits!</strong>&nbsp;- can you explore the cosmos and assimilate incoming opponent ships?
</li><li><strong>Three buttons? No, how about one!</strong>&nbsp;You only need one button to defeat enemies, and that's the fire key!
</li><li><strong>Gain powerful upgrades!</strong>&nbsp;- Level up and put your skill points towards powerful new abilities and upgrades.
</li><li><strong>A brand new summer project from A NIGHTMARE'S TRIP alumni</strong>, featuring original character art from L0VEBREAK and lead art by Sophie!&nbsp;
</li></ul>
<p><strong>This special release of the game includes both the bonus&nbsp;DLC and the base game together!</strong></p>
<p><u>=<em><strong>A&nbsp;DELUXE BONUS AWAITS=</strong></em></u>
</p>
<p>Included in this special release of the game is THE UNIVERSE DRIVE, available to download separately! This includes the following:
</p>
<ul><li><em>SPACE / MECH / PILOT: art folder</em>&nbsp;- The game's digital artbook, included as a PDF! See a whopping x amount of pages worth of art featuring concept art and final art from both L0VEBREAK (Character&nbsp;Artist) and Supeh Soph (Lead&nbsp;Artist).
</li><li><em>SPACE / MECH / PILOT</em>:&nbsp;MP3 PLAYER - The game's full soundtrack. Listen to the sweet tunes that accompanied your adventure!&nbsp;<a href="https://rukyyy.bandcamp.com/album/space-mech-pilot-original-soundtrack" rel="nofollow noopener" referrerpolicy="origin">You can also purchase the soundtrack separately here.</a>
</li><li><em>SPACE / MECH / PILOT: THE&nbsp;PROTOTYPE FILES</em>&nbsp;- Includes a prototype build of the game made during early development of&nbsp;SPACE/MECH/PILOT, plus documentation/images of select builds from the game.
</li><li><em>SPACE / MECH / PILOT</em>:<em>&nbsp;images folder</em>&nbsp;- Get several high quality desktop/social media backgrounds/banners and icons!
</li></ul>
<p><em><u>CONTENT WARNING: use of weaponry, references to bullying/discrimination, grief over the death of a family member</u></em></p>
<p>The game's main Itch page is available <a href="https://skyhour.itch.io/space-mech-pilot">here</a>.<em></em></p>
<p><em></em></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/CO6go5KGf8M" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTQ2Nzg4LzUzNjY4MTUucG5n/original/g6hfQy.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTQ2Nzg4LzUzNjY4MTQucG5n/original/seOk1I.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTQ2Nzg4LzUzNjY4MTMucG5n/original/nbjBBA.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTQ2Nzg4LzUzNjY4MTIucG5n/original/1r%2BhSe.png]]
<p>This is a Honey Heist hack for players to become Force users and deal with light side vs dark side inner conflicts.</p>
<p>I have some plans including a mini character sheet, so keep an eye out for that!&nbsp;</p>
<p>Feel free to leave review or comment your feedback. &nbsp;I would love to hear about your gameplay experience. <br><br></p>

[img width=500 [https://img.itch.zone/aW1nLzc4MDc0NDgucG5n/original/9ZzZz2.png]]
<p><img src="https://i.imgur.com/ZbXVKFw.gif" loading="lazy"></p>
<p class="text-center"><strong><em>Check out the demo!</em><br>&nbsp;<br></strong></p>
<p class="text-center">Get more info, Stay in touch <br>&amp; give me your feedback:<br><a href="https://www.spasstaxi.de" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Official Game Site</a><br></p>
<p><br></p>
<h2 class="text-center">About</h2>
<p>Spaß Taxi ("Spaß" is the German word for "fun") is a remake/clone of the original Space Taxi, where you need to bring passengers from one pad to another in mostly weird unnatural environments.</p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzE5NTY4MTMucG5n/original/Xv2FcH.png" loading="lazy"><em>
</em></p>
<p><br></p>
<h3 class="text-center">The gameplay</h3>
<p>The 40 levels of Spaß Taxi offer a variation of challenges:</p>
<p><strong>&nbsp;Quick reactions</strong><br>Avoid rockets and lasers or pass through moving gaps.<br></p>
<p><strong>&nbsp;Puzzles</strong><br>Push the right buttons, find the shortest path or utilize teleporters.<br></p>
<p><strong>&nbsp;Learning</strong><br>Memorize the passengers and their destinations, find out better (and quicker) ways to move, land or get your customers into or out of your car.<br></p>
<p><strong>&nbsp;Dexterity</strong><br>Use the right amount of thrust to be fast, but not crash into stuff and quickly know which thruster to use while flying upside down in veteran mode.<br><br></p>
<p><img src="https://img.itch.zone/aW1nLzE5OTg4NDEucG5n/original/vpZqo7.png" loading="lazy"></p>
<h3 class="text-center">Requirements</h3>
<p>Spaß Taxi can be played with the keyboard, but is best played with a controller (currently only the XBox controller is supported, but others will follow).</p>
<p>It is looking best in a 16:9ish resolution at FullHD or above, preferring a multiple of it (e.g. 1920x1080, 1920x1200, 3840x2160).</p>
<p>Please check out the demo for Mac and Linux before buying to see if it runs on your machine, thank you!<br></p>
<p><img src="https://img.itch.zone/aW1nLzE5OTg4NDEucG5n/original/vpZqo7.png" loading="lazy"><br></p>
<h3 class="text-center">Play the demo!</h3>
<p>The demo contains 6 levels (plus tutorial) and is a great way to check out the gameplay, controller support and performance on your machine.</p>
<p>It also has a <em>separate highscore list</em>, so you can even compete with your friends here. :)<br></p>
<p><img src="https://img.itch.zone/aW1nLzE5NTY3MjIucG5n/original/%2FYSbOJ.png" loading="lazy"><br></p>
<p>&nbsp; <br></p>
<h2 class="text-center">New and old</h2>
<p>This version of the game takes the original concept and adds or changes a lot of things to get a whole new experience while retaining some of the retro feeling.</p>
<p><img src="https://img.itch.zone/aW1nLzE5NTY3NzQucG5n/original/viPVJy.png" loading="lazy"><br></p>
<h3 class="text-center">Rotation</h3>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzE5NTk1NjQuZ2lm/original/cXVNqb.gif" loading="lazy"><br></p>
<p>The taxi can now rotate to get through narrow passages, avoid obstacles or even land on the ceiling.<br></p>
<p>&nbsp; <img src="https://img.itch.zone/aW1nLzE5NTY3NzQucG5n/original/viPVJy.png" loading="lazy"><br></p>
<h3 class="text-center">Different types of passengers</h3>
<p><img src="https://img.itch.zone/aW1nLzE5NTY2NTYucG5n/original/gJ41dT.png" loading="lazy"><br><br>There are those that fancy to loop the loop and go fast, but there are also those who will reveal their last meal if you rotate too much.</p>
<p>&nbsp; <img src="https://img.itch.zone/aW1nLzE5NTY3NzQucG5n/original/viPVJy.png" loading="lazy"><br></p>
<h3 class="text-center">Health instead of lifes</h3>
<h6 class="text-center"><img src="https://img.itch.zone/aW1nLzE5NTY2ODYucG5n/original/%2Bi6EFv.png" loading="lazy"></h6>
<p>The car has health (or integrity) and you can repair it while parking at a repair station (which costs money) or by having a mechanic on board.<br>When there is nothing left to repair, you&nbsp; can buy a new car if you have enough money.<br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzE5NTY3NjkucG5n/original/wXWT3h.png" loading="lazy"></p>
<p><img src="https://img.itch.zone/aW1nLzE5OTg4NDEucG5n/original/vpZqo7.png" loading="lazy"><br></p>
<h2 class="text-center"><img src="https://img.itch.zone/aW1nLzE5NTY3NzQucG5n/original/viPVJy.png" loading="lazy">Credits</h2>
<table width="100%"><tbody><tr><td>Game</td><td>Burkhard Wick<br></td></tr><tr><td>Fonts</td><td><a href="https://twitter.com/somepx" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Eeve Somepx</a><br></td></tr><tr><td>Music</td><td><a href="http://gas1312.bandcamp.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Gas1312</a><br></td></tr><tr><td>Sound FX<br></td><td>Imphenzia<br>Burkhard Wick<br></td></tr><tr><td>Testers</td><td>Andreas Peters<br>Karsten Thiems<br>David Jandrey<br></td></tr></tbody></table>
<p><img src="https://img.itch.zone/aW1nLzE5OTg4MjgucG5n/original/awiaiQ.png" loading="lazy"></p>
<p><img src="https://img.itch.zone/aW1nLzE5OTg4NDEucG5n/original/vpZqo7.png" loading="lazy"><br></p>
<h2 class="text-center">Highscores</h2>
<p><a href="https://www.spasstaxi.de/#highscores" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://highscore.scanix.de/SpassTaxiCasual/simg" loading="lazy"></a></p>
<p><a href="https://www.spasstaxi.de/#highscores" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://highscore.scanix.de/SpassTaxi/simg" loading="lazy"></a></p>
<p><a href="https://www.spasstaxi.de/#highscores" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://highscore.scanix.de/SpassTaxiDemoCasual/simg" loading="lazy"></a></p>
<p><a href="https://www.spasstaxi.de/#highscores" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://highscore.scanix.de/SpassTaxiDemo/simg" loading="lazy"></a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/IdQdzxlNHrA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzYzNzM1LzI4MDY1MjIucG5n/original/El8cyO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzYzNzM1LzI4MDY1MTgucG5n/original/Zu%2FCJZ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzYzNzM1LzI4MDY1MjAucG5n/original/oeTFr5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzYzNzM1LzI4MDY1MTkucG5n/original/g6q80D.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzYzNzM1LzI4MDY1MjEucG5n/original/Pdnk8y.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzYzNzM1LzI4MDY1MjMucG5n/original/hp23L3.png]]
<p>Twigs and leaves rustle as you come close to the glowing mushrooms.<br></p>
<p>Did something move in the bushes behind you?</p>
<p>The Dungeondraft source file is available from 1$ up.
</p>

[img width=500 [https://img.itch.zone/aW1nLzcxMzQxMjcucG5n/original/eEyCZo.png]]
<p>You are the Spectre Moose of Maine. Sadly, your publicity team (which is you) has been slacking. You don’t have the widespread name recognition of other cryptids. It’s time to change this!</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzI4ODE3LzQxMTcwMTQucG5n/original/U0G3GM.png]]
<p><em>Speed Dating for Ghosts</em>&nbsp;is a weird lil' narrative game about speed dating ghosts by Ben Gelinas (<em>Control,&nbsp;</em><em>Dragon Age, Mass Effect</em>) and Mikey Hamm (<em>Mikey Maybe, Slugblaster, Glig</em>).&nbsp;</p>
<p>As a lonely specter looking for love in the afterlife, you attend a speed dating event and chat up a cemetery's worth of phantoms, wraiths, and poltergeists. At the end of the spooky mixer, choose your favorite! They'll take you out to all the best haunts: old folks' homes, creepy houses with new owners... Maybe solving a murder is your idea of a good time. Or robbing a bank. Ghosts are into all sorts of things</p>
<p><strong>Key Features</strong></p>
<ul><li>With the added expansion, meet and date&nbsp;twelve ghosts plus a bonus ghost if you're really committed</li><li>Deep, branching conversations with markedly different outcomes depending on what you choose to say</li><li>A full-fledged date with your favorite ghost that plays out like a text adventure after each speed dating session</li><li>A wide range of quirky characters including spirits of vengeance, compassion, despair, and mischief</li><li>Original music by Mikey Maybe, the musical alterego of game artist Mikey Hamm</li></ul>
<p>Content Warning: Contains frank discussions of death and its consequences, both seriously and with intentional humor.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/__rOWJxde8Y" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTg5MzE0Lzg4NjkyNy5wbmc=/original/xpJXnY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg5MzE0LzEwNTg2ODQuanBn/original/JDaFSd.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg5MzE0LzEwNTg2ODEuanBn/original/DWridL.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg5MzE0LzEwNTg2ODIuanBn/original/GwAbgX.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg5MzE0LzEwNTg2ODMuanBn/original/vCqIXr.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg5MzE0LzEwNTg2NzkuanBn/original/wimM3R.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg5MzE0LzEwNTg2ODYuanBn/original/ZpcHa0.jpg]]
<p>
Spell Casting is a family friendly line drawing puzzle game in which you are a young wizard learning spells in the comfort of your home thanks to Wizardly Distance Education!</p>
<p>
	Practice casting spells by tracing out the patterns in the spell books using your mouse.  Earn a 3 star rating in each spell to unlock the exam.
</p>
<p>
	You'll need to remember the previously learned spell shapes to pass the exam and unlock new spell books!
	<br>
</p>
<p>
	Spell Casting supports Accessibility by allowing you to press and hold the SPACEBAR instead of clicking and holding the mouse button to draw spell lines.
</p>
<hr>
<p><br><strong>Quotes</strong><br></p>
<p>
	<em>"HARDCORE CAT WIZARDS LEARNING TO CAST SPELLS AND EPIC MEMES"</em> - Anonymoose
</p>
<p>
	<em>"If you're looking to play something together as a family, this is good stuff."</em> - Indiegames.com <a href="http://indiegames.com/2016/07/spell_casting.html" rel="nofollow noopener" referrerpolicy="origin">http://indiegames.com/2016/07/spell_casting.html</a><a href="http://indiegames.com/2016/07/spell_casting.html" rel="nofollow noopener" referrerpolicy="origin"></a>
</p>
<p>
	<em>"A great light-hearted puzzler that will test your memory and your dexterity."</em> - Alpha Beta Gamer <a href="http://www.alphabetagamer.com/spell-casting-meowgically-enhanced-edition-alpha-demo/" rel="nofollow noopener" referrerpolicy="origin">http://www.alphabetagamer.com/spell-casting-meowgically-enhanced-edition-alpha-demo/</a><a href="http://www.alphabetagamer.com/spell-casting-meowgically-enhanced-edition-alpha-demo/" rel="nofollow noopener" referrerpolicy="origin"></a><br>
</p>
<p><em>"It's like playing a game designed by a classic children's storyteller.</em><em>"</em> - Highland Arrow <a href="https://www.highlandarrow.com/reviews/pc-reviews/371-spell-casting.html" rel="nofollow noopener" referrerpolicy="origin">https://www.highlandarrow.com/reviews/pc-reviews/371-spell-casting.html</a><span></span></p>
<hr>
<p>
	<strong>
	Version History:</strong>
</p>
<ul>
	<li>2.0 release - 30 spells and 30 exams!</li>
	<li>2.1.0 update - new voice acting and fixed "mend"</li><li>2.2.0 Halloween Update - 6 new spells and 6 new exams!</li><li>2.3.0 Christmas Update - 6 new spells and 6 new exams!</li>
</ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/2s13Ef80Iyk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE5NzAvMzcwNjUwLmpwZw==/original/fDu%2B9G.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE5NzAvMzcwNjQ5LmpwZw==/original/lA19e2.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE5NzAvMzcwNjQ4LmpwZw==/original/m1SwXM.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE5NzAvMzUwMjM4LmpwZw==/original/UwzXmF.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE5NzAvMzUwMjQxLmpwZw==/original/sImqRp.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE5NzAvMzUwMjQwLmpwZw==/original/qH7YPd.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE5NzAvMzY1NzMxLmpwZw==/original/8VV5rs.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE5NzAvMzY1NzI5LmpwZw==/original/3ZDAUT.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE5NzAvMzY1NzI4LmpwZw==/original/%2BoYALc.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE5NzAvMzY1NzMwLmpwZw==/original/62N1k4.jpg]]
<h5><strong>Find the Pumpkin King and TAKE HIS HEAD!&nbsp;</strong></h5>
<h5>FEATURES:</h5>
<ul><li>Open World Exploration!</li><li>Variety of Challenging AI Enemies!</li><li>11 unique Spells to Master!</li><li>Over 40 unique Armor, Wands, Items, and&nbsp;Accessories to Loot!</li><li>Gamepad/Controller Support (except menus)!</li></ul>
<p>See READ ME file for gamepad controls and keyboard + mouse&nbsp;bindings!<br></p>
<p>Gamepad Controls recommended!!!&nbsp;</p>
<p>WARNING: There is no save game and death is final! PRESS 0 TO RESTART GAME!</p>
<p><em>Designed and Developed by Grant Andrew Ervin<br></em><em>All original content property of Honeycomb Interactive</em><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/Q-hxGr3mdg4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI0NDkwOS83MjU1NTc2LnBuZw==/original/y7Uy2f.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0NDkwOS83MjU1NDgxLmdpZg==/original/9T1ZiO.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0NDkwOS83MzEzODY0LnBuZw==/original/XOMjfX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0NDkwOS83MjU1NTcxLnBuZw==/original/045%2BlO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0NDkwOS83MzEzODY1LnBuZw==/original/4kowGG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0NDkwOS83MjU1NTc0LnBuZw==/original/5Bs71N.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0NDkwOS83MjU1NTcyLnBuZw==/original/3owXvY.png]]
<p>SPLASH BLAST PANIC is a multiplayer competitive party game where you must shoot, ram, dodge and overall bully your opponents outside the screen with a variety of watergun-based weaponry.&nbsp;<br><br>Inspired by old arcade titles as well as newer competitive party games, ruin all your friendships in a variety of stage which may or may not have various level of gimmicks that could backhand you if you're not careful, or tell that person you always despised your true feelings with waterbomb launchers, bubble prisons, watergun sentries, reflective shields and more !</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTc3MzgvMzEyMDk0Ny5qcGc=/original/TKbPcZ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTc3MzgvMzEyMDk0NC5qcGc=/original/LlPRuI.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTc3MzgvMzEyMDk0My5qcGc=/original/9iCWeL.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTc3MzgvMzEyMDk0OC5qcGc=/original/JCCKkb.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTc3MzgvMzEyMDk0NS5qcGc=/original/Fd8zOb.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTc3MzgvMzEyMDk0Ni5qcGc=/original/Ztplrq.jpg]]
<figure><img src="https://img.itch.zone/aW1nLzcwMDQ5MzUuZ2lm/original/TyR4SX.gif" loading="lazy"><br></figure>
<p><img src="https://img.itch.zone/aW1nLzcwMDQ5NTAuZ2lm/original/2yYPu3.gif" loading="lazy"></p>
<p>Join the three skelebros -Lefti, Midi, and Righti- on&nbsp;<strong>a grand road trip</strong>&nbsp;through the cutesy world of the dead. After realizing they wasted their lives watching horror movies, they decide to embark on a big adventure.<br></p>
<p><em><strong>Spanning across 4 episodes released separately, each containing 3 chapters with their own area, microgames, mechanics, and story!</strong></em><br></p>
<figure><img src="https://img.itch.zone/aW1nLzcwMDQ5MTQuZ2lm/original/7st%2FAP.gif" loading="lazy"><br></figure>
<p><img src="https://img.itch.zone/aW1nLzcwMDQ5ODIuZ2lm/original/re5Ntn.gif" loading="lazy"><br></p>
<p>Challenge yourself with a wide collection of blazing-fast microgames themed around horror tropes. Featuring&nbsp;<strong>over a hundred microgames</strong>&nbsp;you're sure to get shaken to your bones!<br></p>
<figure><img src="https://img.itch.zone/aW1nLzcwMDQ5MjcuZ2lm/original/KEHvQJ.gif" loading="lazy"><br></figure>
<p>
</p>
<p><img src="https://img.itch.zone/aW1nLzcwMDQ5ODguZ2lm/original/aNLXYr.gif" loading="lazy"><br></p>
<p>Each microgame is carefully interwoven within the story. Each area features&nbsp;<strong>completely new gameplay mechanics</strong>&nbsp;to test your microgame skills. Even going as far as changing up control schemes!</p>
<p><img src="https://img.itch.zone/aW1nLzcwMDU3MDIuZ2lm/original/lCEN85.gif" loading="lazy"><br></p>
<ul><li><strong>60+ hand-crafted, blood-pumping, horror-inspired microgames.</strong><br>
</li><li>Three exciting and&nbsp;beautiful areas to explore in the land of the dead.<br>
</li><li>Play as 3 adorable skeleton brothers Lefti, Midi, and Righti.<br>
</li><li>Unique mechanics for every area, from rhythm to puzzle games.<br>
</li><li>Remix all your unlocked microgames for the ultimate challenge.<br>
</li><li>At least 7 skeleton puns.</li></ul>
<p>&nbsp; &nbsp; &nbsp; &nbsp;<img src="https://img.itch.zone/aW1nLzcyMDE4NzIucG5n/original/m5aobP.png" loading="lazy"><br></p><p><em>(please note: the steam key is not included when buying the game through the Ukraine bundle)</em></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/17ftfWJp0fg" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIwMDYyNi83MDA1MzI5LmdpZg==/original/kv1%2Bjq.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwMDYyNi83MDA1Mzc2LmdpZg==/original/xTTHvC.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwMDYyNi83MDA1MzA1LmdpZg==/original/bRYXP%2B.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwMDYyNi83MDA1MzQ4LmdpZg==/original/V3TXZo.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwMDYyNi83MDA1MzU4LmdpZg==/original/dtBIIR.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwMDYyNi83MDA1NDA0LmdpZg==/original/iEzskQ.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwMDYyNi83MDA1NDEyLmdpZg==/original/YhNoYX.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwMDYyNi83MDA1NDIwLmdpZg==/original/tS0pGL.gif]]
<p>This is a customized GUI for ren'py. It includes the PNG files and all of the code already programmed into a renpy file (Not Built). You can take the code and assets out, or rename the renpy game file and use it.<br></p>
<p><strong>This was made in Ren'py 7.4.2.1292</strong></p>
<p><img src="https://img.itch.zone/aW1nLzUxODEzNjkucG5n/original/CeYzfo.png" loading="lazy"><br></p>
<h3>Includes:</h3>
<ul><li>All Standard Screens</li><li>Textbox, Choices, and Quick menu</li><li>An "Extras" screen for Achievements, Endings and a CG gallery (Code Included!)</li><li>Code for everything already plugged in</li><li>Formatted for&nbsp;1080x1920</li></ul>
<p>You can plug your script into the game file and change the name, or take the assets and code as needed.</p>
<p>The game uses an open source font "Fondamento-Regular" which you can find for free:&nbsp;<a href="https://fonts.google.com/specimen/Fondamento?preview.text_type=custom" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Here</a></p>
<h3>Rights:</h3>
<p>If purchased you may use this project in commercial projects or free projects. You may not resell part of, or the whole GUI on it's own. You can modify the GUI and code to suit your needs.</p>
<p>You can credit me as Jaime Scribbles if you want, but it is not required.</p>
<h3>Instructions:</h3>
<p>Download, unzip, and enjoy! Some additional instruction included in the download, see below!</p>
<p><img src="https://img.itch.zone/aW1nLzQyMzMwMDQucG5n/original/u1oCc5.png" style="max-width: 100%" loading="lazy"></p>
<figcaption>You can find the instructions.txt file under the custom GUI file after it is unzipped. This is the same place where you would find the game folder, and the errors, log and traceback.</figcaption>
<h3>Sample Assets:</h3>
<ul><li><a href="https://alte.itch.io/uncle-mugens-backgrounds" target="_blank">Background Art by Uncle Mugen</a></li><li><a href="https://dejinyucu.itch.io/agustina-visual-novel-sprite" target="_blank">Sprite by DejiNyucu</a></li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTE0MjE5LzUxODEzOTEucG5n/original/AZS%2FJY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE0MjE5LzUxODEzOTAucG5n/original/fmCouU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE0MjE5LzUxODEzOTMucG5n/original/TFJyj%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE0MjE5LzUxODEzOTIucG5n/original/n43zK4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE0MjE5LzUxODEzNzUucG5n/original/J4EYPp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE0MjE5LzUxODEzNzYucG5n/original/HEH2%2Bi.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE0MjE5LzUxODEzNzgucG5n/original/L2bTZj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE0MjE5LzUxODEzNzQucG5n/original/k2HNv6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE0MjE5LzUxODEzODAucG5n/original/qWNqVS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE0MjE5LzUxODEzNzkucG5n/original/YmHIW6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE0MjE5LzUxODEzNzcucG5n/original/KjDLoc.png]]
<p><strong>Spooky Station</strong>&nbsp;is a game pack filled with&nbsp;<strong>9 ghostly games</strong>&nbsp;of all types. From an&nbsp;<strong>arena-brawler</strong>&nbsp;to a&nbsp;<strong>rogue-like</strong>, from a&nbsp;<strong>text-adventure</strong>&nbsp;to a&nbsp;<strong>shoot 'em up</strong>, and even a&nbsp;<strong>GameBoy™ game</strong>, this bundle is certain to&nbsp;<strong>spook your socks off</strong>!<br></p>
<figure><img src="https://steamcdn-a.akamaihd.net/steam/apps/700100/extras/MOSHED-2019-9-16-11-15-10.jpg?t=1569453793" style="color: inherit; font-size: inherit; padding: 0px; margin: 0px" loading="lazy"></figure>
<p><br><strong>Games included in this pack:</strong><br></p>
<p><img src="https://steamcdn-a.akamaihd.net/steam/apps/700100/extras/spooky-cooking-banner.png?t=1569453793" style="padding: 0px; margin: 0px" loading="lazy"><br>Have a nice Halloween in a&nbsp;<strong>lovely&nbsp;</strong>and&nbsp;<strong>casual way&nbsp;</strong>with a one-button game that tries to bring back the&nbsp;<strong>competition&nbsp;</strong>of the arcade era, where you need to&nbsp;<strong>shoot a pumpkin</strong>&nbsp;towards to a&nbsp;<strong>cauldron</strong>&nbsp;while&nbsp;<strong>dodging obstacles</strong>, a simple mechanic that's&nbsp;<strong>easy to understand</strong>, but hard to&nbsp;<strong>master</strong>, this game can please&nbsp;<strong>casual gamers</strong>&nbsp;as well as&nbsp;<strong>hardcore ones</strong>.</p>
<ul><li>Supports keyboard and Xbox controllers.</li></ul>
<p><img src="https://steamcdn-a.akamaihd.net/steam/apps/700100/extras/tower_banner.png?t=1569453793" style="padding: 0px; margin: 0px" loading="lazy"><br>Explore a&nbsp;<strong>creepy, demon-filled dungeon</strong>&nbsp;with&nbsp;<strong>100 floors</strong>&nbsp;and save your city from&nbsp;<strong>certain doom</strong>&nbsp;with&nbsp;<strong>Sewer Cat</strong>&nbsp;and his partner&nbsp;<strong>Dirty Paws</strong>&nbsp;in this&nbsp;<strong>classic rogue-like style adventure</strong>!</p>
<ul><li>Supports keyboard and Xbox controllers.</li></ul>
<p><img src="https://steamcdn-a.akamaihd.net/steam/apps/700100/extras/cosmic_rain_banner.png?t=1569453793" style="padding: 0px; margin: 0px" loading="lazy"><br>Use&nbsp;<strong>spooky blobs</strong>&nbsp;from the&nbsp;<strong>Cosmic Rain</strong>&nbsp;in this&nbsp;<strong>Match 3</strong>&nbsp;game to obtain&nbsp;<strong>power&nbsp;</strong>and achieve your ultimate goal of learning how to be a&nbsp;<strong>blobmancer</strong>!</p>
<ul><li>Supports keyboard and Xbox controllers.</li></ul>
<p><img src="https://steamcdn-a.akamaihd.net/steam/apps/700100/extras/sarah_banner2.png?t=1569453793" style="padding: 0px; margin: 0px" loading="lazy"><br><strong>Wishing Sarah</strong>&nbsp;is a top-down&nbsp;<strong>GameBoy adventure game</strong>&nbsp;where the player must explore a&nbsp;<strong>bizarre world</strong>&nbsp;and help Sarah to wake up&nbsp;<strong>once and for all.</strong></p>
<ul><li>Supports keyboard and Xbox controllers.</li><li>Includes original GameBoy™ ROM image!</li></ul>
<p><img src="https://steamcdn-a.akamaihd.net/steam/apps/700100/extras/Thursday_banner.png?t=1569453793" style="padding: 0px; margin: 0px" loading="lazy"><br>In this&nbsp;<strong>first person adventure</strong>, you help our&nbsp;<strong>friendly serial killer Johnny</strong>&nbsp;in his routine, searching for all the stuff he needs to prepare for his&nbsp;<strong>big day</strong>.&nbsp;<strong>Interact&nbsp;</strong>with the items you find or&nbsp;<strong>inspect&nbsp;</strong>them to know what’s going through&nbsp;<strong>Johnny’s mind</strong>.<br><br><img src="https://steamcdn-a.akamaihd.net/steam/apps/700100/extras/worship_banner.png?t=1569453793" style="padding: 0px; margin: 0px" loading="lazy"><br>A&nbsp;<strong>2-player party game</strong>&nbsp;where you compete with a friend to see who is the&nbsp;<strong>best worshiper</strong>&nbsp;of the<strong>&nbsp;demon lord</strong>!</p>
<ul><li>Supports Xbox controller for a 2nd player.</li></ul>
<p><img src="https://steamcdn-a.akamaihd.net/steam/apps/700100/extras/curse_bringer_banner_logo.gif?t=1569453793" style="padding: 0px; margin: 0px" loading="lazy"><br>In this text based game you assume the role of Sister Constance, a member of a secret organization responsible for delivering the Death Curse to marked targets. A new job has been assigned to you, but in order to end your target you must gather the ingredients and make choices.</p>
<ul><li>This game is only playable using a mouse.</li></ul>
<p><img src="https://steamcdn-a.akamaihd.net/steam/apps/700100/extras/killing_moon_banner.png?t=1569453793" style="padding: 0px; margin: 0px" loading="lazy"><br><strong>Killing Moon</strong>&nbsp;is a&nbsp;<strong>high school Halloween thriller</strong>&nbsp;made as a homage to all great&nbsp;<strong>slashers&nbsp;</strong>and&nbsp;<strong>suspense movies</strong>. The game follows three friends,&nbsp;<strong>Ash (Ashley) J. Raimi</strong>,&nbsp;<strong>Barbara Romero</strong>&nbsp;and&nbsp;<strong>R.J. MacCarpenter&nbsp;</strong>during a&nbsp;<strong>Halloween party</strong>&nbsp;in their high school. Every thing feels like just another stupid school party until&nbsp;<strong>lights start to fail&nbsp;</strong>and&nbsp;<strong>weird things happen</strong>. Like,&nbsp;<strong>really weird sh*t</strong>. You play as a&nbsp;<strong>different protagonist</strong>&nbsp;in each game chapter and each character will&nbsp;<strong>add his or her own outlook</strong>&nbsp;on the events that took place in that&nbsp;<strong>peculiar night</strong>.</p>
<ul><li>This game is only playable using a mouse.</li></ul>
<p><img src="https://steamcdn-a.akamaihd.net/steam/apps/700100/extras/Spookids_banner.png?t=1569453793" style="padding: 0px; margin: 0px" loading="lazy"><br>Spooky Land is a&nbsp;<strong>mysterious</strong>&nbsp;and&nbsp;<strong>treacherous&nbsp;</strong>place, but none of that will stop a group of&nbsp;<strong>mischievous kids'</strong>&nbsp;search for candy! Defeat&nbsp;<strong>monsters</strong>, avoid&nbsp;<strong>traps&nbsp;</strong>and&nbsp;<strong>collect candy</strong>&nbsp;in this&nbsp;<strong>shoot'em up adventure&nbsp;</strong>for up to&nbsp;<strong>4 players coop</strong>.</p>
<ul><li>Supports keyboard and Xbox controllers for all players.</li></ul>
<p><br></p>
<p>With&nbsp;<strong>Spooky Station</strong>, you're guaranteed to have hours of&nbsp;<strong>Halloween-themed fun</strong>&nbsp;with diverse gameplay styles and amazing stories.</p><p><br></p>
<p><strong>Other works you might like:</strong>
</p>
<ul><li><a href="https://bakudas.itch.io/generic-rpg-pack"><strong>Generic RPG Pack</strong></a>
</li><li><a href="https://bakudas.itch.io/generic-platformer-pack"><strong>Generic PLATFORMER Pack</strong></a>
</li><li><a href="https://bakudas.itch.io/generic-dungeon-pack"><strong>Generic DUNGEON Pack
</strong></a>
</li><li><u><strong><a href="https://bakudas.itch.io/generic-run-n-gun" target="_blank">Generic RUN N' GUN Pack</a></strong></u></li></ul><u><strong></strong></u>
<blockquote><em>Credits:<br>Spooky Station © Estúdio Vaca Roxa 2019<br>Wishing Sarah © Asteristic Game Studio 2019<br>Killing Moon © Joymasher 2013<br>Spookids © Relixes, Crowno (Spookids Team) 2019<br>Thursday the 12th © Calangames 2019<br>Cosmic Rain © Expresso Studios 2019<br>Worship the demon lord with friends © Pastel Studios 2019<br>Spooky Cooking © Heavy Sheep 2019<br>Tower of 100 Floors © LASTONE 2019<br>Curse Bringer © Vee 2019</em></blockquote>

<iframe width="720" height="450" src="https://www.youtube.com/embed/P6nur2s4qgc" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDg4MzY0LzI2MjgyNjYuZ2lm/original/fm9G8S.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg4MzY0LzI2MjgzMTQuZ2lm/original/3vVRWl.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg4MzY0LzI2MjgzNTQuZ2lm/original/ChzY3V.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg4MzY0LzI2MjgzMTMuZ2lm/original/1mIsUk.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg4MzY0LzI1MjMwMjQucG5n/original/eC0RJn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg4MzY0LzI1MjMwMzEucG5n/original/OheDsg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg4MzY0LzI2MTkyMzMuanBn/original/HGPLbF.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg4MzY0LzI2MTkyMzguanBn/original/l0AvWp.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg4MzY0LzI2MTkyNDAuanBn/original/9rdBWv.jpg]]
<h1 class="text-center"><img src="https://img.itch.zone/aW1nLzcyMDQ3NTgucG5n/original/uomP1L.png" loading="lazy"></h1>
<h6><img src="https://img.itch.zone/aW1nLzcyMDQxMDIucG5n/original/Cg6tHa.png" loading="lazy"></h6>
<h6><div class=""><div class="text-center"><iframe width="500" height="281" src="https://www.youtube.com/embed/L-7pK2Tl9xc" frameborder="0" allowfullscreen=""></iframe></div><br></div></h6>
<h3>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;Halloween is here!</h3>
<h3>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;It's time for the annual Halloween Ball on Halloween Town! Join KaraMaple and Punkpin as they&nbsp;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;prepare themselves for the most important night of the Year!</h3>
<h3>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;Get your moves ready, tune your hear for the beat, and prepare to battle a legion of Cursed Candies<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;while you dance to the spooky beat.</h3>
<h3>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;Protect your festival from the Old Geezer Gang and drive them off Halloween Town,<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;assuring the spookier festival ever!</h3>
<p><img src="https://img.itch.zone/aW1nLzcyMDQxMDIucG5n/original/Cg6tHa.png" loading="lazy"></p>
<h4 class="text-center"><span></span><img src="https://img.itch.zone/aW1nLzcyMDQyMDcucG5n/original/aaQHN7.png" style="color: inherit; font-size: inherit" loading="lazy"><span></span></h4>
<h3>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; The game counts on a rhytym bar that's sync with the music. You only move on those beats.<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Make sure that you are moving towards the right direction!</h3>
<h3>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;You can destroy all the candies currently transformed, on a straigth line!<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Use this in your favor to build power and score some points!</h3>
<h3 class="text-center">    <img src="https://img.itch.zone/aW1nLzcyMDQ2NzIucG5n/original/6pHQjM.png" loading="lazy"></h3>
<p class="text-center"><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/L-7pK2Tl9xc" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1nLzcyMDQ3NTIucG5n/original/FBj4L%2B.png]]
<p>"Spring Comes Again" is a solo journaling RPG, where you take on the form of an Elfling who tries to keep winter from approaching before its time. The creatures that awaken are bold and create havoc. Bring creatures under control and push their energy into healthy activities.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM0MDE0My83Nzk5NDkxLnBuZw==/original/UaAoPe.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM0MDE0My83Nzk5NDkzLnBuZw==/original/mD3a2o.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM0MDE0My83Nzk5NDkyLnBuZw==/original/QMm0%2F%2F.png]]
<h1>
STARFIGHTER INC NEEDS YOU!
</h1>
<p>
	<br>Congratulations on your promotion to head of Research and Development for StarFighter Incorporated!<br></p>
<p>
	We make the best Starfighters in the galaxy! Or at least we used to make the best Starfighters in the galaxy. Now we are woefully behind the competition.
</p>
<p>
	It's up to you to research, build, and test new Starfighter designs and technologies.
</p>
<p>
	Don't let the company down!
</p>
<h2>FEATURES<br>
</h2>
<ul>
	<li>36 asteroid base buildings to build and upgrade</li><li>28 different ship parts to research</li><li>16 enemy ships</li><li>9 wild weapon technologies to choose from</li><li>3 special bosses</li><li>1 epic mega boss</li>
	<li>customizable keyboard keys</li>
	<li>choose from mouse and keyboard or gamepad support</li>
</ul>
<h2>
QUOTES
</h2>
<p>
	"Wonderful beta with awesome graphics. The ship building mechanic is brilliant." - 
	<a class="" href="http://www.jupiterhadley.com/" rel="nofollow noopener" referrerpolicy="origin">Jupiter Hadley, Youtuber, AlphaBetaGamer</a>
</p>
<p>
	"1942 in space with a 4X tech tree" - 
	<a class="" href="http://ibology.org/" rel="nofollow noopener" referrerpolicy="origin">Bob Saunders, IBOLOGY</a>
</p>
<h2>DEMO</h2>
<p>
	Enjoy a demo of Starfighter!  Only the first 3 technologies for each branch are available.
</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/FAy2RqvglTU" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE1NjI3LzU2MjE3My5wbmc=/original/sI4OvU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1NjI3LzU2MjE3MS5wbmc=/original/R3RNDl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1NjI3LzU2MjE3Mi5wbmc=/original/b2BPlN.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1NjI3LzU2MjE3NC5wbmc=/original/JPET06.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1NjI3LzU0NjI4OC5qcGc=/original/UUpPjk.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1NjI3LzU0NjI4OS5qcGc=/original/AmfyY2.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1NjI3LzYwMTMxOC5wbmc=/original/WSpriL.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1NjI3LzU0NjI4Ny5qcGc=/original/6Ef1yF.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1NjI3LzU0NjI5NC5qcGc=/original/J2Z5si.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1NjI3LzU0NjI5MS5qcGc=/original/VeGzOr.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1NjI3LzU0NjI5Mi5qcGc=/original/gsZ8dc.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1NjI3LzU0NjI5MC5qcGc=/original/5wgYTM.jpg]]
<p><strong>Starlight Shores launched on October 30th, 2020!</strong><br></p>
<p><img src="https://img.itch.zone/aW1nLzMzNjczMjMucG5n/original/4j6Mi6.png" loading="lazy"></p>
<p><strong>The Story:</strong></p>
<p>After your childhood friend Theo wins a weekend getaway to the town of Seaside, you prepare to spend your birthday in paradise.&nbsp;It's been months since you last saw Theo, and she's incredibly excited to spend the weekend together.&nbsp;</p>
<p>She invites her roommate&nbsp;Lena to join the group, and Theo extends an invitation to your friend Alec. After parting ways to attend different colleges, it's just the get-together that&nbsp;you need to reconnect.&nbsp;</p>
<p><img src="https://img.itch.zone/aW1nLzM1NzI0MDUucG5n/original/uqlM0W.png" loading="lazy"><br></p>
<p>Everything seems to be coming together perfectly... until Alec insists on driving by himself. You arrive at the cottage before him, certain that he's ditched the group. A short while later, he calls to announce that he's&nbsp;bringing along an uninvited guest. <br></p>
<p>Although Erika may be from the same small-town as most of the group, that's about the only thing you share in common...&nbsp;<br></p>
<p>Will you enjoy your night with Theo and wish on a star?</p>
<p><strong>The Cast:</strong><br></p>
<p><strong>Theo</strong></p>
<p><img src="https://img.itch.zone/aW1nLzM1NTI4NzkucG5n/original/Xs2L%2BJ.png" loading="lazy"></p>
<p>Theo is your childhood friend. Although initially shy with strangers, Theo has a great sense of humour and loves to joke around with her friends. She prefers to have a tight-knit group and doesn’t open up to just anyone. She studies photography at the same college as her roommate Lena and loves spending time with her. Theo won a draw for a cottage getaway in the town of Seaside and is your host for the weekend.</p>
<p><br></p>
<p><strong>Lena</strong><br></p>
<p><img src="https://img.itch.zone/aW1nLzM1NTI4ODEucG5n/original/1QrrBA.png" loading="lazy"></p>
<p>Lena is Theo’s roommate… and replacement best friend. You don’t know much about her, or even what she’s studying. From what you’ve seen on Friendex, Lena is a vibrant and outgoing person. She’s always dyeing her hair different colours and wearing cute clothes. According to her online bio, in her spare time she enjoys hiking and playing piano.<br><br></p>
<p><strong>Alec</strong></p>
<p><img src="https://img.itch.zone/aW1nLzM1NTI4ODkucG5n/original/JWmLf6.png" loading="lazy"></p>
<p>Alec is a friend from your hometown who is attending the same college. You both have similar hobbies like&nbsp;gaming, eating out, and playing soccer. Naturally, renting a student house with Alec seemed like a great idea… until he started dating. He jumps from girl to girl, never committing despite constantly whining that he wants a serious relationship. His latest date, Erika, tagged along to the cottage without an invitation. Lately, Alec has been pissing you off.<br></p>
<p><br></p>
<p><strong>Erika</strong><br></p>
<p><img src="https://img.itch.zone/aW1nLzM1NTI4OTAucG5n/original/CSswXF.png" loading="lazy"><br></p>
<p>A year younger than you, Erika is from the same hometown. You don’t remember much about her, or ever talking to her…</p>
<p><strong>Our Team-</strong><br></p>
<p><strong>Sam Kerr- Creative Director and Lead Developer</strong></p>
<p><strong>Nanae Lia- Creative Director, CG &amp; Character Artist</strong></p>
<p><strong>Tanuma San- CG &amp; Background Artist</strong></p>
<p><strong>Alcaknight- Lead Composer</strong><br></p>
<p><strong>BackgroundTK- Outdoor Background Artist</strong></p>
<p><strong>Re.Alice- Logo Designer</strong></p>
<p><strong>A special thanks to Uncle Mugen,&nbsp;</strong><strong>CC backgrounds were from his lemmasoft page!<br><br>Join our Discord today!&nbsp;<a href="https://t.co/yIcm7mq9m7?amp=1" rel="nofollow noopener" referrerpolicy="origin">https://t.co/yIcm7mq9m7?amp=1</a></strong></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/anzq0aTNOzA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTkxODg2LzM1NTI0MDkucG5n/original/xmS3xy.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTkxODg2LzM1NTI0MDgucG5n/original/UXBbzl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTkxODg2LzM1NTI0MTgucG5n/original/07fNZ%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTkxODg2LzM1NTI0MjAucG5n/original/NtzxM0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTkxODg2LzQ0OTM0ODUucG5n/original/6yz%2B2V.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTkxODg2LzM1NTI0NDYucG5n/original/vtbvqI.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTkxODg2LzM1NTI0MzEucG5n/original/di%2B4Jp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTkxODg2LzM1NTI0NTgucG5n/original/2luNSj.png]]
<p><em>Statuesque</em> is designed by Whimsy Machine as my half of an rpg trade with Nora Blake, inspired by an #aesthetic moodboard she made. It is a tabletop rpg played in two halves: act one is a solo game and act two adds a second player. It's about relationships, power imbalances, and art.</p>

[img width=500 [https://img.itch.zone/aW1nLzM3ODg0ODgucG5n/original/dg1DwV.png]]
<h2></h2>
<h2><u>Overview</u></h2>
<p><em>Steam Marines 2</em> brings you to distant star systems and planetoids square in the path of conflict between the Tor alien race and the banner of sentient machines.</p>
<p>Take the helm of the <em>I.S.S. Delhi</em> and build your crew of marines and fleet resources toward the ends you choose.</p>
<ul><li>Permadeath - take care of your marines or die trying.</li><li>Turn-based combat - master movement and fire tactics.</li><li>Procedural generation - ship interiors and planetside levels.</li><li>Factions - human, alien, and robot units with their own gear and tactics.</li><li>Customization - marines with names, portraits, and gear.</li></ul>
<p><em><a href="http://www.SteamMarines2.com" rel="nofollow noopener" referrerpolicy="origin"></a></em><a href="https://www.SteamMarines2.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Official website</a></p>
<p><a href="https://www.worthlessbums.com/PressKit/sheet.php?p=steam_marines_2" target="_blank" rel="nofollow noopener" referrerpolicy="origin">PressKit!</a><br></p>
<p><a href="https://worthlessbums.us19.list-manage.com/subscribe?u=8bf61bade9ecbf95ed2284b64&amp;id=247236cfec" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Email Signup!</a><br></p>
<p><em></em></p>
<p><br></p>
<h2><u>Original Soundtrack</u></h2>
<p><a href="https://worthlessbums.itch.io/steam-marines-2-original-soundtrack" target="_blank">Available on Itch!</a></p>
<p><br></p>
<h2><u>Merchandise</u></h2>
<p><a href="https://www.redbubble.com/people/worthlessbums" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Hoodies and more at Redbubble!</a></p>
<p><br></p>
<h2><u>Crew</u></h2>
<p>Coder/Designer - Yik-Sian James Seow</p>
<p>Character Animator - Edward del Villar</p>
<p>Environment Artist - Daniel Allen</p>
<p>Portrait Illustrator - Jenny Pattison</p>
<p>Audio - James Mulvale</p>
<p>User Interface Art - David G. Baumgart</p>
<p><br></p>
<h2><u>Other Links</u></h2>
<p><a href="https://worthlessbums.itch.io/steammarines" target="_blank">Steam Marines on Itch!</a>
</p>
<p><a href="https://worthlessbums.itch.io/steam-marines-3" target="_blank">Steam Marines 3 on Itch!</a></p>
<p><br></p>
<h2><u>Minimum System Requirements</u></h2>
<p><em>Windows</em></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p><li><strong>OS:&nbsp;</strong>Windows 7</li><li><strong>Processor:&nbsp;</strong>2.0 GHz Dual Core</li><li><strong>Memory:&nbsp;</strong>2 GB RAM</li><li><strong>Graphics:&nbsp;</strong>700Mhz / 1GB</li><li><strong>DirectX®:&nbsp;</strong>10 (shader model 4.0)</li><li><strong>Hard Drive:&nbsp;</strong>1 GB HD space</li><li><strong>Screen Resolution:</strong>&nbsp;1366x766</li><li><strong>Input:</strong> Mouse and keyboard</li><p></p><p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p><span></span></p>
<p><em>Linux</em></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p><li><strong>OS:&nbsp;</strong>Ubuntu 14.04 LTS</li><li><strong>Processor:&nbsp;</strong>2.0 GHz Dual Core</li><li><strong>Memory:&nbsp;</strong>2 GB RAM</li><li><strong>Graphics:&nbsp;</strong>700Mhz /&nbsp;1GB&nbsp;(not Intel HD Graphics)</li><li><strong>Hard Drive:&nbsp;</strong>1&nbsp;GB HD space</li><li><strong>Screen Resolution:</strong>&nbsp;1366x766</li><li><strong>Input:</strong>&nbsp;Mouse and keyboard</li><p></p><p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p><u><br></u></p>
<p><u></u></p>
<h2><u>Steam Keys</u></h2>
<p>Every purchase of&nbsp;<em>Steam Marines 2</em>&nbsp;on Itch.io will come with one Steam key when the game releases on Steam.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/6CWZy5CLyEs" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTMzMDUvMjA0MzYxOS5naWY=/original/UnfHv8.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNTMzMDUvMjA0MzU2Mi5naWY=/original/eOb57w.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNTMzMDUvMjA0MzYwNS5naWY=/original/UmCeCM.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNTMzMDUvMTU2ODM3My5wbmc=/original/VzDkbv.png]]
<iframe width="550" height="309" src="https://www.youtube.com/embed/Mw5T_Bs5-H0" frameborder="0" allowfullscreen=""></iframe>
<p>
	Steam Marines is a squad based Roguelike featuring tactical play focused on positioning and careful use of resources. Keep on your toes as you fight through your besieged ship trying to reach each level's elevator. <br>
	<br>
	<strong>Features</strong></p>
<ul><li>Death is permanent and fallen marines are gone forever.</li><li>Five marine classes, each with their own unique weapon effects.</li><li>Four ranks and five perks for&nbsp;marine build diversity.</li><li>Exoskeleton suits stripped from the hulks of dead enemies.</li><li>Challenging bosses that do not negate the tactics you have learned.</li><li>New Game Plus!</li></ul>
<p><a href="https://worthlessbums.us19.list-manage.com/subscribe?u=8bf61bade9ecbf95ed2284b64&amp;id=247236cfec" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Email Signup!</a></p>
<p><br></p>
<h2><u>Other Links</u></h2>
<p><a href="https://worthlessbums.itch.io/steam-marines-2" target="_blank">Steam Marines 2 on Itch!</a><br></p>
<p><a href="https://worthlessbums.itch.io/steam-marines-3" target="_blank">Steam Marines 3 on Itch!</a><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/Mw5T_Bs5-H0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMzkvMTA2NTY3OC5naWY=/original/o4gRaC.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMzkvNDE4NDcuanBn/original/4zRx%2F8.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMzkvNDE4NDguanBn/original/7p3kGm.jpg]]
<p><strong>Fight in ever changing space battles! </strong><br><br>Run through the universe, discover the numerous perks/consumables and their synergistic effects. Explore the randomly-generated galaxy to find merchants, unlock spacecrafts, collect StellarNetES Cartridges, checkmark your kills of the various galactic overlords. <br><br>And die. A lot! <br><br>Can you find the most outrageous perk combination to defeat the Last Overlord? <span></span><br></p>
<h2>Core Features</h2>
<ul><li><strong>Rogue-like Elements</strong>: With a randomly generated universe and randomized perks, no journey will ever be the same! What will happen to you, in your own unique apocalyptic cataclysmic transgalactic voyage? </li></ul>
<hr>
<ul><li><strong>Synergistic Perk System</strong>: Over 100 perks and consumables! Look out for the synergistic nature of the perks that suits your playstyle! </li></ul>
<hr>
<ul><li><strong>Galactic Bounties: </strong>Complete over 100 missions to participate in the StellarNET Entertainment System lottery! </li></ul>
<hr>
<ul><li><strong>Customize Your Start</strong>: Choose your spacecraft: there is one for every playstyle, as they have unique starting perks. You can personalize your arsenal from numerous weapons: cannons, missiles and lasers! </li></ul>
<hr>
<ul><li><strong>Unlock Spacecrafts, View Your Progress</strong>: Check out what have you accomplished in our in-game encyclopedia StellarNET. Unlock new spacecrafts, kill all the bosses to progress in StellarNET's kill table. Check which perks and consumables you have used and seen, and what is your progress towards the achievements!  </li></ul>
<hr>
<ul><li><strong>Explore the Universe</strong>: Some levels are more special than others: Merchants, Bosses, Spacecraft Factories. Fight through lower-difficulty levels to stock up on perks, or just streamline to the end-boss if you feel powerful enough!  </li></ul>
<hr>
<ul><li><strong></strong><strong>Controller Support:</strong><strong></strong> Plug-and-play with any kind of controller!</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/GIcqP9Ny7vE" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzMwMTQvNDY1NDIzLnBuZw==/original/VOFuiE.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzMwMTQvNDY1NDI4LnBuZw==/original/8n7wRo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzMwMTQvNDY1NDI0LnBuZw==/original/%2Boiggi.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzMwMTQvNDY1NDIyLnBuZw==/original/6YoFXu.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzMwMTQvNDY1NDI3LnBuZw==/original/DdzPR1.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzMwMTQvNDY1NDMxLnBuZw==/original/%2FffQqp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzMwMTQvNDY1NDM1LnBuZw==/original/56XOl6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzMwMTQvNDY1NDMzLnBuZw==/original/iXIf2d.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzMwMTQvNDY1NDM0LnBuZw==/original/xkmE6Y.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzMwMTQvNDY1NDI2LnBuZw==/original/1ovya1.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzMwMTQvNDY1NDI1LnBuZw==/original/pbSfbt.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzMwMTQvNDY1NDMwLnBuZw==/original/FCHPm%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzMwMTQvNDY1NDMyLnBuZw==/original/3tB9uf.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzMwMTQvNDY1NDM3LnBuZw==/original/73jX%2B4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzMwMTQvNDY1NDI5LnBuZw==/original/Sw%2FL1l.png]]
<p>Stepping into the Oblivion is a dice-less and GM-full TTRPG about the reunion of a group of friends, the stories they remember around a great trip they made&nbsp;and the realization of time as an enemy of remembrance, and the fading of said memories. The game builds around a growing sequence of dominoes, each holding a relevant detail about the trip. What happens when the tiles stop fitting together, and none of your friends can help out?</p>
<p>Stepping into the Oblivion also comes with 2 different game modes, with slightly different rules and a very different feel. One of them is narrated in the present, as if the Travellers were adventuring now, and rounds are also faster, contributing to a more exciting pace. The other is narrated in the past tense, and every forgotten memory feels much heavier, as if something forgotten now, many many years later, cannot possibly be recovered.</p>
<p>This entry is a result of the Tiny Tome single-page RPG jam - the original version, created in August 2021, for the RPGenesis jam,&nbsp;<a href="https://dimitri-drgivaca.itch.io/trilhos-no-oblivio">is available in portuguese</a>.&nbsp;</p>
<p>For this version I am grateful to both my sister LusoKarma and to @Ink_And_Stories for the feedback given.<br>Regarding art, page 1 is: Photo by <a href="https://unsplash.com/@mischievous_penguins?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" rel="nofollow noopener" referrerpolicy="origin">Casey Horner</a> on <a href="https://unsplash.com/?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" rel="nofollow noopener" referrerpolicy="origin">Unsplash<br></a>page 2 is: <a href="https://www.rawpixel.com/image/436395/old-photos" rel="nofollow noopener" referrerpolicy="origin">Vintage photos in an old | Free Photo - rawpixel<br></a>cover image is&nbsp;Photo by <a href="https://unsplash.com/@invictar1997?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" rel="nofollow noopener" referrerpolicy="origin">Soragrit Wongsa</a> on <a href="https://unsplash.com/?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" rel="nofollow noopener" referrerpolicy="origin">Unsplash</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMzNDI0Mi83NzcyOTc1LnBuZw==/original/aO5bvh.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMzNDI0Mi83NzcyNjYzLnBuZw==/original/Bix2HV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMzNDI0Mi83NzcyNjYyLnBuZw==/original/GNiIXR.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMzNDI0Mi83NzcyNjY0LnBuZw==/original/baSR8B.png]]
<p><strong>[NEW UPDATE ANNOUNCEMENT! I have been working on a newer snazzier version of this game with 2 bonus maps and some updated mechanics! Please ensure you get the updated file.]<br></strong></p>
<p><br></p>
<p><br><br>Stories to Astonish the World is a point-crawl TTRPG drawing inspiration from Chinese landscape painting and literary compilations of weird supernatural events that happen to hapless travelers.&nbsp;</p>
<p>&nbsp; </p>
<hr>
<p>&nbsp; </p>
<p>In this game, you play a motley group of travelers on a journey through the valleys and mountains of the Great River region. Motives and backgrounds vary greatly amongst your crew, perhaps you are a member of the literati travelling to appreciate scenery and poetic sights, an outlaw out to fulfill their mission, or a political exile going off to find the best place to be a wise hermit.&nbsp;</p>
<p>Regardless, you are united in three key points - you have some destinations you need to visit along the Great River, you have prepared yourself for perils both supernatural and mundane, and you definitely cannot do this alone.&nbsp;</p>
<p>Pick your map and embark on a weird and hopefully wonderful road-or-boat-trip.&nbsp;</p>
<p>&nbsp; </p>
<hr>
<p>&nbsp; </p>
<p>Created for Laurie O' Connel's Paintings Jam.&nbsp;</p>
<p><span class="">Inspiration credit is due to Lady Blackbird by John Harper, Hieronymous by Laurie O' Connel and Ultraviolet Grasslands by Luka Rejec.</span><span class=""></span></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODg1MDgyLzczNDU5NDIucG5n/original/q9Pw5h.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODg1MDgyLzczNDU5NDMucG5n/original/D%2Byc3V.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODg1MDgyLzczNDU5NDYucG5n/original/bkju24.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODg1MDgyLzczNDU5NTQucG5n/original/W9SK9G.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODg1MDgyLzczNDU5NTcucG5n/original/xhxZV2.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODg1MDgyLzczNDU5NTYucG5n/original/Yh2PLw.png]]
<p class="text-justify"><em><strong>Strife of Cosmos</strong></em> is a fast-paced space fantasy battle RPG where you lead a party of Heroes on a desperate mission to defeat the godlike Void Tyrant before it ends the universe.<br></p>
<p>Battle your way through waves of enemies guarding the many Zones of Blackstar Citadel. Grow your Heroes by uncovering new Skills and Items. Harness the powers of both Light and Dark to triumph over tough bosses. Die trying to save the Cosmos.</p>
<p>Each run is a little different, slowly unravelling the curtain of reality ...</p>
<p>Free Demo Version is available on <a href="https://rpgmaker.net/games/12212/" rel="nofollow noopener" referrerpolicy="origin">RPGMaker.Net</a>.</p>
<p>Soundtrack available on <a href="https://mythatelier.itch.io/strife-of-cosmos-game-soundtrack" target="_blank">itch.io</a>, <a href="https://isiahbrighton.bandcamp.com/album/strife-of-cosmos-game-soundtrack" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Bandcamp</a>, and <a href="https://music.apple.com/us/album/strife-of-cosmos-game-soundtrack/1586345640" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Apple Music</a>.</p>
<hr>
<p><strong>CREDITS</strong></p>
<ul><li><a href="https://twitter.com/mythbuilder" rel="nofollow noopener" referrerpolicy="origin"><strong>Swarnava Banerjee</strong></a> - Designer + Producer</li><li><a href="https://twitter.com/IsiahGames" rel="nofollow noopener" referrerpolicy="origin"><strong>Isiah Brighton</strong></a> - Programmer + Composer</li><li><a href="https://twitter.com/victorgoesvroom" rel="nofollow noopener" referrerpolicy="origin"><strong>Victor B. Thomas</strong></a>&nbsp; - Pixel Artist</li><li><a href="https://twitter.com/DJs_SecretPlans" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong>David Jones</strong></a> - Lead Writer</li></ul>
<p>Plugins used made by SumRndmDde, Victor Sant, Yanfly, Himeworks, biud436, Isiah Brighton, Galv, Tor Damaian Design, Fallen Angel Olivia, DaedraKyne, TwentyFree and Mr. Trivel
 </p>
<p>Some Visual and Audio Assets from Degica and Game-Icons.net.&nbsp; SFX from Degica. Using fonts by somepx.<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/GDQO0ekvM6o" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTExMzk0My83MzE2Mzc3LmdpZg==/original/Tl8Zru.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTExMzk0My83MzE2MzY4LmdpZg==/original/0gzXuE.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTExMzk0My82OTYwODc3LnBuZw==/original/Z1swda.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTExMzk0My83NDkwMTE4LnBuZw==/original/BiMFWY.png]]

<h2>Divide the world</h2>
<p>Make your way through over 50 levels by manipulating a line that divides the world. Reveal a platform to get across a gap. Cut through a platform to drop down past it. Make a ramp by cutting a platform midway, or even use a platform as an elevator to make it to the goal.<br></p>
<h2>Dive deeper into a mysterious world</h2>
<p>Use your power to venture deeper and deeper underground, through forests, caves, and a mysterious laboratory. Something is compelling you, but what? Why are there holes in reality? What awaits you at your destination?<br></p>
<h2>Relax to no-pressure gameplay</h2>
<p>Quick respawn times, forgiving platforming, and a calm ambience make sure that you won't get too frustrated. Levels focus on navigation and planning rather than quick reflexes and fast reaction time.</p>
<h2>Now on itch.io!</h2>
<p>Minus achievements, this release all the same content as the Steam version, including the content added in the Multiplied update, and it's all DRM free!</p>
<p><br></p>
<p><strong>Oh, <a href="https://julianheuser.bandcamp.com/album/subdivide-ost" target="_blank" rel="nofollow noopener" referrerpolicy="origin">and the soundtrack is free.</a></strong><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/JAfNd1lHvI4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM2NDEyMS83OTQxNTM1LmpwZw==/original/%2F0lkVv.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM2NDEyMS83OTQxNTMxLmpwZw==/original/UqRTrn.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM2NDEyMS83OTQxNTI5LmpwZw==/original/7OxxBD.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM2NDEyMS83OTQxNTM0LmpwZw==/original/t3yZM4.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM2NDEyMS83OTQxNTMyLmpwZw==/original/WGxYer.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM2NDEyMS83OTQxNTI4LmpwZw==/original/K6jm0t.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM2NDEyMS83OTQxNTMzLmpwZw==/original/wY5Hnz.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM2NDEyMS83OTQxNTM2LmpwZw==/original/lxIirc.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM2NDEyMS83OTQxNTMwLmpwZw==/original/jvDTsv.jpg]]
<p><strong></strong></p>
<p>Silvia is an FBI agent in charge of superhero relations in Sudd City and while that might sound glamorous it often involves just being organized enough to prevent some interesting characters from falling apart.<br><br><strong>Participate in the usually unseen parts of the lives of super heroes in this 2D lighthearted short narrative adventure.</strong><br></p>
<h2>Story</h2>
<p>Play as a special agent with friends who happen to be superheroes experiencing minor inconveniences at their headquarters while not fighting crime. Their Very Important Problems include a missing skull ring, escaped reptiles, couch entrapment, accidentally creating sentient robots, and more.</p>
<p><br>She'll need to interrogate her friendly suspects and investigate all the clues as she tries to get to the bottom of their personal crisis so she can go home.<br></p>
<h2>Features</h2>
<ul><li>2D Hand Drawn Art</li><li>Point, Clicking, and Judging</li><li>A team of interesting heroes and animals to interact with</li></ul>
<p><strong>A short game for busy heroes. Playtime is around an hour!</strong></p>
<p><strong>Each purchase includes a steam key.</strong></p>
<p><img src="https://img.itch.zone/aW1nLzM0MTY1ODIucG5n/original/CY6AKv.png" loading="lazy"></p>
<p><br></p>
<p>Released May 22th 2020.&nbsp;</p>
<p><a href="https://twitter.com/suddcity" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Follow us on twitter</a> for more news about studio updates.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/63-By5M_Uo8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTU4MzcwLzMwNDg3NDgucG5n/original/apMJvC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTU4MzcwLzMwNDg3NDkucG5n/original/FKqH7t.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTU4MzcwLzMwNDg3NTIucG5n/original/5JhWtQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTU4MzcwLzM0MTY2ODQucG5n/original/OSv3Yk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTU4MzcwLzM0MTY2OTQucG5n/original/w9YVew.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTU4MzcwLzM0MTY2OTUucG5n/original/1kH441.png]]
<p><strong>Sudoku Zenkai</strong>&nbsp;is a game for beginners and advanced Sudoku players.</p>
<p><br><strong>It lets you play cooperatively with your friends!</strong>&nbsp;You can start a new puzzle with a friend or simply ask one to help you on that tricky one, two heads are always better than one (usually).<br><br>Train your brain, logic and perception skills with Sudoku Zenkai puzzles in six different difficulties so that you can start on trainee levels to exercise your logical thinking and memory, or just jump to the insane levels to give your mind a real workout.<br><br>Sudoku Zenkai also features different themes allowing to play on which style you find most comfortable. Tired of numbers? With Sudoku Zenkai emblems you can spice up any Sudoku puzzle with letters, greek, kanji and more.<br><br>This game has its own high-quality puzzle generator (no internet required), everyday you can enjoy fresh puzzles and compete with friends on who has the best time.<br>With Sudoku Zenkai, you won’t be looking for a paper puzzle ever again!<br><br><strong>Features</strong></p>
<ul><li><strong>Six difficulty levels</strong>&nbsp;, from Trainee to Zenkai, ensuring that you will be able to find a puzzle that matches your skill level.</li><li><strong>Co-op Mode</strong>, invite a friend to help you out solving the puzzle!</li><li><strong>High-quality puzzle generator</strong>, no matter how much you play there will be always fresh and unique puzzles available.</li><li><strong>A&nbsp;Theme&nbsp;for all</strong>, pick the theme that best suits your style.</li><li><strong>Emblems</strong>, tired of numbers? Try some of our emblems that range from letters, greek to kanji!</li><li>Turn on&nbsp;<strong>Pencil&nbsp;mode</strong> to make notes as if you were on paper. Each time you fill in a cell, notes are automatically updated!</li><li><strong>Duplicate Highlighting</strong>&nbsp;to avoid repeating numbers in a row, column and square .</li><li><strong>Hints</strong>, that help you get past that hurdle.</li><li><strong>Last Valid Board</strong>, made a mistake and don't know where? With last valid board you can get back into the past where everything was good!</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/qesm9WABWIM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjM5NDQwLzExNDAzODAucG5n/original/A93Wwf.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjM5NDQwLzExNDAzNzkucG5n/original/VvsOMl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjM5NDQwLzExNDAzODMucG5n/original/IBGKVl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjM5NDQwLzExNDAzODQucG5n/original/sK4ccr.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjM5NDQwLzExNDAzODIucG5n/original/Nrw7sX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjM5NDQwLzExNDAzODEucG5n/original/TwzOVy.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjM5NDQwLzExNDAzODUucG5n/original/DMSG40.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjM5NDQwLzExNDAzOTAucG5n/original/r9io4s.png]]
<p>You are Sulphur Nimbus, a hippogriff who gets stuck on a cursed island during a sidequest gone wrong. Collect magical blobs, fight weird monsters, and get lost in the depths of the earth.</p>
<p>You'll be able to fly wherever you want, but you're a horsebird so it won't be easy. As you dive deeper into the island's underground caverns, you must learn to manage your momentum with increasing care and precision.<br></p>
<p>Sulphur Nimbus: Hel's Elixir takes inspiration from momentum-based platformers, six-degrees-of-freedom games, action adventures and collectathons.</p>
<p>The project was funded on <a href="https://www.kickstarter.com/projects/oddwarg/sulphur-nimbus-hels-elixir" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Kickstarter</a> in 2016. (It took a bit too long to finish.) The source code is available on <a href="https://sourceforge.net/projects/sulphur-nimbus-hel-s-elixir/" rel="nofollow noopener" referrerpolicy="origin">SourceForge</a>. The original soundtrack is available on <a href="https://oddwarg.bandcamp.com/album/sulphur-nimbus-ost" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Bandcamp</a>. If you are having trouble, or would like to discuss something else, there is a <a href="https://discord.gg/QpuXhWS" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Discord server</a>.<br></p>
<p>This game is known to cause motion sickness in some individuals. The learning curve can be somewhat steep and the game features some mild dark themes. It is not suitable for children.<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTI1ODM3LzI3NDY2MjMucG5n/original/z7kayb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI1ODM3LzI3NDY2MjAucG5n/original/wT44AG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI1ODM3LzI3NDY2MTkucG5n/original/oP%2FgeS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI1ODM3LzI3NDY2MjIucG5n/original/jjE0rY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI1ODM3LzI3NDY2MTgucG5n/original/tnsXMf.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTI1ODM3LzI3NDY2MjEucG5n/original/L5spTY.png]]
<p><strong><img src="https://img.itch.zone/aW1nLzY2MDU4MjEucG5n/original/%2F3jBWt.png" loading="lazy"></strong><br></p>
<p class="text-center"><strong>Summer.&nbsp;</strong><br></p>
<p><strong><br></strong></p>
<p class="text-center"><strong>A special time when anything can happen.<br><br>The possibilities are infinite: even a shard of glass worn by the sea&nbsp;</strong></p>
<p class="text-center"><strong>can become the most precious treasure.</strong></p>
<p><br></p>
<p class="text-center"><strong>Friendships are like that.&nbsp;</strong></p>
<p class="text-center"><strong>In a seaside summer, friendships can last no longer</strong></p>
<p class="text-center"><strong>than a splashing wave.&nbsp;</strong></p>
<p><strong><br></strong></p>
<p class="text-center"><strong>But like those pieces of glass,&nbsp;</strong></p>
<p class="text-center"><strong>they're turned into treasures by the sea.</strong></p>
<p class="text-center"><strong>That is what happens to Leo and Mara.</strong></p>
<p><br></p>
<p class="text-center"><strong>Join them in this little summer break through the salty breeze&nbsp;</strong></p>
<p class="text-center"><strong>of the Mediterranean Sea.</strong></p>
<p></p>
<p><br></p>
<p class="text-center"><strong>Explore. Live. Love.</strong></p>
<p class="text-center"><strong><br></strong></p>
<h2>Controls</h2>
<ul><li>Use WASD on your keyboard to move around.</li>
<li>Click on objects to interact with them.</li><li>Hit ESC to tweak the volume or quit the game.</li><li>And don't forget to send your letter (if you want to, of course).</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA2OTAxMC82ODI1MDkzLmdpZg==/original/%2FLZ5qg.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA2OTAxMC82ODI1MDc1LnBuZw==/original/yPFm0y.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA2OTAxMC82ODg4NzIxLnBuZw==/original/DH6nNU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA2OTAxMC82ODg4NjIxLnBuZw==/original/LTNFlo.png]]
<p class="text-justify"><strong>Summer in Mara</strong> is a summer adventure with farming, crafting, and exploring mechanics set in a tropical archipelago.</p>
<div class="text-justify"><iframe src="https://www.youtube.com/embed/s1YTEPhpcIo" allowfullscreen="" width="560" height="315" frameborder="0"></iframe></div>
<h2 class="text-center">A relaxing farming adventure</h2>
<p>‘Summer in Mara is a single-player experience in a calm, relaxing environment, with a handmade look and an exciting narrative. You will be <strong>Koa</strong>, a little adventurer girl who wants to explore the world that surrounds her.</p>
<p class="text-justify">In Summer in Mara you’ll have to take care of your own island, harvest your crops, create new tools and buildings, and sail with your boat to discover new islands and secrets.</p>
<p><strong>Features</strong></p>
<p>- An open ocean with over 20 islands to explore.<br><br>- Customize your own island with buildings, crops and farm animals.<br><br>- Over 25 characters to meet and befriend.<br><br>- More than 300 quests to make Mara a better place.<br><br>- Day and night cycle that have an effect on the world with climatic events.<br></p>
<p class="text-justify">Harvest, take care of your animals, fish in open sea, meet new people and live exciting adventures with Koa!<br><br>Not everything will be friendly though. An evil corporation called Elit wants to conquer Mara and exploit the ocean. Napopo is one of their first victims, a strange creature that will seek Koa for help.</p>
<p class="text-center"><strong>Get the game&nbsp;and the official artbook with your purchase!</strong></p>
<p class="text-center"><em><em></em><em><img src="https://img.itch.zone/aW1nLzU5MzkyNjIuZ2lm/original/yGvU%2BF.gif" loading="lazy"></em></em><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/s1YTEPhpcIo" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAzOTcyMC81OTM5MTMwLmpwZw==/original/z1Zidf.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzOTcyMC81OTM5NjA1LmpwZWc=/original/NT2UqC.jpeg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzOTcyMC81OTM4OTgzLmpwZw==/original/OF6h4G.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzOTcyMC81OTM4OTgxLmpwZw==/original/5ojMOE.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzOTcyMC81OTM4OTgwLmpwZw==/original/YGIyUD.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzOTcyMC81OTM4OTgyLmpwZw==/original/S7exQ8.jpg]]
<p>Enter a huge manor to fix the mess you've made summoning a beast from the depths.<br></p>
<p>Look for the three sacred grimoires, hidden in a labyrinth made of rooms, closed doors and unsolved misteries.&nbsp;</p>
<p>Will you find it before it gets too dark and you'll get consumed by the fears that we can't see?&nbsp;</p>
<p>Enjoy a short time trial experience, memorize the scenario and reach one of the three endings before your torch gets out completely!</p>
<h1 class="text-center"><img src="https://img.itch.zone/aW1nLzY5NTMyOTQuZ2lm/original/sHcR6J.gif" loading="lazy">&nbsp;&nbsp;&nbsp;FEATURES&nbsp;&nbsp;&nbsp;<img src="https://img.itch.zone/aW1nLzY5NTMyOTQuZ2lm/original/sHcR6J.gif" loading="lazy"></h1>
<ul><li>More than 125 handmade rooms</li><li>Inventory management</li><li>Three possible endings</li><li>Accessibility&nbsp;settings</li><li>10 achievements to get</li><li>Speedrun mode</li></ul>
<p><br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzgyOTc2MzkucG5n/original/EaDeay.png" width="200" loading="lazy"><img src="https://img.itch.zone/aW1nLzgyOTc2MzgucG5n/original/xjKtQp.png" width="200" loading="lazy"></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/phugSPIZrEw" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE3NjY0OC83MjI1ODMyLmpwZw==/original/Om7P4Q.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE3NjY0OC83MjI1ODM0LmpwZw==/original/Sus39z.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE3NjY0OC83MjI1ODM1LmpwZw==/original/G3XdBP.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE3NjY0OC83MjI1ODM2LmpwZw==/original/0ukCDW.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE3NjY0OC83MjI1ODM3LmpwZw==/original/AX02kL.jpg]]
<p>Sun Dogs is about exploring our inner solar system, altering your body, and embracing death.</p>
<p>In a future where humanity alters itself without a second thought, you must do the same. Skim along the Sun's corona, float in the Venusian clouds, travel the Martian plains. When your body dies, your mind will be given a new one, and you will keep going.</p>
<p>Featuring an expansive world of unique science fiction, spread across planets, moons, and space stations. Dynamic text reacts to your character and your actions, and a full modding system allows you to rewrite the entire game.</p>
<p>Follow <a href="http://www.twitter.com/sundogsgame" rel="nofollow noopener" referrerpolicy="origin">twitter</a> for more updates and bits of fiction. </p>
<p>Credits: </p>
<p><a href="http://www.twitter.com/nictringali" rel="nofollow noopener" referrerpolicy="origin">Nic Tringali</a> - writing and design <br><a href="http://www.twitter.com/azuresama" rel="nofollow noopener" referrerpolicy="origin">Rebecca McCarthy</a> - writing<br><a href="http://www.twitter.com/coda_b" rel="nofollow noopener" referrerpolicy="origin">Sasa-P</a> - music</p>
<p>Praise for <em>Sun Dogs</em>: </p>
<p><a href="http://killscreendaily.com/articles/sun-dogs-uses-text-interrogate-our-solar-system/" rel="nofollow noopener" referrerpolicy="origin">Kill Screen</a>: "... vagueness and ambiguity are their own virtues in Sun Dogs." <span></span></p>
<p><a href="http://boingboing.net/2015/11/03/sun-dogs-game.html" rel="nofollow noopener" referrerpolicy="origin">Offworld</a>: "The real meat of the game is the text, lush but brief, that appears to illuminate the vast array of worlds and cultures you explore."</p>
<p><a href="https://emshort.wordpress.com/2015/10/29/sun-dogs-royal-polygon/" rel="nofollow noopener" referrerpolicy="origin">Emily Short's Interactive Storytelling</a>: "The biggest appeal for me was simply drifting from place to place and investigating all the unusual places and events." <span></span></p>
<p><a href="https://steamcommunity.com/linkfilter/?url=http://www.failbettergames.com/failbetter-suggests-sun-dogs/" rel="nofollow noopener" referrerpolicy="origin">FailBetter Games:</a> "... a memorable and intelligent flavour to its economically written stories." <span></span></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/sI35OiUxK7s" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzg1MzEvMTY5NTI4LnBuZw==/original/TQ0gxz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzg1MzEvMTY5NTI1LnBuZw==/original/p32B3n.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzg1MzEvMTY5NTI5LnBuZw==/original/T7Dbat.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzg1MzEvMTY5NTMwLnBuZw==/original/FLPs54.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzg1MzEvMTY5NTI0LnBuZw==/original/LATRzp.png]]
<p><img src="https://img.itch.zone/aW1nLzM1ODkzNzYuZ2lm/original/M1unLn.gif" loading="lazy"></p>
<h2>Resist or Embrace</h2>
<p><em>Sundered&nbsp;</em>is a chaotic hand­-drawn metroidvania where you resist or embrace ancient eldritch powers. Confront hordes of terrifying enemies in an ever-changing world inspired by the works of H.P. Lovecraft.&nbsp;<em>Sundered&nbsp;</em>is a challenging and unique take on a classic genre from the creators of&nbsp;Jotun, now with local co-op!<br><br>You play Eshe, a wanderer in a ruined world, trapped in ever-­changing caverns filled with hordes of terrifying enemies. Harness the power of corrupted relics to defeat gigantic bosses, at the cost of your humanity. Resist or embrace.<br><br><em>Sundered: Eldritch Edition</em>&nbsp;includes the&nbsp;<strong>Magnate of the Gong update</strong>, adding local co-op multiplayer support for up to 4 players, along with new areas and a chaotic battle against the new Magnate of the Gong boss!<br></p>
<p><img src="https://img.itch.zone/aW1nLzM1ODkzODEuZ2lm/original/sAXJVI.gif" loading="lazy"><br></p>
<h2>Key Features</h2>
<ul><li>Beautiful hand­-drawn art and animation</li><li>Chaotic encounters against hordes of enemies</li><li>Epic boss fights</li><li>Optional local co-op for up to 4 players</li><li>Hundreds of upgrades and multiple character builds</li><li>A mix of hand-crafted &amp; procedural levels</li><li>Multiple endings and over 15 hours of gameplay</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/bHRFT4o6TR0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjY0OTM2LzM1ODkxNzEucG5n/original/sinBjN.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY0OTM2LzM1ODkxNzIucG5n/original/ZE7%2BtJ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY0OTM2LzM1ODkxNzMucG5n/original/eYZ1Y%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY0OTM2LzM1ODkxNzQucG5n/original/%2BJWEe2.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY0OTM2LzM1ODkxNzUucG5n/original/9WAVEe.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY0OTM2LzM1ODkxNzYucG5n/original/fJU%2BBA.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY0OTM2LzM1ODkxNzcucG5n/original/t77EH7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY0OTM2LzM1ODkxNzgucG5n/original/%2F27Yhy.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY0OTM2LzM1ODkxNzkucG5n/original/VmmRCg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY0OTM2LzM1ODkxODAucG5n/original/jg1RqW.png]]
<blockquote>This game is based on a tale from Bad Buchau, a small town in the South-West of Germany at lake Federsee. It is said it retells the fall of the rich bronze age island city Wasserburg.<br>The player lives through the day before the attack and when they notice they are back Where it all begins, their goal is to change the fate of the island so the attack will never happen.</blockquote>
<p>In <strong>Sunken Island</strong>, you will safe an island from the dark fate of distraction.</p>
<p>Just like Phil relives Groundhog Day over, and over, and over again, you will be reliving the day before the fateful attack on the island. You will shape the fate of the island and create a unique world where you decide the obstacles and how to overcome them!</p>
<h3>The Fate of the Island is in Your Hands!</h3>
<p>Sunken Island is a submission to the <a href="https://itch.io/jam/five-powers-jam" target="_blank">Five Powers Jam</a>, the <a href="https://itch.io/jam/monthly-micro-jam-august-2020" target="_blank">Monthly Micro Jam -August 2020</a>, and the <a href="https://itch.io/jam/folklorejam2020" target="_blank">Folklore Jam 2020</a>.</p>
<p>The game is formatted in A5 and has 10 pages. The Booklet Version has 12 pages&nbsp;so it can easily be printed on A4 paper&nbsp;and turned into a&nbsp;little booklet. We included a back cover and an <strong>Extra Booklet Signature Page</strong> to collect all the signatures of your friends you played with!&nbsp;The retelling of the folktale and all artwork are original work by Ralf Mayenberger.<br></p>
<h3>Other Element Dice System Games:</h3>
<ul><li><a href="https://wuderpg.itch.io/wude-the-five-powers" target="_blank">五德 - The Five Powers</a>&nbsp;(Base Game)</li><li><a href="https://wuderpg.itch.io/mariann-soul-detective" target="_blank">Mariann: Soul Detective</a></li><li><a href="https://wuderpg.itch.io/returning-maiden" target="_blank">歸妹 - Returning Maiden</a></li><li><a href="https://wuderpg.itch.io/fog-spirit-of-federsee" target="_blank">Fog Spirit of Federsee</a></li><li><a href="https://wuderpg.itch.io/hiroin" target="_blank">Hiroin</a></li></ul>
<p><br></p>
<p>*We want to encourage you to purchase through Paypal because this leaves more for the creators than credit card purchases.*</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzM2Mzc5LzQwOTg5NDIucG5n/original/Vl4mZD.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzM2Mzc5LzQwOTg5NjEucG5n/original/RgfhBA.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzM2Mzc5LzQwOTg5NDQucG5n/original/K9FJ9t.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzM2Mzc5LzQxMDA1MTkucG5n/original/2cVu%2FZ.png]]
<div class=""><iframe style="width: 500px; height: 281px" src="https://www.youtube.com/embed/Q7A31NEzezg" allowfullscreen="" frameborder="0"></iframe></div>
<p><br></p>
<p>Sunlight is a short, vibrant and thought captivating exploration game, from the creators of <a href="https://store.steampowered.com/app/250620" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Among the Sleep</a>, <a href="https://store.steampowered.com/app/349270" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Mosaic</a> and <a href="https://store.steampowered.com/app/250600" target="_blank" rel="nofollow noopener" referrerpolicy="origin">The Plan</a>. Journey into the uncharted forest, guided by the harmonised whispers of the trees. Each tree with different voices, genders and dialects, speaking as one. <br></p>
<p>Taking artistic inspiration from expressionist painters like Edvard Munch and focusing on a powerful 3D audio experience with breath-taking choir work, Sunlight will leave you feeling entranced and in wonder in this artistic approach of telling you a story. <br></p>
<p>Playtime: 30 minutes.</p>
<p><br><br>The visuals, that were hand painted using Quill, makes the experience feel like exploring a three dimensional painting.<br></p>
<p><br><img src="https://img.itch.zone/aW1nLzQ5MjI2NTgucG5n/original/RUSoZY.png" loading="lazy"><br><br>The hauntingly beautiful music, composed by Tchaikovsky, was recorded in the Archbishops palace in Trondheim, Norway, and sung by the award winning choir Kammerkoret Aurum. Along with a wide range of voice actors spanning multiple continents, the atmospheric and meditative story comes alive.</p>
<p><img src="https://img.itch.zone/aW1nLzQ5MjI2NTkucG5n/original/3wc9vY.png" loading="lazy"><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/Q7A31NEzezg" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODc1MDAzLzQ5MjI1NzEucG5n/original/FTrO49.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODc1MDAzLzQ5MjI1NjMucG5n/original/%2FGopto.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODc1MDAzLzQ5MjI1NjQucG5n/original/u7NO%2Be.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODc1MDAzLzQ5MjI1NzMucG5n/original/6FAMec.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODc1MDAzLzQ5MjI1NzIucG5n/original/FYSN8v.png]]
<p>Super Head Ball is a local multiplayer game for 2-4 couch warriors. Players compete to throw a decapitated head into a blazing pyre while desperately trying to avoid friendly fire. Grab a few controllers and a few friends and fight for the head while trying to keep yours!<br></p>
<p><br></p>
<p><strong>Local Multiplayer</strong><br></p>
<p>Super Head Ball is designed to be played on the couch next to your mates.&nbsp;Controller support is included&nbsp;for up to 4 players*,&nbsp;but you can also train alone if your friends are wiping the floor with you.</p>
<p><br></p>
<p><strong>Teamwork</strong><br></p>
<p>Players on the&nbsp;2 teams must work together to get the head into the fire, so try not to kill your teammate when they are about to score the winning goal.</p>
<p><br></p>
<p><strong>Unique Battle Arenas</strong></p>
<p>Do battle in 20+ arenas spread across 3 environments that each provide their own crazy features. Between bouncing on head-eating frogs in the Temple or running on the ceiling in the Space Station there is a lot of room for fun experimentation!</p>
<p><br></p>
<p><br></p>
<p>*Up to 2 players can play together on one keyboard.&nbsp;</p>
<p><br></p>
<p>(If you have any questions feel free to get in touch with me at s.vanheyster@gmail.com)<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/hQ2QnzMHl1Q" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjUyMzU5LzgzMTYyNjcuZ2lm/original/J1O7Y8.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjUyMzU5LzgzMTYyNjguZ2lm/original/3kNtag.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjUyMzU5LzgzMTYyNjUuZ2lm/original/ALEfgv.gif]]
<p>
	Super Hexagon is a minimal action game by Terry Cavanagh, with music by Chipzel.
</p>
<p><strong>Important facts about Hexagons:</strong></p>
<ul>
	<li>Hexagons are first order permutohedrons: The vertices of a hexagon can be formed by permuting the coordinates of the vector (1, 2, 3). </li>
	<li>The north pole of the planet Saturn has a hexagonal storm cloud pattern with 8,600 mile long sides, larger than the diameter of Earth. </li>
	<li>Though hexagon may appear to be a difficult word to rhyme, there are actually dozens of words that rhyme with it. For example: Autobahn, decagon, decathlon, electron, Kyrgzstan, Lebanon, leprechaun and marathon. </li>
</ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/2sz0mI_6tLQ" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjk2NTUvMTI0OTIyLnBuZw==/original/afMTSb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjk2NTUvMTI0OTIzLnBuZw==/original/RqX9d0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjk2NTUvMTI0OTI0LnBuZw==/original/9WqqOQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjk2NTUvMTI0OTI1LnBuZw==/original/Par0oo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjk2NTUvMTI0OTI2LnBuZw==/original/HPqtJY.png]]

<p>
	Throw on your nostalgia goggles and travel back in time with 
	<em>Super Win the Game</em>, a retro-core explosion of exploration and platforming action!!
</p>
<ul>
	<li>Sequel to the 2012 freeware hit <em><a target="_blank" href="http://store.steampowered.com/app/286100/" rel="nofollow noopener" referrerpolicy="origin">You Have to Win the Game</a></em> <br>
	</li>
	<li>Open-ended exploration platforming: Explore a massive world, find hidden treasures, collect powerups and gain new abilities, and uncover mysterious secrets! </li>
	<li>Adjustable CRT television simulator: Tune the retro-ness to your liking!</li><li>Speedrun courses with Steam leaderboard support! Race your friends' ghosts to the finish line!</li><li>Randomized Game mode for unlimited replayability!</li>
	<li>Includes Steam access!</li>
	<li>Do the Thing!! </li>
	<li>Get the Stuff!! </li>
	<li>Win the Game!! </li>
</ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/5GSMutcLaiU" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjc0ODcvMTEyMDEyLnBuZw==/original/TlQ%2FR7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjc0ODcvMTEyMDEzLnBuZw==/original/M9bnDD.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjc0ODcvMTEyMDIzLnBuZw==/original/4YhZhu.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjc0ODcvMTEyMDI2LnBuZw==/original/%2BmzcXF.png]]
<p>"<strong>A hallmark of excellence.</strong>"&nbsp;<br>— Destructoid, 9/10</p>
<p>"<strong>The most innovative shooter I’ve played in years.</strong>"&nbsp;<br>— Jimquisition 9.5/10</p>
<p>"<strong>Unlike anything else I've played.</strong>"&nbsp;<br>— Polygon 9/10</p>
<p>"<strong>May very well belong in the same set as System Shock and Half-Life.</strong>”&nbsp;<br>— The Daily Dot 5/5</p>
<p>“<strong>SUPERHOT IS THE MOST INNOVATIVE SHOOTER I’VE PLAYED IN YEARS!</strong>”&nbsp;<br>— Washington Post</p>
<p>Blurring the lines between cautious strategy and unbridled mayhem, SUPERHOT is the FPS in which time moves only when you move. No regenerating health bars. No conveniently placed ammo drops. It's just you, outnumbered and outgunned, grabbing weapons off fallen enemies to shoot, slice, and maneuver through a hurricane of slow-motion bullets.</p>
<p>With its unique, stylized graphics SUPERHOT finally adds something new and disruptive to the FPS genre. SUPERHOT’s polished, minimalist visual language helps you focus on what's most important – the fluidity of gameplay and cinematic beauty of the fight.</p>
<p><strong>SUPERHOT features:</strong></p>
<ul><li>Endless Mode – how long can you last against unyielding waves of enemies?</li><li>Challenge Mode – take on SUPERHOT with your bare hands, no restarts, timed runs, and more.</li><li>Replay Editor – edit and upload your best runs for all to see on <a href="https://superhot.video" target="_blank" rel="nofollow noopener" referrerpolicy="origin">superhot.video</a>.</li><li>&nbsp;Extras – delve further into SUPERHOT with mini-games, ASCII art, and [redacted].</li></ul>
<p>Thirty months in the making. Thousands of hours put into development and design. From its humble origins in the 7 Day FPS game jam, through a hugely successful Kickstarter campaign to a plethora of awards and nominations from industry experts, SUPERHOT is a labor of love by its independent, dedicated team and thousands of backers from all around the globe.</p>
<p>Already addicted? Want it to get even more real?<br><a href="https://superhot.itch.io/superhot-vr" target="_blank">SUPERHOT VR</a>&nbsp;awaits.</p>
<p>You are independent. You will not take orders.<br><span class=""></span><a href="https://store.steampowered.com/app/690040/SUPERHOT_MIND_CONTROL_DELETE/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">MIND CONTROL DELETE</a> will set you free.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/R4LkToI4xzE" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjgwMDQyLzE2NDg5MDAuZ2lm/original/pv0p58.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjgwMDQyLzE2NDg5MDEuZ2lm/original/HDAuZO.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjgwMDQyLzE0MDMzMTAuanBn/original/EN%2BPLu.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjgwMDQyLzE0MDMzMDguanBn/original/PxOekm.jpg]]
<p><em>"You are an oracle, a greenseer, and a fraud. You know nothing you do will affect whether a season is bountiful or not, whether nature will be kind to your clan or not.&nbsp;</em><br></p>
<p><em>But you must convince your chieftain that your rituals are worthy, that their offerings, with your guidance, can decide their fates. If not, you may be exiled or worse."</em><br></p>
<p>“Superstition” is a ritual-creating solo journaling rpg with light game elements a little similar to blackjack (no knowledge of that game required). Played with a normal 52-card deck.</p>

[img width=500 [https://img.itch.zone/aW1nLzU4MjU4NzQuanBn/original/TenI5H.jpg]]
<p>You’re just a little hedgehog person trying to sell your little sweaters in your little village shop. This game is about recording a log of your most interesting customers.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE3MTU3OS82ODIwNzI5LnBuZw==/original/2tgFWl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE3MTU3OS82ODIwNzI1LnBuZw==/original/UIO%2FpC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE3MTU3OS82ODIwNzI2LnBuZw==/original/cmGdFO.png]]
<p>A game about being happy, being sad, and being everything in between.</p>
<p>sweet*peony is a two-player game about telling the story of a person or an object through the lenses of Joy or Sorrow using a regular deck of cards. Whether your story encompasses a day, a week, a year, or a lifetime, joy and sorrow are natural parts of life, and what that looks like is up to you.&nbsp;</p><p><br></p><p>You can watch an Actual Play of this game here!</p><div class=""><iframe width="500" height="281" src="https://www.youtube.com/embed/mEi65yM7Gek" frameborder="0" allowfullscreen=""></iframe></div><p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/mEi65yM7Gek" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1nLzUxMzU5NzkuanBn/original/7A5XAC.jpg]]
<p>Dive into the relaxing and refreshing atmosphere of Swim Out, a strategic, turn-based puzzle game, that will transport you into a sunny day by the swimming pool, the river or the sea. Plan each of your strokes wisely and be sure to never cross any other swimmer's path if you want to peacefully enjoy the sea view on a cosy chaise-longue.</p>
<p><br></p>
<p><strong>What the press said:</strong></p>
<ul><li>"<em>I am delighted by how unfamiliar a swimming experience this is to me</em>" - Rock, Paper, Shotgun</li><li>"<em>There are precious few things I appreciate more than a straightforward puzzle game with a strong commitment to its aesthetic, and Swim Out is exactly that</em>" - Waypoint</li><li>"<em>If you're a fan of puzzle games Swim Out is very likely for you. It's attractive, intuitive, and fun</em>." - Touch Arcade</li><li>"<em>Swim Out is a perfect summertime game</em>" - MacStories</li><li>"<em>Swim Out looks like the perfect tactical escape into a lush digital paradise</em>" - Touch Arcade</li></ul>
<p><br></p>
<p><strong>Features:</strong></p>
<ul><li>Over 100 levels nestled in carefully crafted landscapes, soothed by the sound of seagulls, frogs or water splashes.</li><li>7 chapters combining :<ul><li>12 different types of swimmers : each with their own way of moving around, ranging from the simple breaststroke swimmers to the more complex divers or cheeky water-bombing kids</li><li>12 different objects to interact with : buoys, fins, water guns, you can even ride a kayak!</li><li>6 disruptive environmental elements like waves, crabs or jellyfish that will give your brain a work out until you swim out!</li></ul></li></ul>
<p><br></p>
<p><strong>Awards &amp; recognition :</strong><br></p>
<ul><li>"TIGA Games Industry Awards 2018" Finalist, Creativity Award, Strategy Game</li><li>"Indie Prize 2018" Finalist</li><li>"Ping Awards 2017" Finalist, Mobile Game</li><li>"TIGA Games Industry Awards 2017" Finalist, Puzzle Game</li></ul>
<p><strong>Purchase includes a Steam key</strong></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/3zc2V_qDcUI" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzA2NTQ0LzE1MDQ1NzUucG5n/original/17smQX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA2NTQ0LzE1MDQ1NzcucG5n/original/hliSxQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA2NTQ0LzE1MDQ1NzgucG5n/original/EO2p7s.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA2NTQ0LzE1MDQ1NzYucG5n/original/TfAorS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA2NTQ0LzE1MDQ1NzkucG5n/original/4Mo2Ri.png]]
<p>In Sword Saga you will tell the story of a weapon, from its creation to when it stops being used. This weapon exists in a changing era, and will bear witness to momentous events, if not participate in them. It shall see much use, undergo change, and be judged by history for its part.<br></p>
<p>You will need a six sided die, and some means of recording your tale.</p>
<p><br><em>Sword Saga was created for the Legacy Jam, exploring ideas of succession, consequence, and time. You can find more information on the game jam and see other submissions at </em><em><a href="https://itch.io/jam/legacy-jam">https://itch.io/jam/legacy-jam/<br></a></em><em><a href="https://itch.io/jam/legacy-jam"></a></em></p>
<p><em>Sword Saga is partially inspired by the song “Those Hands” by the band Lindby for episode 25 of their Dungeons &amp; Dragons actual play podcast Bombarded. They can be found at <a href="https://bombardedcast.com/" rel="nofollow noopener" referrerpolicy="origin">https://bombardedcast.com/</a> and <a href="https://bombarded.bandcamp.com/" rel="nofollow noopener" referrerpolicy="origin">https://bombarded.bandcamp.com/</a></em></p>
<p></p>

[img width=500 [https://img.itch.zone/aW1nLzIxOTY2NzAucG5n/original/k0%2BAqz.png]]
<p>Did you want to play a showdown at high noon? A fight with the cardinal’s guards? Did you want to protect the Systems Alliance from an alien horde, or hunt down the goblins that attacked a village of innocent peasants? You can do all this and more with <em>Sword’s Edge</em>. <br></p><p><em>Sword’s Edge</em> is a streamlined role-playing game that allows you to simulate a variety of genres with a focus on characters and stories. Its simple mechanics allow for quick resolution but also quick preparation. From the designer of <em><a href="http://fraserronald.itch.io/nefertiti-overdrive" target="_blank">Nefertiti Overdrive</a></em> and <a href="http://fraserronald.itch.io/centurion-legionaries-of-rome" target="_blank"><em>Centurion: Legionaries of Rome</em></a>, this is a game that gives you a robust framework on which to play and then gets out of your way.</p><p></p><p><b>NOTE</b>: This system requires cooperation at the table and a shared goal of telling a great story. It is the premise of SEP systems that the game experience should be fun for everyone and no player should be made uncomfortable unless that is a part of the experience of which they were informed and to which they agree. Shared respect and consideration among all participants are key to achieving a satisfying and enjoyable game for everyone at the table. If you disagree, this system and SEP games more widely are not going to meet your expectations or complement your play style.</p><br><p></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjMxNTE3LzEwOTc1NDguanBn/original/D64jzj.jpg]]
<h1 class="text-center"><em></em>Once upon a time</h1>
<p class="text-center"><strong><em>There was a prince on a mission to save a princess from the hands of a terrifying dragon.&nbsp;</em></strong><br></p>
<p class="text-center"><strong><em><img src="https://img.itch.zone/aW1nLzM0ODM3NzYucG5n/original/VetMsg.png" loading="lazy"><br></em></strong><strong><em><br>T</em></strong><strong><em>his prince, however, wasn't very brave, so his father ordered a witch to enchant a sword. <br></em></strong><strong><em><img src="https://img.itch.zone/aW1nLzM0Nzg2OTMuZ2lm/original/vg8xb7.gif" loading="lazy"><br></em></strong></p>
<p class="text-center"><strong><em>This magical sword had a will of its own and was, unlike the prince, brave and wise.  </em></strong><strong><br></strong><strong><em><br></em></strong><strong><em><img src="https://img.itch.zone/aW1nLzM0Nzg2OTUuZ2lm/original/NFsI%2B8.gif" loading="lazy"></em></strong><strong><em><strong><em>Together they embarked on an adventure of a lifetime.</em></strong></em></strong></p>
<h3><br>A fairytale with a twist!</h3>
<p><strong></strong><strong>Y</strong>ou
play as the sword of the prince. Everyone in the land thinks the
prince is brave and adventurous, but in reality his magical sword is
all that.&nbsp;</p>
<p>Use your mouse to help the knight go through
dangerous environments.&nbsp;</p>
<p>Defeat enemies<br>Avoid spikes <br>Slay
the dragon <br>Save the princess!</p>
<h3><br>Don't like reading?</h3>
<p>
No
worries. You write the story by playing it. <br>Ooh, and if you do
let the prince die, we'll just tear out that page!</p>
<h3>Controls</h3>
<p>You
only need your mouse!</p>
<p>
You
control the sword with your mouse by moving it around. The prince
will follow the sword, unless he is scared. Which happens more often
than not. Because the prince is afraid of a lot of things. His
fears include spikes, birds, green blobs, moles, heights, first
dates, germs, fire and of course dragons!</p>
<p>
By
holding the right mouse button near the prince you can drag him to
safety while he shivvers in his armor.
You can also spin and
swing the sword with the left mouse button to hit enemies or deflect
projectiles.</p>
<h3 class="text-center"><br>What can you expect from this game?</h3>
<p class="text-center"><strong>• 2 hours of gameplay!<br>• 25 levels<br>• Experience what it's like to be a sword</strong></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/CPxFmhZaxY0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjQxNjg2LzM0NTQyMjEuZ2lm/original/ec9NPZ.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjQxNjg2LzM0NTQzNjQuZ2lm/original/bpB7Je.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjQxNjg2LzM0NTQyNzYuZ2lm/original/b2LE5H.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjQxNjg2LzM0Nzg1MDQucG5n/original/dAGXOg.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjQxNjg2LzM0NTQ0MDIucG5n/original/eNwptA.png]]
<p><em>When the visitors first came, they said they were coming in peace. When the first disappearances were reported, we didn’t want to believe it. We were too blinded by their technology, their superior intellect, everything they could offer us.</em></p>
<p><em>When the inevitable attack came, it was quick, brutal and devastatingly effective. They knew all our weaknesses by then. All our defences were wiped out in seconds.<br>In the days that followed, in the shadows of the flames, we came together. We got organized, and now we are bringing the fight to them.</em></p>
<p class="text-center">* * *</p>
<p>T-DEF is a GMless game that comes in two 8-page mini zines: the Tactical Handbook that contains the rules for character creation and taking actions; and the Operations Manual, that contains everything you need to create missions for your troopers.</p>
<p>The game is a homage to XCOM by way of Dark Fort and Mörk Borg.</p>
<p>The game comes in both screen readable PDF:s and one-page printable files that you can cut and fold to have physical booklets. Put this in your pocket, wallet or purse with a couple of dice and a pen, and you're always ready to go on a bug-hunt!&nbsp;Play alone or with friends, in between slots at cons, on the bus, or over beers at the pub (you know, after the pandemic is over).</p>
<p>Made using <a href="https://starwest.itch.io/">Star West</a>'s <a href="https://starwest.itch.io/one-page-zine-template">One Page Zine Template</a>.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODMxOTc1LzQ2NjE4ODAuanBn/original/7T0DK1.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODMxOTc1LzQ2NjE4ODEuanBn/original/NaH%2B6N.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODMxOTc1LzQ2NjE4ODIuanBn/original/W5Hby9.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODMxOTc1LzQ2NjE4OTYuanBn/original/osca8e.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODMxOTc1LzQ2NjE4NzkuanBn/original/q7i4BL.jpg]]
<p><strong></strong><strong><br></strong></p>
<p><strong></strong></p>
<div class=""><iframe width="500" height="281" src="https://www.youtube.com/embed/Sx_laJDFiUk" frameborder="0" allowfullscreen=""></iframe></div>
<p><strong>What is T.A.R.S?</strong><br></p>
<p></p>
<p>T.A.R.S is a challenging 3rd person objective based horror shooter. You will need to navigate an open world environment, which is set just off the coast of the British isles on a remote island. You will need to use your mini-map to locate objective points and must survive against dangerous creatures while exploring.<br><br>You have limited ammo, few checkpoints and formidable enemies that kill you in 1 hit, your skills will be pushed to the limit.<br><br><strong><em>Can you survive?</em></strong></p>
<p><strong><br></strong></p>
<p><strong>STORY</strong></p>
<p>It is the year 2051, a disease has swept across the planet infecting over 90% of the population. At first only flu like symptoms appeared, but then to the horror of everyone, people started to change. At first in their behaviour and then physically changing into an unknown creature, which we now all fear.<br><br>It was at this point T.A.R.S&nbsp;<em>(Tactics and rescue specialists)&nbsp;</em>was formed, with one goal, save humanity.</p>
<p><strong>YOUR ROLE</strong></p>
<p>You will take on the role of Samantha, Sam was previously a nurse and recently recruited by T.A.R.S to become a medic. You have limited combat training, but there's no time to spare.<br><br>You are about to embark on your very first mission and have been assigned to a T.A.R.S squad. You will need to be aware of your surroundings at all times if you have any hope of surviving.</p>
<p><strong><em>*Headphones Recommended<br></em></strong></p>
<p><strong><br></strong></p>
<p><strong>MINIMUM SYSTEM REQUIREMENTS:</strong></p>
<blockquote>OS: Windows 10 (64 bit)</blockquote>
<blockquote>Processor: Quad Core / Athlon x4 840 / Equivalent</blockquote>
<blockquote>Memory: 4 GB RAM</blockquote>
<blockquote>Graphics: GT 1030 / RX 550</blockquote>
<blockquote>Storage: 2 GB available space</blockquote>
<p><strong>RECOMMENDED SYSTEM REQUIREMENTS:</strong>
</p>
<blockquote>OS: Windows 10 (64 bit)</blockquote>
<blockquote>Processor: Intel i5 (Quad core) / Ryzen 3 1200</blockquote>
<blockquote>Memory: 8 GB RAM</blockquote>
<blockquote>Graphics: GTX 1060 / RX 570</blockquote>
<blockquote>Storage: 2 GB available space</blockquote>
<p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/Sx_laJDFiUk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM2NjgxMi83OTU2NDYzLnBuZw==/original/sYs79f.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM2NjgxMi83OTU2NDY2LnBuZw==/original/p77Igd.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM2NjgxMi83OTU2NDY3LnBuZw==/original/6wUbZ1.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM2NjgxMi83OTU2NDY4LnBuZw==/original/WiLrb4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM2NjgxMi83OTU2NDY5LnBuZw==/original/YFHAhF.png]]
<p><a href="http://www.TabletopMusic.com" rel="nofollow noopener" referrerpolicy="origin">www.TabletopMusic.com</a> is an easy way to bring original background music to your tabletop game sessions!</p>
<p>This pack contains the audio files&nbsp;for all 48 tracks in the collection!</p>
<p>Consider supporting the site so it can continue to grow:<br><a href="https://www.patreon.com/tabletopmusic" rel="nofollow noopener" referrerpolicy="origin">https://www.patreon.com/tabletopmusic</a><br><br>Follow my work as a game OST composer!<br></p>
<p>SoundCloud:&nbsp;<a href="https://soundcloud.com/alecshea" rel="nofollow noopener" referrerpolicy="origin">https://soundcloud.com/alecshea<br></a>BandCamp:&nbsp;<a href="https://alecshea.bandcamp.com/" rel="nofollow noopener" referrerpolicy="origin">https://alecshea.bandcamp.com/</a><br>Twitter:&nbsp;<a href="https://gate.sc/?url=http%3A%2F%2Ftwitter.com%2FSlaleky&amp;token=34ef52-1-1592041901391" target="_blank" title="http://twitter.com/Slaleky" rel="nofollow noopener" referrerpolicy="origin">twitter.com/Slaleky</a><br>Facebook:&nbsp;<a href="https://gate.sc/?url=http%3A%2F%2Fwww.facebook.com%2Falecsheamusic&amp;token=e51283-1-1592041901392" target="_blank" title="http://www.facebook.com/alecsheamusic" rel="nofollow noopener" referrerpolicy="origin">www.facebook.com/alecsheamusic</a></p>
<p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/C04d8vMqGCg" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1nLzM2NTMyODQuanBn/original/dJp5HN.jpg]]
<p><strong>Now updated to&nbsp;Definitive Edition with DLC and new art!</strong></p>
<p><strong>Description</strong></p>
<p>Retro-style platform game in keeping with the best traditions of games of our childhood! Take control of the Himari, the young female wizard travelling across various ages to settle the balance in time across the whole world!&nbsp;</p>
<p><strong>Featuring:</strong></p>
<ul><li>Various levels;</li><li>A lot of abilities to learn;</li><li>Hardcore action gameplay, which won't leave you bored;</li><li>Control the time and space!</li><li>All villains are people just like you: learn what's the reason behind them turning into their current state, or just fight them without further ado;</li><li>Character leveling system;</li><li>Three difficulty levels;</li><li>Secret stuff and easter eggs</li></ul>
<p><strong>Plot</strong></p>
<p>Somewhere in the sky, far away from the ground, another world floats - a fantasy world named Zaria. Citizens of Zaria had to watch the flow of time, but when the ancient crystal fell into the hands of evil, the flow of time was distorted. Kanashimi the High Keeperess sends young wizard Himari to the difficult quest of finding everyone guilty of destroying crystal.&nbsp;<br>But why does not everyone bother about Zaria's origins, and what is this place all about? May you succeed in solving the mystery of this world.&nbsp;<br><br>Go forth to various ages on your uneasy adventure to find the five keepers and to reclaim the power!</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/atb_aUm3Flo" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzA2NTg1LzE1MDQ4MDMuanBn/original/fJmkYk.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA2NTg1LzU2MTQwODkuanBn/original/suv%2FY1.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA2NTg1LzE1MDQ4MDEuanBn/original/aKbJX6.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA2NTg1LzU2MTQwODguanBn/original/jnJFjo.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA2NTg1LzE1MDQ4MDUuanBn/original/KvscLX.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA2NTg1LzE1MDQ4MDQuanBn/original/0XIMeO.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA2NTg1LzE1MDQ4MDIuanBn/original/iFe%2FU2.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA2NTg1LzE1MDQ4MDkuanBn/original/qExpLm.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA2NTg1LzE1MDQ4MDguanBn/original/d2OYiQ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA2NTg1LzE1MDQ4MDcuanBn/original/ey%2Ba8Z.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA2NTg1LzE1MDQ4MTAuanBn/original/LqX0hN.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA2NTg1LzU2MTQwOTAuanBn/original/67BoxE.jpg]]
<p><img src="https://steamcdn-a.akamaihd.net/steam/apps/875660/extras/about.png?t=1544705957" loading="lazy"></p>
<p>A small village known as Windy Meadow may not be rich or famous, yet it offers something even more valuable: harmony. Gorgeous views, serenity of the forest, gentle rivers and fertile land... Even beasts and dragons seem to usually keep their distance.</p>
<p>Nevertheless, not everyone can find peace here. The time has come for three young people to decide what are they going to do with their future. And it’s happening much sooner than they would wish for.</p>
<p>Will&nbsp;<strong>Vena</strong>, the best huntress in the village, stay with her family? Is it better to take the lucrative job offered by distant merchant guild?</p>
<p><strong>Fabel</strong>&nbsp;wants to become a famous bard, but his rough past complicates so many things. Should he follow his dream, or is it finally time to wake up?</p>
<p>And is&nbsp;<strong>Iudicia</strong>, the local outsider and talented herbalist, going to marry a man she doesn’t love? Is spending her future alone and lonely the only alternative?</p>
<figure><img src="https://steamcdn-a.akamaihd.net/steam/apps/875660/extras/features.png?t=1544705957" loading="lazy"></figure>
<ul><li><strong>Three intertwined stories.</strong>&nbsp;For 2,5 hours you get to play as three protagonists with their own problems to solve. Each route offers different moods, topics and perspectives and all of them share the dramatic, final chapter.</li><li><strong>A multitude of side characters.</strong>&nbsp;Their varying personalities and complex relationships make this community feel alive and relatable.</li><li><strong>An immersive, detailed village.</strong>&nbsp;You get to visit multiple buildings and outdoors and see how they change over the course of the game. The carefully thought-out fantasy setting reflects through both the dialogues and visuals.</li><li><strong>Choices matter.</strong>&nbsp;Choice-shaped endings significantly shift the game's atmosphere, while even smaller decisions influence dialogues, events and how your protagonists are perceived by other characters.&nbsp;</li><li><strong>Heart-warming scenes.</strong>&nbsp;A unique mix of coziness and melancholy supported by colorful pixel art and emotional music.</li><li><strong>Animated visuals.</strong>&nbsp;Unlike most Visual Novels,&nbsp;<em>Tales From Windy Meadow</em>&nbsp;replaces the majority of narration with animated character sprites. More than 99% of the in-game text represents dialogues.</li></ul>
<p><img src="https://img.itch.zone/aW1nLzE3MjIyMjAucG5n/original/AXWKt%2F.png" loading="lazy"></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/Np8Mgya5QgM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzQ2OTA2LzE3MjIxNjYuanBn/original/6BtEsI.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQ2OTA2LzE3MjIxNjcuanBn/original/vV0zHA.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQ2OTA2LzE3MjIxNjguanBn/original/ZdhbOx.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQ2OTA2LzE3MjIxNzAuanBn/original/Lw92yH.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzQ2OTA2LzE3MjIxNjkuanBn/original/jvnsRr.jpg]]
<p class="text-center"><em>Lusting for the latest?&nbsp;</em><em>Check out&nbsp;<a href="https://chrisnzl.itch.io/tallowmere-2-curse-of-the-kittens"><strong>Tallowmere 2: Curse of the Kittens</strong></a>.</em><span></span></p>
<p><a href="https://chrisnzl.itch.io/tallowmere-2-curse-of-the-kittens"><img src="https://img.itch.zone/aW1nLzQ4MjkzOTIuanBn/original/MYQg2L.jpg" style="max-width: 100%; font-size: 14px; background-color: rgb(255, 255, 255)" loading="lazy"></a><br></p>
<p><img src="https://img.itch.zone/aW1nLzYxMzc0MzAucG5n/original/%2Bf71AQ.png" loading="lazy"><br></p>
<h2>Raise your shield. Embrace Lady Tallowmere's dungeons.</h2>
<p>Indulge Lady Tallowmere. See how far through her lovingly violent dungeons you can delve in this 2D indie action roguelike-inspired platformer.</p>
<p>New rooms are procedurally generated every time you play, meaning you'll have to be on your guard for every randomly-placed enemy, elite, boss, and treasure chest you'll come across.<br></p>
<p>
	Each room gets progressively bigger, harder, and more rewarding the further you go.
</p>
<h2><img src="https://img.itch.zone/aW1nLzEyNzkwMzcuZ2lm/original/rAfxTD.gif" style="max-width: 100%" loading="lazy"></h2>
<p>
	<strong>The concept is simple yet hard to master:</strong></p>
<p></p>
<p></p><li> Raise your shield to block enemy attacks. </li><li> Lower your shield and strike your foes when the timing is right. </li><li> Jump or move to avoid traps, or raise your shield to reduce damage taken. </li><li> Find the key to advance to the next room. </li><li> Collect weapons, outfits, headgear, and shields of various rarities to aid your journey. </li><li> Turn in souls from slain enemies to increase your base stats and passive abilities. </li><li> Stay alive as long as you can.</li><p></p><p></p>
<p><br></p>
<p>Brace yourself with your shield as you learn the quirks of each foe and trap so you can strive for that "one more run" high-score victory! Each dungeon is infinite in length so it's up to you to push your limits; a local scoreboard lets you track your greatest efforts.</p>
<p>
	Available for Windows, macOS, Linux, and Android. Play with keyboard (and optionally mouse), or use your favourite gamepad/controller.
</p>
<p>Tallowmere offers single-player and local co-op madness (up to 4 players, desktop-only) for fun frantic couch gaming.</p>
<p>
	To those who will be lured into Lady Tallowmere's dungeons: good luck. <span></span>
</p>
<hr>
<h3>Languages &amp; Translations:</h3>
<ul><li><strong>English</strong></li><li><strong>Finnish / Suomi</strong> – Tomi Turkki &amp; Olli-Samuli Lehmus</li><li><strong>French / Français</strong> – Christophe Braguy</li><li><strong>German / Deutsch</strong> – Spiffosi, sePL, &amp; John Westfield</li><li><strong>Italian / Italiano</strong> – Luca Pattarini</li><li><strong>Japanese / 日本語</strong> –&nbsp;<a href="https://teyon.jp/" rel="nofollow noopener" referrerpolicy="origin">Teyon Japan</a></li><li><strong>Korean /&nbsp;한국어 </strong>–&nbsp;<a href="https://www.4thebalance.com/" rel="nofollow noopener" referrerpolicy="origin">The Balance</a><strong></strong></li><li><strong>Polish / Polski</strong> – Maciej Ułanowicz</li><li><strong>Portuguese-Brazil / Português-Brasil</strong> – Lucas Videla</li><li><strong>Russian / Русский</strong> – Tycho Davidianus</li><li><strong>Simplified Chinese / 简体中文</strong> – Kai Shao</li><li><strong>Slovenian / Slovenski jezik</strong> – Alen Korez</li><li><strong>Spanish / Español</strong> – Jose M. Gaspar</li><li><strong>Turkish / Türkçe</strong> – A. Ozkal</li></ul>
<hr>
<h3>Further Notes:</h3>
<ul><li>The <strong>current build</strong>&nbsp;on itch.io is version 352.9. For details, visit <a href="http://www.tallowmere.com/changelog/" rel="nofollow noopener" referrerpolicy="origin">tallowmere.com/changelog</a></li></ul>
<ul><li>Purchase <em>Tallowmere </em>from itch.io and receive a 
	<strong>Steam key</strong> from your itch.io account page.</li></ul>
<p><span></span></p>
<ul><li>The <strong>Android port</strong> requires Android 4.4 or higher and OpenGL ES 2.0 or higher.&nbsp;Further details <a href="http://steamcommunity.com/app/340520/discussions/0/613957600545318611/" rel="nofollow noopener" referrerpolicy="origin">here</a>. For a list of supported Android controllers, <a href="https://www.tallowmere.com/android-input/" rel="nofollow noopener" referrerpolicy="origin">click here</a>.</li></ul>
<p><span></span></p>
<ul><li><strong>Soundtrack</strong> contains 13 MP3s.</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/pfdpgjfU2V4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjQ3MC8zMDM3OC5qcGc=/original/P4MK4U.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjQ3MC8zMDM4MC5qcGc=/original/vWZzI7.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjQ3MC8yMzg4Mi5qcGc=/original/m%2FWeYX.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjQ3MC8yMzg4NS5qcGc=/original/wtK0zB.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjQ3MC84NDMyMS5qcGc=/original/O55OOw.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjQ3MC82Nzc0OC5qcGc=/original/2U3OqD.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjQ3MC8yMzg4My5qcGc=/original/CSzPS1.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjQ3MC8yMzg4Ni5qcGc=/original/XPyV6H.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjQ3MC8yMzg4NC5qcGc=/original/h3MCCB.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjQ3MC8yMzg4Ny5qcGc=/original/%2BHrIu2.jpg]]
<p><br></p>
<p>TAPE is a simple, elegant and intimate project management tool designed for artists, designers, or any creative professionals.<br></p>
<p>Track projects in Collections, tasks and deliverables as Items within Collections, setting the state of each Item depending on its status, as simple as clicking.</p>
<p><span class="">START SOMETHING ▲</span></p>
<p><img src="https://img.itch.zone/aW1nLzcwMzY0NzUucG5n/original/L2tYlp.png" loading="lazy"></p>
<p><br></p>
<p>Tape 1.3.8<br></p>
<p>WIP Documentation&nbsp;&nbsp;<a href="https://aeriform.gitbook.io/tape/" rel="nofollow noopener" referrerpolicy="origin">aeriform.gitbook.io/tape</a></p>
<p><a href="http://www.aeriform.io" target="_blank" rel="nofollow noopener" referrerpolicy="origin">aeriform.io</a>&nbsp;/&nbsp;<a href="http://patreon.com/aeriform" rel="nofollow noopener" referrerpolicy="origin">patreon.com/aeriform</a></p>
<p>Development of Tape is entirely funded from sales and supporters on Patreon and ko-fi. Please consider supporting !</p>
<p>Follow us on Twitter&nbsp;<a href="https://twitter.com/aeriform_io" rel="nofollow noopener" referrerpolicy="origin">twitter.com/aeriform_io</a> !</p>
<p>Please be sure to run Tape independently of (not from)&nbsp;the itch.io app.</p>
<p>Note for Windows users: Windows Defender may flag Tape as being potentially harmful. This is because the software is currently unsigned.</p>
<p><br></p>
<p>Join us on Discord !</p>
<p><iframe src="https://discordapp.com/widget?id=371816557786955777&amp;theme=dark" width="350" height="500" frameborder="0"></iframe><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjEwMTYwLzcwMzkwOTAucG5n/original/Pc8Pcu.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjEwMTYwLzcwMzkxMTMucG5n/original/Px9p6G.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjEwMTYwLzcwMzkxMTIucG5n/original/Tiyqqk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjEwMTYwLzcwMzkwOTEucG5n/original/UYt6Nc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjEwMTYwLzcwMzkxMDIucG5n/original/%2BARPe8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjEwMTYwLzcwMzkwOTYucG5n/original/4Ua%2FJw.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjEwMTYwLzcwMzkwOTQucG5n/original/8%2BEMWw.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjEwMTYwLzcwMzkwOTIucG5n/original/bDjwLU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjEwMTYwLzcwMzkwOTUucG5n/original/uVgGVx.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjEwMTYwLzcwMzkwOTkucG5n/original/vCd6iM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjEwMTYwLzcwMzkwOTcucG5n/original/diDzHU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjEwMTYwLzcwMzkwOTgucG5n/original/YMXJ3K.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjEwMTYwLzcwMzkxMDEucG5n/original/8b0yAD.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjEwMTYwLzcwMzkxMDAucG5n/original/JVF2m0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjEwMTYwLzcwMzkwOTMucG5n/original/Yljv1L.png]]
<h3></h3>
<h3>Tarot Telling For Two</h3>
<p>A downloadable game.</p>
<p>In this cooperative storytelling RPG, two players will each create a character and explore their characters' relationship with one another using Tarot cards and their associated meanings&nbsp;as prompts. Players may use a shared deck if playing in-person, their own decks if playing remotely, or online decks if that's the only kind accessible (or any deck for any reason!)&nbsp;</p>
<p>This game fits on a single tri-fold brochure, with an optional-to-print Sample Play in the same format. I've also included an unformatted text version, where the Sample Play is interwoven with the game directions, for increased accessibility.</p>
<p>In addition to enjoying an RPG that explores feelings and encourages creativity, Tarot Telling&nbsp;also gives players a chance to expand their own Tarot practices by interpreting how cards in different positions&nbsp;may affect different situations differently.</p>
<p>This game was developed for the <a href="https://itch.io/jam/me-my-friend-and-my-rpg" target="_blank">Me, My Friend,&nbsp;And My RPG Game Jam</a>.&nbsp;</p>
<p><span class="">Photo credit: "<a href="https://unsplash.com/photos/DSmmdH_fTt8" rel="nofollow noopener" referrerpolicy="origin">Tarot Cards</a>" by <a href="https://unsplash.com/@pixnum" rel="nofollow noopener" referrerpolicy="origin">Manik Roy</a> used under <a href="https://unsplash.com/license" rel="nofollow noopener" referrerpolicy="origin">Unsplash License</a>; modified by Edaureen Muhamad Nor</span><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTEyMzkwOC82NTE2NDkzLnBuZw==/original/bc5cEP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEyMzkwOC82NTAyNTcwLnBuZw==/original/vFn33l.png]]
<p>Play through the lives and shifting relationships of a group of friends connected by bizarre&nbsp;teleportation powers that&nbsp;trigger at moments of extreme emotion.</p>
<p>Technicolour is a GM-less game for 3-6 players who enjoy rules-light, role-play heavy games that lean towards freeform collaborative storytelling. A setting-agnostic game, play out anything from desperate people clinging to what moments they get together in a cyberpunk dystopia, to increasingly distant friends struggling to carve out distinct destinies&nbsp;in a high fantasy world.</p>
<p>The game is available as a pdf or plain text version (designed to be suitable for screenreader users and those with low vision).<br></p>
<p>Want to be the first&nbsp;know about new releases and get early access to games (plus recommendations, blogs and more) - sign up for the roll/flip/draw mailing list:&nbsp;<a href="http://eepurl.com/hca5w1" rel="nofollow noopener" referrerpolicy="origin">http://eepurl.com/hca5w1</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA3NzAwMi82NjMwOTM1LnBuZw==/original/dT6Taz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3NzAwMi82NjMwOTQyLnBuZw==/original/7GLeHY.png]]
<p>Do you seek wisdom, inner peace, and truth? Take yourself out of this cold, harsh world and embark on a transcendental adventure. Choose your own path on your quest for the legendary hidden Temple of Tangram. Enrich yourself with wisdom and experience as you puzzle your way through amazing landscapes. Find your way.<span></span></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODQ5ODUvNDAwNTMxLmpwZw==/original/2U%2Fd%2F9.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODQ5ODUvNDAwNTMwLmpwZw==/original/dunVnq.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODQ5ODUvNDAwNTMyLmpwZw==/original/b5zmwh.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODQ5ODUvNDAwNTMzLmpwZw==/original/GApbH%2B.jpg]]
<figure><img src="https://img.itch.zone/aW1nLzQ1NDA1ODYuZ2lm/original/%2FbViMm.gif" style="color: rgb(188, 188, 188); font-size: 32px" loading="lazy"><span></span><br></figure>
<h2>MODERN TACTICAL RPG, INSPIRED BY THE CLASSICS</h2>
<p>A novel, deterministic combat system, with easy to grasp rules and astonishing depth.&nbsp;No random miss chances. No damage ranges.&nbsp;</p>
<p><img src="https://img.itch.zone/aW1nLzQ1NDA2OTcuZ2lm/original/AN2RK3.gif" loading="lazy"><br><br>Manipulate the elements to turn the battlefield to your advantage, but beware the consequences, as nature is complex and fickle. Open chasms, raise mountains, boil lakes, drain rivers. Start fires you later regret.&nbsp;</p>
<figure><img src="https://img.itch.zone/aW1nLzQ1NDA2OTkuZ2lm/original/%2F3%2BQY9.gif" loading="lazy"><br></figure>
<h2>VAST OPEN-WORLD EXPLORATION</h2>
<p>Unearth ancient ruins, discover strange artefacts, and meet new friends, in a lush, painterly world. Explore the reaches of the archipelago by boat. Take to the skies as a bird to survey the landscape and plan the best route forward.</p>
<p><img src="https://img.itch.zone/aW1nLzQ1NDA3MDAuZ2lm/original/7VhGto.gif" loading="lazy"></p>
<figure><img src="https://img.itch.zone/aW1nLzQ1NDA3MDYuZ2lm/original/iwvRPD.gif" loading="lazy"><br></figure>
<p>For a generation, the terrible Fog - one vast, voiceless, and cruel spirit - has been eating the once-thick forests of the mainland. Now, with nowhere left to call home, and granted magic by the friendly spirits of the archipelago, one small party of would-be adventurers sets out. Find a way to save the many goblin towns of the rocky coast, discover the truth of the Fog, and, if possible, put an end to it.</p>
<figure><img src="https://img.itch.zone/aW1nLzQ1NDA3MTQuZ2lm/original/iHUtG9.gif" loading="lazy"><br></figure>
<p><em>badru - code / art / writing / design</em></p>
<p><em>michael bell - sound / music</em></p>
<p><em>isa hutchinson - design / writing</em></p>
<p><em>taylor thomas - ux design</em></p>
<p><em>zoe vartanian - ui design</em></p>
<p><em>madison pathe - video editing, social media</em></p>
<p><a href="http://tenderfoottactics.com/" rel="nofollow noopener" referrerpolicy="origin">http://tenderfoottactics.com/<br></a></p>
<p><em>Full localization for Simplified Chinese, Spanish (LATAM), Portuguese (BR), German, French, and Russian.<br><br>A note on playtime:&nbsp;Tenderfoot Tactics has a nonlinear structure and much of the game is exploratory, optional content. A speedrun could probably finish the game in a couple of hours or less, but average playtimes for people looking to see all the game has to offer average more in the 25-35 hour range.&nbsp;</em></p><p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/uGL0gDMsrgI" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjI4ODcyLzQ1NDEyOTUucG5n/original/TzhW%2FR.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI4ODcyLzM3NTE1NDQucG5n/original/8%2FHD5h.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI4ODcyLzQ1NDEyOTYucG5n/original/1SmZJH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI4ODcyLzM3NTE1NDYucG5n/original/lFOye0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI4ODcyLzM3NTE1NDgucG5n/original/Krna6o.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI4ODcyLzM3NTE1NTAucG5n/original/9lyxoX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI4ODcyLzQ1NDEzMTMucG5n/original/vNTRTm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI4ODcyLzQ1NDEzMTEucG5n/original/lMimXH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI4ODcyLzQ1NDEzMTIucG5n/original/yAz5%2B9.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI4ODcyLzQ1NDEzMTQucG5n/original/yH7%2Fa2.png]]
<p>
	TENNNES is a local multiplayer game by Jan Willem Nijman, with audio by Eirik Suhrke.</p>
<p>
	Originally comissioned by NO QUARTER, TENNNES was later included as a gift for backers of the SPORTSFRIENDS Kickstarter.</p>
<p>Once purchased, you're allowed to distribute the game to your friends!</p>
<hr>
<h2><strong>Here's what people have said about TENNNES:</strong></h2>
<p>
	<em>It's almost as visually minimalistic as Pong, and it has very simple pick-up-and-play controls like Virtua Tennis, but it's tactically much deeper than either of those games. </em>--Bennett Foddy</p>
<blockquote>
<a href="https://www.kickstarter.com/projects/gutefabrik/sp...'" rel="nofollow noopener" referrerpolicy="origin"></a><br><a href="https://www.kickstarter.com/projects/gutefabrik/sportsfriends-featuring-johann-sebastian-joust/posts/358829" rel="nofollow noopener" referrerpolicy="origin">https://www.kickstarter.com/projects/gutefabrik/sp...</a></blockquote>
<p>
	<em>What TENNNES has managed, in its simple glory, is a distillation of both the instinctive brilliance of tennis and the longer metagame that occurs between opponents. </em>-- Nick Dymond </p>
<blockquote>
	<a href="http://forceofhab.it/blog/tennnes-anyone/" rel="nofollow noopener" referrerpolicy="origin">http://forceofhab.it/blog/tennnes-anyone/</a></blockquote>
<p>
	<em>Instead of being just a refinement of its source material,Tennnes challenges our expectations of digital games by presenting a set of mechanics with few directions other than its puckish title. </em>-- Charles Pratt<br>
	</p>
<blockquote>
	<a href="http://gamecenter.nyu.edu/keep-games-weird/" rel="nofollow noopener" referrerpolicy="origin">http://gamecenter.nyu.edu/keep-games-weird/<span style=""></span></a></blockquote>
<h4></h4>
<h2>
<hr></h2>
<h2></h2>
<h2>Get the soundtrack:</h2>
<p>
	TENNNES features a brilliant jingle and sound effects by Eirik Suhrke, whose work can be found here: <a href="http://www.strotch.net/" rel="nofollow noopener" referrerpolicy="origin">http://www.strotch.net/</a></p>
<p>
	The TENNNES music can be found on his Game music 2 compilation: <a href="http://phlogiston.bandcamp.com/track/tennnes" rel="nofollow noopener" referrerpolicy="origin">http://phlogiston.bandcamp.com/track/tennnes</a></p>
<hr>
<h2>Disclaimer:</h2>
<p> You're really going to need 2 gamepads to play TENNNES. The game can be played by/against AI, but that's absolutely not the intended experience.</p>
<p>Have fun!</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI3MzIvNDE0ODkuZ2lm/original/th5Q39.gif]]
<p>Your loved one has become ill, and only the healing treasure from a desecrated meso-american temple can heal them! Venture down 13 levels of procedural generated challenges to find it. Skeletons, Axolotls, Spiders, and more await you. Be warned, your heart belongs to the gods if you lose!</p>
<p>This game is in ALPHA state and is not yet fully released!</p>
<p><br>CONTROLS:&nbsp;</p>
<p></p>
<p>ARROW KEYS - movement<br>ENTER - pick up item<br>SPACE - use potion<br>ESCAPE - quit game</p>
<p>If you're new to roguelikes, simply move into an enemies square to attack it!<br></p>
<p><br></p>
<p>**Originally made for "7 Day Roguelike Challenge" 2019*<br></p>
<p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/nPl7WFd5fQ4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzgzMTIxLzMyNTk2NjYuZ2lm/original/kxdaD1.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzgzMTIxLzMyNTk2NjMucG5n/original/iR6yEL.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzgzMTIxLzMyNTk2NjIucG5n/original/ktIVZb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzgzMTIxLzE5MjI2OTEuZ2lm/original/c6rj5A.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzgzMTIxLzE5MjI2ODkuZ2lm/original/TZs8B9.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzgzMTIxLzIxMjE1NTEuZ2lm/original/mxw42O.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzgzMTIxLzE5MjI2OTQuZ2lm/original/xe0GGG.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzgzMTIxLzE5MjI2OTIuZ2lm/original/yTkUb2.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzgzMTIxLzMyNTk2NjUucG5n/original/eeee43.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzgzMTIxLzMyNTk2NjgucG5n/original/qToTQy.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzgzMTIxLzMyNTk2NjcucG5n/original/gl97CG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzgzMTIxLzMyNTk2NjQucG5n/original/i7ZcII.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzgzMTIxLzMyNTk2NjEucG5n/original/6AidHe.png]]
<p>Welcome to Test Kitchen, a frantic party RPG Illuminated by the Lumen system, loosely based on restaurant-themed time-management co-op games, like the <em>Overcooked </em>series.&nbsp;</p>
<p>This game is a frantic, dice-based RPG that will test culinary and communication skills, and your relationships.&nbsp;</p>
<p>---</p>
<p><strong>Key Ingredients to Play<br></strong></p>
<ul><li>a 30-second timer
</li><li>Multiple 6-sided dice (We recommend 3 per player, including Head Chef)
</li><li>This Menu
</li><li>Notepaper or Order Worksheet.
</li><li>Pencil or Four different colored crayons.</li><li>Plate tokens (Plate tokens should be served double-sided. A game serving is a plate each, plus one more.)</li></ul>
<p><strong>One Serving Contains</strong></p>
<ul><li>The Game Book</li><li>Print and Play Plate Tokens, Character Sheets, and Play Mat</li><li>Plain text edition of the game</li></ul>
<p></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA2Mzc0My82MDg5MzQ5LnBuZw==/original/3k9O3R.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA2Mzc0My82MDg5MzQ4LnBuZw==/original/is7g1a.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA2Mzc0My82MDg5MzUwLnBuZw==/original/EnUqi5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA2Mzc0My82MDg5MzQ3LnBuZw==/original/6qSlUp.png]]
<p>
 <img src="https://media.discordapp.net/attachments/610526036479705103/723769103856304188/ezgif.com-optimize_1.gif" style="width: 100%" loading="lazy">
 <img src="https://media.discordapp.net/attachments/610526036479705103/723029138075811870/autosaver_underbanner.gif" style="width: 100%" loading="lazy"><img src="https://cdn.discordapp.com/attachments/610526036479705103/723806098829738064/looping_big_blockfeatscreenshake.gif" style="width: 96%; margin-left: 2%; margin-right: 2%" loading="lazy"></p>
<table style="width: 100%; border: 0px"><tbody style="width: 100%; border: 0px"><tr><td style="width: 30%; border: 0px"><img src="https://media.discordapp.net/attachments/610526036479705103/723016616337473565/cropped_bell.gif" style="width: 100%" loading="lazy"></td><td style="width: 30%; border: 0px"><img src="https://media.discordapp.net/attachments/610526036479705103/723016619957420042/cropped_chick.gif" style="width: 100%" loading="lazy"></td><td style="width: 30%; border: 0px"><img src="https://media.discordapp.net/attachments/610526036479705103/723016624898310224/cropped_woodpecker.gif" style="width: 100%; border: 0px" loading="lazy"></td></tr></tbody></table>
<p>
<strong><del>WARNING, the Mac OS version requires <a href="https://www.hendrix.edu/HelpDesk/Computers_and_Devices/Mac_Computers/Disabling_and_Enabling_Gatekeeper_for_Mac_OS_X/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">DISABLING GATEKEEPER</a>&nbsp;&nbsp;to run</del></strong></p>
<p>A simple workaround for the Mac OS is available <a href="https://itch.io/t/1033075/the-super-simple-mac-gatekeeper-workaround">here</a>.</p>
<p>Textreme 2 is also available on <a href="https://store.steampowered.com/app/1516350/Textreme_2/" rel="nofollow noopener" referrerpolicy="origin">Steam</a>!</p>

[img width=500 [https://img.itch.zone/aW1nLzM5MTg2ODUuZ2lm/original/kawP%2F5.gif]]
<p class="text-center"><strong>Thálassa</strong>&nbsp;is an adventure game for one facilitator (the odigós) and at least one other player.&nbsp;</p>
<p><img src="https://img.itch.zone/aW1nLzgwNDEzNTYucG5n/original/w1iQMy.png" loading="lazy"><br></p>
<p>Players act as fearless explorers of the Mediterranean of the Mythical Age, studded with mysterious islands, thick forests, legendary creatures, labyrinths and dangers.</p>
<p class="text-center">Thálassa is based on&nbsp;<a href="https://cairnrpg.com/" rel="nofollow noopener" referrerpolicy="origin"><em>Cairn SRD</em></a>&nbsp;and is licensed under&nbsp;<a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="nofollow noopener" referrerpolicy="origin">CC-BY-SA 4.0</a>.
</p>
<p class="text-center">You can find the SRD&nbsp;<a href="https://thalassa.zeruhur.space/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong>here</strong></a></p>
<p class="text-center"><a href="https://www.lulu.com/en/en/shop/roberto-bisceglie/th%C3%A1lassa/paperback/product-8gzn8n.html?page=1&amp;pageSize=4" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong>Premium POD</strong></a> available on&nbsp;Lulu</p>
<p class="text-center">In the demo section below you may find the complete text in PDF, ODT,&nbsp; EPUB and Markdown format, complete with maps for free</p>
<p class="text-center">If you want a fully layouted and illustrated PDF you can buy it for a small fee</p>
<p class="text-center">Do you want to make a review (post, video or whatever). Please claim a review copy!</p>
<p class="text-center">---</p>
<h3 class="text-center">Soundscapes for Thálassa</h3>
<p><iframe style="" src="https://open.spotify.com/embed/playlist/3QuUe6Rk9CkgPL4QZx4D7Y?utm_source=generator" width="100%" height="380" frameborder="0" allowfullscreen=""></iframe><br></p>
<p class="text-center">---</p>
<p class="text-center">This game&nbsp;took part to <a href="https://www.zinemonth.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong>Zine Month 2022</strong></a><span></span></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzc5NzM3MzEucG5n/original/9wyScg.png" loading="lazy"><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM2OTQ0NS84MDM3MzI0LmpwZw==/original/vac2Gv.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM2OTQ0NS84MDM3MzI1LmpwZw==/original/NQSjaK.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM2OTQ0NS84MDM3MzI2LmpwZw==/original/glnFaS.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM2OTQ0NS84MDM3MzI3LmpwZw==/original/YQRQka.jpg]]
<p><em>If Music be the food of love, play on - Antony &amp; Cleopatra (William Shakespeare)</em></p>
<hr>
<p>Made for the Lost &amp; Found Jam, The Anatomy of a Song is a solo-journaling game where you follow the lifespan of a song across various emotional occasions and reinterpretations.</p>
<p>Will you be a jingle that lingers from familiarity, a ballad sung for moments of love, a folk song about taking on the world (or bemoaning it)?&nbsp;</p>
<p>Play on to find out :D</p>
<hr>
<p>The Anatomy of the a Song is created using the Lost and Found SRD.</p>
<p>Thank you very much to Jack Harrison for the SRD, to the Cambridge Uni Tabletop Roleplaying Society for enduring my rants about game writing, and to everyone who supported this game idea.&nbsp;</p>

[img width=500 [https://img.itch.zone/aW1nLzY5ODg2NTkucG5n/original/QMV%2Faf.png]]
<p class=""><em class="">You just woke up. There's a TV in front of you. You turn it on.</em></p>
<h2 class="">&nbsp;</h2>
<p class="">&nbsp;</p>
<h2 class="">Climb aboard The Arcade Tower and overcome its floors by adopting the codes of this place, as mysterious as it is thrilling. Death will be your main enemy in the floors, and thinking will be your best asset.&nbsp; Use magic stones to challenge logic and fight fearless enemies in the many levels of The Arcade Tower.</h2>
<h6 class="">&nbsp;</h6>
<h6 class="">&nbsp;</h6>
<h3 class=""></h3>
<h3 class="">About the game</h3>
<p class="">&nbsp;
</p>
<p class="">The Arcade Tower is a 2D puzzle platformer&nbsp;made by two french students in computer science.&nbsp; Experience the adventures of this original character in a pixel art environment, giving The Arcade Tower an original graphic style,&nbsp;and accompanied by classical music.&nbsp;A controller is highly recommended to play the game.&nbsp;
</p>
<p class="">We hope you'll enjoy The Arcade Tower!
</p>
<p class=""><br></p>
<h3 class="">What's inside ?&nbsp;</h3>
<p class="">By downloading The Arcade Tower, you'll get:</p>
<ul class=""><li class=""><strong class="">5</strong><strong class=""> floors</strong>, with their own designs and ennemies</li><li class=""><strong class="">35</strong><strong class=""> levels</strong> (don't be affraid, it's not that much)</li><li class=""><strong class="">35</strong><strong class=""> musics too </strong>(to be honest, we didn't do it on purpose), most of them are reinterpreted classical musics, and others are original musics</li><li class="">Approximately <strong class="">2-3 hours of playtime</strong> if you don't die too much (it's not Dark Souls either)</li><li class="">A <strong class="">macOS</strong>, <strong class="">Linux </strong>and, of course, <strong class="">Windows </strong>versions, depending on your favorite platform</li></ul>
<p class=""><br></p>
<h3 class="">Supporting us</h3>
<p class="">Just by playing The Arcade Tower, you are already helping us! But if there's a problem you want to tell us, or just want to give us feedback, do it! It helps us a lot to make this game something you will enjoy.</p>
<p>You can contact us from itch or from our twitter, <a href="https://twitter.com/ungamedstudios" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@ungamedstudios</a></p>
<p class=""><br></p>
<p class="">&nbsp;</p>
<p class=""><em class="">Note: We are not responsible if you break your controller. Don't blame us.</em></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAxMTkwMS83NzU5MDYxLnBuZw==/original/bEMUXa.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAxMTkwMS83NzU5MDU4LnBuZw==/original/EDBscI.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAxMTkwMS83NzU5MDU5LnBuZw==/original/Zo5aRC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAxMTkwMS83NzU5MDYwLnBuZw==/original/ub6UK%2F.png]]
<p>1983. North East Scotland. An engineer is sent to an abandoned, clandestine research facility and is tasked with decommissioning equipment and gathering research material left by scientists. As the engineer travels deeper into the void, they are thrust into an unstable world of phantasmagorical horrors. <br></p>
<p><em>"There are so many neat touches, like the occasional shift to Resident Evil-style fixed cameras, the surreal, distorted dream sequences, and the fuzzy videos that use old science stock footage to creepy effect. The Black Iris does weird extremely well, and it's clear the developer has an eye for this particular style of subtle, gnawing horror. It really got under my skin as I played it"&nbsp;&nbsp;</em><a href="https://www.pcgamer.com/uk/the-black-iris-is-a-trippy-mind-bending-horror-game-that-really-got-under-my-skin/" rel="nofollow noopener" referrerpolicy="origin">PCGamer</a></p>
<p><em>"A lot of games throw around the phrase “cosmic horror” nowadays, but few manage to deliver it as well as The Black Iris does. As soon as you step into the facility the atmosphere is electric and there’s a real feeling of awe as you unravel the enormity of what’s going on there. The retro styled visuals and vibrant purple-hued color palate are superb and the audio design is incredible. It’s a mind-blowing experience. Highly recommended."</em> <a href="https://www.freegameplanet.com/the-black-iris-download-game/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">AlphaBetaGamer<br></a></p>
<p><em>"You are presented with a uniquely horrifying world without the need to shove gore in your face or hide jump scares around every corner. The Black Iris is an unnerving experience that feels like a Lovecraft short story."&nbsp; </em><a href="https://happymag.tv/the-black-iris/" rel="nofollow noopener" referrerpolicy="origin">Happy Mag</a></p>
<ul><li>Explore a small open world in a play time of around 20-30 minutes</li><li>This game contains flashing lights</li><li>Content warning: One instance of body horror, scenes that players may find disorientating</li><li>Soundtrack version available for $4.00 (Gives access to the game + 4 Tracks)</li><li>Controls:<ul><li>WASD = Move</li><li>E = Interact</li><li>T = Toggle torch</li><li>TAB = Menu/Inventory/Objectives</li><li>ESC/P = Pause</li><li>No controller support at this time (though planned for future builds)</li></ul></li></ul>
<p>All proceeds from this game (after the standard 10% revenue share with itch.io) will go to West Dunbartonshire Community Foodbank. Receipts will be posted as evidence of this donation (probably around 2 weeks after release, or whenever the amount of purchases looks like they are tailing off). If you want to learn more about the work they do see here: <a href="https://westdunbartonshirecommunityfoodshare.co.uk/" rel="nofollow noopener" referrerpolicy="origin">https://westdunbartonshirecommunityfoodshare.co.uk/<br></a></p>
<p>Contact: arboretagames@gmail.com</p>
<p>Note to streamers: please feel free to monetize playthroughs of this game.</p>
<p>NOTE FOR 32-BIT VERSION - this version has not been tested extensively on a 32-bit machine, so while it will most probably work for most people, some players may run into problems.<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/a7JDLZORBKA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzY5NzE4LzUxNTEzNjYucG5n/original/f0nsWt.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzY5NzE4LzUxNTEzNjgucG5n/original/rGBMs5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzY5NzE4LzUxNTEzNjkucG5n/original/FqUmFl.png]]
<p><em>Six worlds orbit around a gargantuan black hole. One of them is free falling right into the event horizon. It's a shame that the most precious mineral in the sphere can be drilled only there.</em><br></p>
<p>Welcome to the Black Pit and the Six Worlds, a sphere of weird science fiction and temporal anomalies.</p>
<p>This unofficial supplement for Troika! contains:</p>
<p>1. Six strange worlds, with singular features, inhabitants e special resources</p>
<p>2. Six new backgrounds</p>
<p>3. Six new advanced skills</p>
<p>4. Six new enemies</p>
<p>Be aware! The Pit does not forgive the unwary...</p>
<p><strong>NEW!</strong> Order a print copy on <strong><a href="https://www.lulu.com/en/en/shop/roberto-bisceglie/the-black-pit/paperback/product-r4q855.html?page=1&amp;pageSize=4" target="_blank" rel="nofollow noopener" referrerpolicy="origin">lulu</a></strong>.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTg3Mzk1LzU2MjQxOTQucG5n/original/J9dr0k.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTg3Mzk1LzU2MjQxOTUucG5n/original/SUMDRk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTg3Mzk1LzU2MjQxOTYucG5n/original/bUI3dM.png]]
<p>Will your little broccoli succeed in freeing itself from its complex by taking the time to reconnect with its feelings?</p>
<p class="text-center">The Broccoli Complex<em> is an introspective mini-RPG by Erell, with mechanics inspired by the practice of Marshall Rosenberg's Nonviolent Communication.&nbsp;</em>
</p>
<p class="text-right">This game was created as part of the&nbsp;<a href="https://itch.io/jam/jam-brocoli" target="_blank"><em>Jam Broccoli</em> game jam</a>.&nbsp;
</p>
<p>A6 booklet - 24 pages. <br>Colour &amp; printer friendly&nbsp;PDF.
</p>
<p class="text-right">Illustrations:&nbsp;<a href="http://b0ng.itch.io/" target="_blank">bong</a><br>Translation:&nbsp;<a href="http://twitter.com/newxick" target="_blank" rel="nofollow noopener" referrerpolicy="origin">newxick</a></p>
<p><br>
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIwODc0MC83MDUyNDI3LmpwZw==/original/D7jF2d.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwODc0MC83MDUyNDM1LmpwZw==/original/i%2FdHwt.jpg]]
<p>Remember those lovable-cheap "20 (or 40 or 50 or 100) Games For Windows" CD-ROM's that were available everywhere in the 1990's?</p>
<p>Well, I wrote a lot of those games. If you bought one of those $9.95 CD-ROM discount packs from Expert or Cosmi, you have probably played my games. And now those games seem to be available in a lot of those "abandonware" sites for free download, despite the fact that I still own all the rights.<br></p>
<p>If you liked those old games, and you actually want to own 'em legally, you're in luck, because I've packaged FIFTY of my old games in a brand new "Retro Pack". It's just like your old "Super Amazing Games for Windows 95", except it actually runs on newer stuff.</p>
<p>The Retro Pack has arcade games! You can test your sushi-eating and squid-avoidance with Suzy Sushi. You can hone your skills defeating aliens in Invaders From Neptune and Zap Pod. You can dodge crazy drivers in Head On Collision or blast enemy tanks in Think Tank. There is even an oddball arcade version of Poker!<br><br>You may have played the old standard card solitaire and dice games a million times, but have you tried Siege, Vanishing Cross, Kizbot or Brain Bones? The Code Zone Retro Pack has some interesting new games that you will enjoy learning and (hopefully) winning.<br><br>The Retro Pack has several fun board games. Whether it is classic stuff like Backgammon or Moku, or if you want a new kind of challenge with PangKi or Engulf, the Retro Pack has what you need.<br><br>If your brain needs some exercise, the Retro Pack has brain benders! If you like word games, there are some great Cryptograms. If logic puzzles are what you need to keep your brain trained, you can test your skills in Deductive Logic. Finally, if you think you know everything about how to beat Tic-Tac-Toe, see how well you do in 3D!<br><br>And to top it all off, every game has plenty of variations and options available, so you can change the challenge once you think you have mastered the game.<br><br>Fifty fun little games for one low price!</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTg4OTI2Lzg4Mzc1Ny5wbmc=/original/NjTW4h.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg4OTI2Lzg4Mzc1OC5wbmc=/original/yxnwZM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg4OTI2Lzg4Mzc1OS5wbmc=/original/7X5M4g.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg4OTI2Lzg4Mzc2MC5wbmc=/original/2rrJys.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg4OTI2Lzg4Mzc2MS5wbmc=/original/9jyKgU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg4OTI2Lzg4Mzc2Mi5wbmc=/original/E7BeYp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg4OTI2Lzg4Mzc2My5wbmc=/original/208r09.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg4OTI2Lzg4Mzc2NC5wbmc=/original/FBqpZk.png]]
<p>The game is Blackjack, but not as you know it.</p>
<p>The wager is your life, but you do not plan to lose it.</p>
<p><br>Experience a twist on both a classic card game and a classic novel. Amass skills, press your luck, do anything to stay ahead of those who would destroy you once again. Uproot this twisted game and find the revenge you seek!<br></p>
<h2>Features:</h2>
<ul><li>Enjoy a new form of Blackjack where both player and dealer twist the rules</li><li>Delve deep into a corrupt society, growing stronger with each fight. Don't get greedy or all your power will be stripped from you</li><li>Over half an hour of music to accompany your struggle</li><li>Multiple color palettes to choose from</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/7AsOkS0ne_I" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODEyNjk0LzQ1NTcwNzkucG5n/original/SaIrXJ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODEyNjk0LzQ1NTcwODAucG5n/original/BP3VLK.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODEyNjk0LzQ1NTcwODEucG5n/original/bZFPQp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODEyNjk0LzQ1NTcwODIucG5n/original/FeH%2BE0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODEyNjk0LzQ1NTcwODUucG5n/original/QFSCpe.png]]
<p>The Creature Comes for Us is a&nbsp;game that can be played solo or multiplayer which uses a standard deck of cards, two six-sided dice, and the players' imagination.&nbsp;</p>
<p>You play as a group of people preparing to fight against a currently unknown threat. You will learn (through drawing cards) about the creature that is coming for you, you will find resources and tactics to fight against them, and you will learn more about the unique traits and talents of the player characters. The second part of the game brings together what you've gathered to fight the looming horrors and you will find out if your characters and world&nbsp;can survive the onslaught.</p>
<p>The game can be used for a standard one-shot game with friends or for world-building and character-building purposes to slot into other systems.&nbsp;A finished game can leave you with a well-developed world in which to set a post-apocalyptic game for&nbsp;another RPG, or with ruins and&nbsp;a story for a future adventuring party to explore.</p>
<p>The download includes two versions. Both have been designed by an accessibility consultant to&nbsp;work on screen readers however&nbsp;the plain text version is specifically created with a range of visual accessibility needs in mind.&nbsp;</p>
<p>Recommended: 2-5 players or as solo game. 2-3 hours to play. No GM (game master) is required to play.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzU4MDA1LzQyMzcyMzgucG5n/original/zAx552.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU4MDA1LzQyMzcyMzkucG5n/original/I9gzAq.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzU4MDA1LzQyMzcyNDAucG5n/original/YNYVlm.png]]
<p class="text-justify text-center">The Crystal Golem is a short but hard action game, inspired by Dark Souls and playing old games without a manual.<br></p>
<p class="text-justify">Will you be able to destroy the corruption from the Void and restore Humankind?</p>
<p><img src="https://img.itch.zone/aW1nLzQ1MjczODguZ2lm/original/PiO0l6.gif" alt="Combat" title="Combat" loading="lazy"><br></p>
<p class="text-center"><em>*&nbsp; *&nbsp; *&nbsp; *&nbsp; *</em></p>
<p class="text-justify"><em>Energy born from the Void seeped into the rock and gave it some semblance of life. Humankind tried to harness its power, building wonderful creatures of crystal and light. But, alas, their pride was their undoing.<br>Only one of their machines remains today. It must now descend into the earth and go to the Place Where All is Backwards. It may still have a chance to fix this World...</em></p>
<p class="text-center"><em>*&nbsp;&nbsp;*&nbsp;&nbsp;*&nbsp;&nbsp;*&nbsp;&nbsp;*</em></p>
<ul><li>Three worlds you'll have to fight your way through.</li><li>A retro, PS1-inspired aesthetic.</li></ul>
<p class="text-justify">The controls are listed in the Readme file. Both keyboard + mouse and controller&nbsp; input are&nbsp;supported.</p>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODA3NzI3LzQ1Mjc4MjAucG5n/original/IdBM5q.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODA3NzI3LzQ1Mjc4MTgucG5n/original/pJC%2Foy.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODA3NzI3LzQ1Mjc4MTkucG5n/original/SmtuNI.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODA3NzI3LzQ1Mjc4MjIucG5n/original/ezh8I%2F.png]]
<p><em>Simple farmers of the rotating colony ship&nbsp;</em>Within Wheels<em>&nbsp;starve as bargain InstaCrops wither on the vine. They turn to faith and ritual, concocting visions of a hell on earth from half-remembered traditions and commercialized lore. Bunker doors seal as their beacon calls upon believers to consecrate synthetic soil with holy blood.</em></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzYyNjE2MDMucG5n/original/3N1C7W.png" loading="lazy"></p>
<p>
</p>
<p><strong>The Drain</strong>&nbsp;is a tense level-0 <strong>funnel adventure</strong> for the&nbsp;Mothership sci-fi horror RPG&nbsp;set in a combat-ravaged farming habitat.<br></p>
<p>Each player runs 4-5 level-0 prisoner-soldiers through the hellish battlefield of the colony ship&nbsp;<em>Within Wheels</em>. Their mission: win freedom by acquiring a legendary religious relic at the behest of their corporate jailors,&nbsp;PrayCo.</p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzYyNjE5NTgucG5n/original/z%2BVc%2BC.png" loading="lazy"><br></p>
<p><em>The Drain</em>&nbsp;takes a WWI influenced war-as-hell meat grinder and mashes it with bleak, occult survival horror themes drawn from video games like&nbsp;<strong>Silent Hill</strong>,&nbsp;<strong>Resident Evil</strong>, and&nbsp;<strong>Darkwood</strong>. This zine is packed with everything you need to churn out a crop of battle hardened level-1 characters from level-0 rabble, including:<br></p>
<ul><li><strong>Brand new rules</strong>&nbsp;for running carnage-filled funnels in&nbsp;<em>Mothership</em>.
</li><li><strong>A</strong>&nbsp;<strong>funnel crawl map by Andrew Walter</strong>, gorgeously illuminated to chart the party's movement through the conical space.
</li><li><strong>Vicious new items</strong>&nbsp;to arm your mob of funnel PCs.
</li><li><strong>Art on every spread,</strong>&nbsp;including illustrations from&nbsp;<em>Mothership</em>&nbsp;creator&nbsp;<strong>Sean McCoy</strong>.</li></ul>
<p>Originally funded by <strong>over 1400 backers</strong> on&nbsp;Kickstarter, this full release brings you a host of awesome bonus content including:</p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzYyNjIxNjIucG5n/original/4XbvFx.png" loading="lazy"><br></p>
<ul><li><strong>Card-sized funnel character sheets</strong>, complete with 20 delightful character portraits by <strong>Evlyn Moreau</strong> for your players to fight over.<br>
</li><li><strong>10 harrowing battlefield comms audio props</strong> to use at your table.</li></ul>
<p>This fully standalone adventure optionally continues a trilogy of <em>Mothership</em> adventures beginning with <em><a href="https://ian-yusem.itch.io/wrath-of-god" target="_blank">Wrath of God</a></em> and ending with <em><a href="https://ian-yusem.itch.io/meat-grinder" target="_blank">Meat Grinder</a></em> for a contiguous three-part&nbsp;"<em>Inferno Trilogy"</em> campaign.&nbsp;</p>
<p><strong>A 16-page, full-color zine</strong>&nbsp;table ready for a One-Shot funnel adventure or ominous Campaign location.&nbsp;Easily adapted to your sci-fi RPG of choice.</p>
<p>Written by&nbsp;<strong>Ian Yusem</strong><br>Illustrated by&nbsp;<strong>Sean McCoy&nbsp;</strong>and&nbsp;<strong>Andrew Walter</strong><br>Edited and Developed&nbsp;by&nbsp;<strong>Fiona Maeve Geist</strong><br>Layout and Cover Art by&nbsp;<strong>Christian&nbsp;Kessler</strong></p>
<figure><img src="https://img.itch.zone/aW1nLzYyNTY4OTkucG5n/original/xF2gzy.png" loading="lazy"></figure>
<p><a href="https://www.exaltedfuneral.com/collections/neoteric-codices/products/the-drain-pdf" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Exalted Funeral</a>&nbsp;(US)<br><a href="https://shop.tuesdayknightgames.com/products/the-drain" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Tuesday Knight Games</a> (US)<br><a href="https://floatingchair.club/collections/zine-quest/products/the-drain" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Floating Chair Games</a> (US)<br><a href="https://monkeyspawgames.com/products/the-drain" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Monkey's Paw Games</a> (Canada)<br><a href="https://iglootree.com/the-drain-by-ian-yusem-1151-p.asp" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Iglootree</a> (UK)</p>
<p>You can pick up a <strong>discounted bundle</strong> of the entire&nbsp;<em>Inferno&nbsp;Trilogy</em>&nbsp;from&nbsp;<a href="https://www.exaltedfuneral.com/products/inferno-trilogy-bundle" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Exalted Funeral</a>!</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA3NDM4NS82MjU2ODY2LnBuZw==/original/oK0LHw.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3NDM4NS82MjYxODYzLnBuZw==/original/NZpIGY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3NDM4NS82MjYxODYyLnBuZw==/original/ruanc1.png]]
<p><em>They called the orchard I served in “The Emperor’s Harem” -- and we were, in a sense.</em></p>
<p><strong>
The Emperor's Orchard</strong> is an American freeform LARP for at least 6 players. Play over five scenes, and wrestle with frustation, control, and revolution. Players may take on the roles of the Emperor, the Empress, their nobles, or the sentient trees living in the Emperor's orchard.</p>

[img width=500 [https://img.itch.zone/aW1nLzE3NTQxODAuanBn/original/ChPP02.jpg]]
<p>"What's it about?"<br></p>
<p>"Either talking to a God-alien-computer intelligence and breaking free of&nbsp;the Black Iron Prison that has enslaved all of mankind between the time of the Ancient&nbsp;Romans (which is also right now) and a vast space dictatorship 100 years in the future (which is also right now), or doing drugs and going crazy. Or both."</p>
<p class="text-center"><strong><em>Weird things are happening, man.</em>
</strong></p>
<p>The Empire Never Ended&nbsp;is a hack of Jared Sinclair’s game
<a href="https://s-jared.itch.io/whats-so-cool-about-outer-space">What’s So Cool About Outer Space?</a> made for&nbsp;for the&nbsp;<span></span><a href="https://itch.io/jam/what-is-so-cool-about-jam/entries">#wscajam</a>.</p>
<p>The game was inspired by the works of Philip K. Dick—primarily VALIS, A Scanner Darkly, and Radio Free Albemuth. It also draws inspiration from the games&nbsp;Cthulhu/Trophy Dark, Otherkind, and the GNAP! Theater Projects' improvised PKD show, Strange Matters. Cover sources from&nbsp;<a href="https://www.deviantart.com/rxgrafix" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Eric Gazano</a>.&nbsp;</p>
<p><strong>Playing Online?</strong> Make a copy of this&nbsp;<a href="https://docs.google.com/spreadsheets/d/1qz40mLuuowmVq1B90SeNBzsfWN22pJjFl6imRAmW1FI/edit#gid=777810361" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Character Keeper</a> and you're all set!<br></p>
<p class="text-center"><em>"It is sometimes an appropriate response to reality to go insane."</em></p>
<p class="text-center"><em>--Philip K. Dick&nbsp;</em></p>
<p></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzQ5NTgzLzQxODYwNTQucG5n/original/jK8%2Fhj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQ5NTgzLzQxODYwNTUucG5n/original/XzR1tY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQ5NTgzLzQxODYwNTEucG5n/original/qwQL9H.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQ5NTgzLzQxODYwNTMucG5n/original/ItqonG.png]]
<p><strong>THIS STORY IS NOT ABOUT SUPERHEROES. </strong>It’s about the real world, where people go to work, pay their bills, and where everyone has psychic powers. Even you. Even me. Even <em>him</em>. We just don’t know it yet.</p>
<p><strong>HOSHI YOSHINAGA KNOWS.</strong> They’ve unlocked their full potential. Hoshi’s psychic powers allow them to read minds, which they use to help people.</p>
<p>People like <strong>ARCHER CISNEROS</strong>, a young man struggling with his identity and with love. Archer may look like any other college student—but he’s not. He can see the future. He just doesn’t know it yet. He’s too busy worrying about something even more important…</p>
<p>He has a terrible crush on another boy.</p>
<p><strong>THIS IS A STORY ABOUT THE REAL WORLD</strong>, where everyday people have incredible powers, where the mundane is seen through a fantastical filter. This is a story about the real world, and the year everything changed.</p>
<p class="text-center">★ ★ ★ ★ ★</p>
<p><strong>THE FABULOUS GAYS, VOLUME 1</strong> is a 264-page&nbsp;novel about a bunch of queer disasters with psychic powers. This bundle contains DRM-free digital editions of the book in three formats:</p>
<ul><li><strong>PDF </strong>- Most similar to the print version of the book, best for reading on a tablet, on a big smartphone, or on your computer.</li><li><strong>EPUB </strong>- Compatible with pretty much any modern device. Customize the font, margins, line spacing, and more. Perfect for your smartphone's built-in books app.</li><li><strong>MOBI</strong> - Compatible only with Kindle Reading Devices. Has the same level of customization as EPUB.</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/uwE4_LmPNZk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA4ODgwMC82MjczNDczLmpwZw==/original/YPGGGg.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA4ODgwMC82MjczNDc1LmpwZw==/original/RANazb.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA4ODgwMC82MjczNDc0LmpwZw==/original/FUFVT%2F.jpg]]
<h4>THE GAME</h4>
<p>The Fall of Lazarus is a first person exploration game set in a science fiction future. You are a crew member of the USSC Lazarus waking up from cryo sleep without memories and even without name in an apparently abandoned drifting cargo spaceship. But you're not alone, there is also Hybris, the Artificial intelligence who commands the ship.</p>
<p>The Fall of Lazarus is a deeply narrative video game. You will have to solve some puzzles and explore in order to advance in the story. The universe and story will unveil branching along the scenary, objects and documents left behind by the people who lived in the Lazarus at some point.<br>In addition if you search and connect the dots maybe a greater puzzle will be revealed and the darker truth around you will become brighter.</p>
<h4>GAMEPLAY</h4>
<p>The Fall of Lazarus is a first person exploration game. There is a main story you'll play but you'll have to search and inspect every detail of the scenary looking for clues, notes, letters and objects and piece by piece gather information about what's happening around you.</p>
<p>There are a lot of mysteries aboard the USSC Lazarus and depends on you how many of them you can resolve along your journey. At the end of it maybe you resolve the bigger puzzle around what's going on. Maybe you're right. Maybe you're wrong. You'll need to have in mind every detail in order to unveil the whole story.</p>
<p>You'll have to resolve some puzzles as well, but we wanted to integrate them in the narrative and the scenery. You are in a spaceship and we wanted it to feel like it. The interaction with these puzzles is the same as in the rest of the game trying to not break the immersion in the story.</p>
<p>And you'll also can interact with the terminals and computers around the ship. Some will give you key information, others will help you in your way out. There is a whole operating system full of software and apps filled with information of any kind to explore and take advantage of. You'll have a tool (called Mnem/0z1n3) that will help you gathering and classifying information and breaking through password protected terminals.</p>
<h6>SYSTEM REQUIREMENTS</h6>
<p>MINIMUM:<br>OS: Windows 7/8.1/10 (64 bits)<br>Processor: i5 4260u 1.4GHz<br>Memory: 4GB<br>Graphics: NVIDIA GeForce GTX 560 1GB/AMD Radeon HD 6870 1GB or better<br>DirectX: Version 10<br>Storage: 5GB</p>
<p>RECOMMENDED:<br>OS: Windows 7/8.1/10 (64 bits)<br>Processor: i5 6600 3.3GHz<br>Memory: 8GB<br>Graphics: NVIDIA GeForce GTX 970 4GB/AMD Radeon R9 290 4GB or better<br>DirectX: Version 11<br>Storage: 5GB</p>
<h4>FEATURES</h4>
<p>- First person exploration game.<br>- A deeply narrative game with a plot full of twists and mysteries.<br>- Puzles you'll have to solve while advancing in the main story.<br>- A variety of beautifully crafted sceneries.<span></span></p>
<h4>PROLOGUE DEMO</h4>
<p>The Fall of Lazarus: The First Passenger is the conclusive prologue and demo of The Fall of Lazarus. In this little adventure set in the year 2180 you will play as Caleb Rogers, a Gen-Ethics (an audit firm focused on controlling the normative and quality of criogenic, clonation and genetic alteration processes) who wakes up in the USSC Lazarus against his will.The First Passenger is a little slice of the final game where we showcase all the playable mechanics of the full game and also works as an example of the narrative we want to play with. You can play a whole level of the USSC Lazarus out of the five levels will include the final game, every one of them highly detailed and full of objects and terminal to interact with while playing the main story. But we wanted you to enjoy this little stand alone experience separately if you want to. This is only the prologue with another protagonist but we highly recommend you to stay tuned and, when the day comes, enjoy the full experience.<span></span></p>
<h4>REFERENCES</h4>
<p>When we have to describe The Fall of Lazarus in a phrase we always say «it's like Firewatch (Campo Santo) meets the film Moon (Duncan Jones)».</p>
<p>The astonishing off-frame and foreshadowing narrative of Moon is our core narrative reference and the slow paced development of the plot and clever dialogues of Firewatch are really inspiring to us.</p>
<p>Of course we're filled with references such us Gone Home, Mind: Path to Thalamus, The Guest and films like 2001: a space odyssey or Alien. Even Lost series are being really influencing because of how it works the mysteries and characters.</p>
<h4>PLATFORMS</h4>
<p>We will launch The Fall of Lazarus on PC at first. We obviously want to release it on as much platforms as we can, but right now we have to focus on the PC version. We also like to port the game to VR but we have to wait to see how things work.</p>
<h4>FOLLOW US</h4>
<p>Follow the development of our game:</p>
<p>Official website: <a href="http://www.thefalloflazarus.com/" rel="nofollow noopener" referrerpolicy="origin">http://www.thefalloflazarus.com</a><br>Follow us: <a href="https://twitter.com/NoWandStudios" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/NoWandStudios</a><br>Visit: <a href="http://www.nowandstudios.com/" rel="nofollow noopener" referrerpolicy="origin">http://www.nowandstudios.com/</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/8ZLG-KmuMwM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODMwNzQvODM4NTA1LnBuZw==/original/r%2BLY9u.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODMwNzQvODM4NTA2LnBuZw==/original/07dn6K.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODMwNzQvODM4NTA3LnBuZw==/original/hdxFMv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODMwNzQvODM4NTA4LnBuZw==/original/Hg6rC8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODMwNzQvNjg1Njg0LnBuZw==/original/8nHht4.png]]
<p><strong>About the Game:</strong><br><br>Maneuver a marble through obstacles to the end of the level in this PS1 styled, Marble Maze type game.<br><br><strong>Controls:</strong><br></p>
<table><tbody><tr><td>Controls</td><td>Keyboard</td><td>Controller</td></tr><tr><td>Yaw Rotation/Y Rotation<br></td><td>Q and E<br></td><td>LT L2 and RT R2<br></td></tr><tr><td>Pitch and Roll Rotation</td><td>W A S D</td><td>Left Analog Stick</td></tr><tr><td>Camera switch</td><td>C Key</td><td>Select Button</td></tr><tr><td>Camera Zoom</td><td>Arrow Key Up and Down</td><td>Right Analog Stick Forward and Back</td></tr><tr><td>Pause</td><td>Escape</td><td>Start Button<br></td></tr></tbody></table>
<p><strong>Credits:</strong><br><a href="https://twitter.com/malitschek" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Jamathan</a><br><a href="https://twitter.com/QuinnPixelArt" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Quinn</a><br><a href="https://twitter.com/Khamelot_" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Kham</a><br><a href="https://twitter.com/Amon26" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Amon</a><br><a href="https://twitter.com/dev_cuttlfrsh" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Cuttlefresh</a><br><a href="https://twitter.com/MicFrog" target="_blank" rel="nofollow noopener" referrerpolicy="origin">MicFrog</a><del></del><br></p>
<p>And to all the others that helped me staying Motivated during the development process.</p>
<p><strong>Why I made this game:<br></strong></p>
<p><strong>There where several reasons why I made a game like this. The first reason was, that I wanted to try out a more physics based game.<br><br>Inspiration:</strong><strong><br></strong></p>
<p><strong>I had several inspirations for making this game, one of them was those Marble Maze games I played as a child. <br>The other one was a game called <a href="https://youtu.be/LIPDFNjqRV4" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Tama: Adventurous Ball in Giddy Labyrinth</a> that came out as a start title for the PS1 and the Sega Saturn.</strong><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MzUwNy83Mjk5NTk0LmdpZg==/original/ItrD%2Bz.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MzUwNy83Mjk5NTgxLmdpZg==/original/puWSuG.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MzUwNy83Mjk5NTk1LmdpZg==/original/w6bW5G.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MzUwNy83Mjk5NTg4LmdpZg==/original/LNS56Y.gif]]
<p>In the&nbsp;<em>Firebringer</em>&nbsp;are two&nbsp;self-contained adventures around <a href="https://penpaperdice.itch.io/the-garden-of-the-spire-queen">The Garden of the Spire Queen</a>.&nbsp;</p>
<p><em>The Missing Historian</em> is an investigative adventure around a missing scholar, <em>Edmund Winterholme</em>,&nbsp;who was personally tasked by the&nbsp;<em>Spire Queen</em> finding clues about a powerful weapon.&nbsp;It contains a chart with the characters relations between each other, a chart where to find clues and what actions take place while the players investigate the case.&nbsp;</p>
<p>The main adventure though is <em>The Temple of the Blazing Sun</em>. This adventure starts with the information gathered by the historian. The players travel to another hex and find the hidden entrance to the long forgotten temple. There they'll find a riddle regarding the <em>Firebringer</em>&nbsp;to get to the shrine in the middle of the temple&nbsp;and the old artefact. Inside the temple they are confronted with the long dead, but also a new inhabitant.</p>
<p>See the other great submissions at the&nbsp;<a href="https://itch.io/jam/rittermarch" target="_blank">Rittermarch Jam</a>.<a href="https://itch.io/jam/rittermarch"></a>
</p>
<p><em>The Firebringer is an independent production by René Kremer and is not affiliated with Losing Games. It is published under the Mausritter Third Party Licence. Mausritter is copyright Losing Games.</em>
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTY3MzE4LzU0OTA0ODEucG5n/original/bHX6wo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTY3MzE4LzU0OTAwNjEucG5n/original/ynY7Me.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTY3MzE4LzU0OTAwNjIucG5n/original/lrkC%2Fj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTY3MzE4LzU0OTAwNjMucG5n/original/Qftiez.png]]
<h1>Earth, 20XX</h1>
<p>It started in the late year 200X. Ghosts, demons, and other occult forces grew resistant to conventional exorcisms. Minor possessions, the kind that would previously have been resolved with a sprinkle of holy water and a few minutes of half-hearted praying, suddenly became multiple-hour-long, life-or-death ordeals.<br></p>
<p>Major possessions swallowed entire townships and broke holy men.</p>
<p>Worse, the unspoken rule that a possessing force had to operate <em>only</em> through the local environment became snapped and frayed.</p>
<p>Possessors could now manifest physically, and they were extremely swole.</p>
<p>Thus, the world entered a new age of banishments. Gone were the days when any reedy man could cast out a demon.</p>
<p>Fighting the supernatural was now a job for…</p>
<p>The Flexorcists.</p>
<p>--------------------------------------------------------------------------------------------------</p>
<p>The Flexorcists is a 23 page tabletop rpg about pro-wrestlers working a side-gig where they banish ghosts, stake draculas, and powerbomb creatures from&nbsp;lagoons.</p>
<p>It's best for one-shots, but supports limited campaign play, and its primary mechanics use d10s and rock-paper-scissors.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzg5OTYxLzc0MzM1NDgucG5n/original/lrNQjQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzg5OTYxLzU4NDE3NDIucG5n/original/Fc7dFG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzg5OTYxLzU4NDE3NDMucG5n/original/B61Ejp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzg5OTYxLzU4NDE3NDQucG5n/original/jzR4Tx.png]]
<p>Who hasn't dreamt, at some point, of filling a pool full of jello and swimming in it? In some of us, that dream never died. Some of us kept dreaming: what if the whole street was jello? Or the continent? The world!? The Floor is Jelly posits a universe made of jello, made purely for one's own amusement. No longer need we look to our walls and our floors and sigh, "How solid! How sadly immalleable! How I wish for a world consisting only of Non-Newtonian fluids!" That world has arrived, via the dark magic of videogames, as&nbsp;<em>The Floor is Jelly.</em></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjI0MzUyLzEwNTk2NTYucG5n/original/RlspKr.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI0MzUyLzEwNTk2NTcucG5n/original/bsddvK.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI0MzUyLzEwNTk2NjcucG5n/original/c7JE5c.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI0MzUyLzEwNTk2NTUucG5n/original/ejvOiJ.png]]
<p><strong>THE FROST PAPERS</strong></p>
<p><em>"The Ouija Board of Roleplaying Games" - Occult Victorian parlor games for those who love paranormal investigation and ghost stories.</em><br></p>
<p>There is nothing quite like them. The Papers combine elements of live action roleplaying games, mass hypnosis as performed by stage magicians, the guided meditations of Tibetan monks, and séances of turn of the century spiritual mediums.</p>
<p>Each game promises an immersive night of supernatural exploration for you and group of friends, placing you at the center of a real life ghost story.</p>
<p>The games are each unique, guiding you through a series of séance-like paranormal investigations. &nbsp;</p>
<p>Each of the ten games is connected to the next, following the story of the mysterious Mr. Frost and his own experiments over a hundred years ago.&nbsp;&nbsp;</p>
<p>They let you follow his footsteps as carefully as you can to unveil clues about the strange realm called the Grey beyond the Fog and the Shadowman that stalks it.</p>
<p>There are no scripts, no actors, and no props. These games provide you the framework to have genuine frightening experiences heavy with occult and supernatural theme.&nbsp;&nbsp;</p>
<p>It’s the closest thing to being in a supernatural horror movie you’ll ever experience.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDk3MzAwLzI1NzA5MzUuanBn/original/E4tUsO.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDk3MzAwLzI1NzA5MzQuanBn/original/PTKF66.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDk3MzAwLzI1NzA5MzMuanBn/original/R1Djh1.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDk3MzAwLzI1NzA5MzYuanBn/original/ToiSsR.jpg]]
<h2>The Furniture of Self (VR/Non-VR)</h2>
<p>is an autobiographical VR game about identity and self.&nbsp;<br>Explore my room, create your identity and find out&nbsp;about my own.</p>
<p></p>
<blockquote class="text-center"><em>A human is born without identity, surrounded by everything, in contact with nothing. From the first touch ones identity is starting to exist until it gets overwhelming, ever changing and incomprehensible.&nbsp;</em></blockquote>
<p></p>
<p>This game is the product of a year of studying the topics identity and self. It tries to visualize the process of building ones own identity and exploring a given identity.&nbsp;</p>
<p>Everything you touch will become a part of your self and you cannot let go anymore. Your body is not able to interact with the surrounding, only your identity can do so.</p>
<p>While exploring the room and its contents stories about myself will be unlocked, which are attached to the items in the room.</p>
<h5>Controls:</h5>
<p><img src="https://img.itch.zone/aW1nLzE5ODI0MDAuanBn/original/6seWxH.jpg" alt="HTCViveControls" title="HTCViveControls" loading="lazy"></p>
<h5>None VR Controls:</h5>
<ul><li><em>Rightclick </em>to look around</li><li><em>W|A|S|D</em> to move</li><li><em>Click </em>to grab item</li></ul>
<h6>Menus:</h6>
<ul><li><em>Tab </em>to open catalogue</li><li><em>Q|E</em>&nbsp;to look at previous/next catalogue item</li><li><em>Esc </em>to open menu</li><li><em>Scroll </em>to navigate menu or catalogue</li><li><em>E </em>to confirm menu selection</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/VbPdFbS73ls" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzk5NzQ1LzE5ODUxNjEuZ2lm/original/GnLgh7.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzk5NzQ1LzE5ODUxNTQuZ2lm/original/Md8Lgw.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzk5NzQ1LzE5ODUxMzQuZ2lm/original/GxI%2Fbu.gif]]
<p>The <em>Garden of the&nbsp;Spire Queen</em> is a self-contained region with encounters, rumours, locations, a new faction and coming up a settlement description of <em>Honigspitze</em>, the home of the <em>Spire Queen</em>, for the Mausritter roleplaying game, created for More Mausritter March 2021. <em>Honigspitze</em> will contain additional minor factions, special NPCs, a threat table, a plot-hook table, two new items and a what's going on table to make each visit of <em>Honigspitze</em> a bit different.</p>
<blockquote>The <em>Garden of the Spire Quee</em>n is a region centered around <em>Honigspitze</em>, the home of the <span class="">Spire Queen</span>. The queen is the ruler of a folk of bees living together with mice in <em>Honigspitze</em>. After ending the tyranny of the <em>Old King</em>, a foul mouse, mice and bees starting working together. But new dangerous arise. The mausritter of the <em>old table of knights</em> are dead and <span class="">Maegan</span> returned to the <em>Swamps of Nia</em> while  just settled over to the garden and is gathering forces to satisfy her craving for honey and delicious mice.</blockquote>
<p>See the other great submissions at the&nbsp;<a href="https://itch.io/jam/rittermarch" target="_blank">Rittermarch Jam</a>.<a href="https://itch.io/jam/rittermarch"></a></p>
<p><em>The Garden of the Spire Queen is an independent production by René Kremer and is not affiliated with Losing Games. It is published under the Mausritter Third Party Licence. Mausritter is copyright Losing Games.</em>
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTQ3ODc0LzUzODk4NTQuanBn/original/f5Xaxj.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTQ3ODc0LzUzODk4NTYuanBn/original/3XyUjM.jpg]]
<p><strong>The Geography</strong>&nbsp; is an&nbsp;endless, nonlinear orchestration.</p>
<p><strong>The Geography</strong>&nbsp;is a companion for meditation, relaxation, jubilation, contemplation, self care, sleeping and dreaming.<br></p>
<p><strong>The Geography</strong> is an endless album.</p>
<p><strong>The Geography</strong>&nbsp;is both still and in motion.</p>
<p><strong>The Geography</strong>&nbsp;is a passive game, but&nbsp;also lets you play, if you want to play.</p>
<p><strong>The Geography</strong>&nbsp;uses terrain data from Svalbard, Norway&nbsp;rendered into low-poly landscapes brought to life with soft shaders.&nbsp;</p>
<p><strong>The Geography</strong> is inspired by&nbsp;The Global Seed Vault.</p>
<p><strong>The Geography</strong> is inspired by&nbsp;Music.</p>
<p><strong>The Geography</strong>&nbsp;is an electronic orchestration that plays forever, always re-organising itself, always changing and creating ambient sound baths.&nbsp;</p>
<p><strong>The Geography&nbsp;</strong>is unique to the listener, with every instance generating a unique organisation of harmonious sounds,&nbsp;creating a unique composition.</p>
<p><strong>The Geography</strong>&nbsp;is a form of The New Music.
</p>
<p><strong>The Geography</strong>&nbsp;is a&nbsp;collaboration between&nbsp;<a href="http://pawsmenu.net/?i=1" rel="nofollow noopener" referrerpolicy="origin"><span class="">Michael Berto</span></a>&nbsp;and&nbsp;<a href="https://titouanm.com/" rel="nofollow noopener" referrerpolicy="origin"><span class="">Titouan Millet</span></a>.</p>
<p>----------------------</p>
<p><strong>The Geography</strong> is also available for <a href="https://apps.apple.com/us/app/the-geography/id1575620073?ign-itsct=apps_box_link&amp;ign-itscg=30200" target="_blank" rel="nofollow noopener" referrerpolicy="origin">iOS</a><br><strong>The Geography</strong> is also available for <a href="https://play.google.com/store/apps/details?id=com.MichaelBerto.TheGeography" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Android<br></a><strong><br></strong><a href="https://drive.google.com/drive/folders/1pZMRc5DMhN3aKy2ayMYYMrKwrxFLazw5?usp=sharing" rel="nofollow noopener" referrerpolicy="origin">press kit</a><span></span></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/4vjEpzhQlWQ" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTQyNDE1LzY1MDI5NDIuZ2lm/original/Q%2FHHT6.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQyNDE1LzYzOTI3NzkuZ2lm/original/fpjz3R.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQyNDE1LzY0MDgwOTUuZ2lm/original/lDGrBB.gif]]
<h2><strong>!! i'm hosting a multimedia jam called the <a href="https://itch.io/jam/transrage" target="_blank">TRANS FUCKING RAGE JAM</a>. it runs from march 10th to april 10th.&nbsp;join <a href="https://itch.io/jam/transrage" target="_blank">here</a>. spread the word <a href="https://twitter.com/stargazersasha/status/1501395504818655233?s=20&amp;t=xh7UsZ8zMUXq3SFgoiwaRQ" target="_blank" rel="nofollow noopener" referrerpolicy="origin">here</a>. !!</strong></h2>
<p>THE GIRLFRIEND OF MY GIRLFRIEND IS MY FRIEND is a simple, heartfelt roleplaying game for 2 to 6-ish players, created by <a href="https://stargazersasha.itch.io" target="_blank">stargazersasha</a><span></span> for the <a href="https://itch.io/jam/mspaint-rpg-jam" target="_blank">MS Paint Jam</a><span></span>.&nbsp; it's a game about art, magic, and identity; it's about being trans and growing through young adulthood together.<br></p>
<p>FEATURES:</p>
<ul><li>19 pages of content, fully illustrated by myself (plus a plaintext version)<span></span></li><li>10 *extremely* playable, friendable and romanceable characters, PLUS all the tools you need to design your own playbooks</li><li>a rules-lite original system, with content geared toward slice-of-life-style conflicts and storylines</li><li>a few pages of content for modding and making the game your own</li><li>
at least three werewolves </li><li>magic
</li><li>lots and lots of gender</li></ul>
<p>and so much more :3 so what are you waiting for? dip your toes into the girlfriend universe and discover how much it has in common with your own. :)<br></p>
<p><em>don't forget to <strong>drop a 5-star rating</strong> before you leave!! it helps a ton! thank you very much!<br></em></p>
<p><em><strong>not&nbsp;sure&nbsp;which&nbsp;playbook&nbsp;to&nbsp;use?</strong>&nbsp;why&nbsp;not&nbsp;try&nbsp;the&nbsp;<a href="https://uquiz.com/r3jcEA" rel="nofollow noopener" referrerpolicy="origin">official GFOMGF personality quiz</a>?&nbsp;</em></p>
<p><em><strong>looking for more GFOMGF content?</strong> check out <a href="https://itch.io/c/1849978/girlfriend-of-my-girlfriend-third-party-content">my collection of third party playbooks &amp; supplements</a>!</em><em><br></em></p><p><em>and finally, if you enjoyed&nbsp;<strong>girlfriend</strong><strong></strong>, i bet you'll love its sister in layout and design, the spectacular <a href="https://valntine.itch.io/wizard-game" target="_blank">YOU ARE A WIZARD</a> by <a href="https://valntine.itch.io" target="_blank">val&amp;tine</a>!! go check it out right now</em></p>
<p></p>
<h2><strong>testimonials</strong></h2>
<p></p>
<ul><li>"<em>the girlfriend of my girlfriend is my friend</em> brims creativity, compassion, and a delicate fluidity in both the characters it portrays and the style of play it boldly puts forward. it is as likely to melt your heart with its colorful charm as it is to give you chills when showing you its subtle somber notes." <br>— <a href="https://stardrift-design.itch.io/crescentmoon">ema acosta</a>, creator of <em>crescent moon</em></li></ul>
<ul><li>"<em>girlfriend </em>is one of those games that comes around and changes the way I think about games. It's silly and hilarious and cute ... but it's also one of the most heartfelt and personal games I've ever had the pleasure of reading."<em><br></em>— <a href="https://valntine.itch.io/">val&amp;tine</a>, creator of <em>YOU ARE A WIZARD<br></em></li></ul>
<ul><li>"Hey, are you reading this review? Are you still on the fence  about if this is the game for you? Well, listen, it is."<em><br>— </em><a href="https://wherewolf.itch.io/">Wherewolf Wells</a><span class=""></span></li></ul>
<p></p>
<h2><strong>press</strong></h2>
<p></p>
<p><em>the girlfriend of my girlfriend is my friend&nbsp;</em>appears in <a href="https://pizzapranks.itch.io/indiepocalypse-22" target="_blank">INDIEPOCALYPSE #22</a>, the November 2021 issue! the zine page i made for it appears in this page's sidebar.</p>
<p><em>girlfriend&nbsp;</em>also appeared in the <a href="https://itch.io/b/1316/bundle-for-ukraine" target="_blank">Bundle for Ukraine</a>, organized by <a href="https://necrosoftgames.itch.io" target="_blank">Necrosoft Games</a>, a charity bundle that raised almost two million dollars in its first day!</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIwODAzNC83MDQ4NTM0LnBuZw==/original/IYZp0S.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwODAzNC83MDQ4NTM1LnBuZw==/original/dUddXN.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwODAzNC83MDQ4NTc1LnBuZw==/original/s2hHHY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwODAzNC83MTU3NjQzLnBuZw==/original/d7s56f.png]]
<p class="text-center">A short form ttrpg&nbsp;for 3 players + 1 musher where you play as a team of 3 young sled dogs trying to make it home through RUFF terrain.</p>
<p>Game Design&nbsp;by <a href="https://www.marygeorgescu.com/about" rel="nofollow noopener" referrerpolicy="origin">Mary Georgescu</a>, Art by <a href="http://www.lizenright.com/" rel="nofollow noopener" referrerpolicy="origin">Liz Enright</a>,&nbsp;Adventures by <a href="https://twitter.com/DanDanTransient" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Daniel Hansen</a><span></span> &amp; <a href="https://twitter.com/namanjidog" rel="nofollow noopener" referrerpolicy="origin">Fritz Keahna Warrior</a>, Edits and Layout by <a href="https://farebella.com/" rel="nofollow noopener" referrerpolicy="origin">Ella Romero</a>.</p>
<p class="text-center"><a href="https://www.kickstarter.com/projects/haiduc/the-great-bork-team" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Kickstarted in Feb 2019</a> - Released Feb 2022</p>
<p>In The Great Bork Team players deal with consequences of being young sled dogs on their first long journey into the world. The passing down of a position to a new dog is more about fitting in with an experienced team and sharing knowledge of the trail than it is tracing a genetic lineage. Players will be completely communicating in one word barks to each other in order to be able to deal with new things that happen along the way while attempting to prove to their hoomin friend that they are in fact the greatest borks this team could have ever hoped for.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDY1MTMwLzgwMjM4MTQucG5n/original/j5Ox5y.png]]
<p>A 50 page zine containing a complete RPG, brought to you by <a href="https://www.kickstarter.com/projects/clovenpinegames/the-great-soul-train-robberyzinequest" rel="nofollow noopener" referrerpolicy="origin">ZineQuest Kickstarter backers</a>.</p>
<h3>On the road to hell there was a railway line. An express train to the infernal city of Dis, crewed by furies and carrying treasure and souls to damnation. You’re going to rob it.</h3>
<p>The Great Soul Train Robbery is a tabletop roleplaying game for 2–6 players and 1 gamemaster about Desperados robbing the train to Hell.</p>
<p>Spin an allegorical Weird Western yarn as your sharpshooters, fiddlers, homesteader widows, and other Desperados attempt a Hellish train heist. Will you claim your prize from the train, or be overcome, damned, or broken by the heist?
</p>
<p>This game uses a simple system based on Rowan, Rook, &amp; Decard's&nbsp;<em>Honey Heist</em>. Your Desperados are a motley crew with mixed motives, so they all have two stats: Lover and Sinner. Use one to make human connections and perform selfless acts, and the other to do dirty deeds and brutal acts.&nbsp;
</p>
<p>You and your fellow Desperados have heard rumors of a fabulous prize aboard this Hell-bound train, and you've stowed away on the caboose to rob the thing. To claim your prize, you’ll make your way forward through the train car by car, using your wits, guns, or heart to navigate obstacles—like damned souls challenging you to poker games, or Pinkerton guards patrolling with leashed hellhounds.
</p>
<p>The Great Soul Train Robbery is perfect for low-prep or no-prep oneshot gameplay. The game is packed with tables of inspiration for you roll on or choose from, ensuring that every train car (and every play-through) is different and exciting.</p>
<p><strong>When that lonesome whistle sounds, will you have the grit and the gristle to knock over the hell-bound train? Will you lose your own soul in the process?</strong>
</p>
<p>In short, this zine will give you a game that:</p>
<ul><li>Works for 2–6 players, plus one gamemaster
</li><li>Offers a compact experience perfect for a oneshot
</li><li>Uses the quick-to-learn&nbsp;<a href="https://gshowitt.itch.io/honey-heist" target="_blank">Honey Heist</a>&nbsp;system ("Sweetened by Honey Heist")
</li><li>Provides all the materials and inspiration you need to pick up and play
</li><li>Tells memorable stories of damnation or redemption among hell-bent Desperados
</li></ul>
<p>Are you a non-backer looking to pre-order a physical copy of this zine? <a href="https://great-soul-train-robbery.backerkit.com/hosted_preorders" rel="nofollow noopener" referrerpolicy="origin">Order here via Backerkit!</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/j6MyJebakKE" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA0MTAxMi81OTQ1NDQ3LmpwZw==/original/5M30Tq.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0MTAxMi81OTQ1NDcyLmpwZw==/original/761PwY.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0MTAxMi81OTQ1NDcwLmpwZw==/original/vQzoSM.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0MTAxMi81OTQ1NDcxLmpwZw==/original/bwovIf.jpg]]
<p></p>
<p>THE INFLATED HEAD ZONE</p>
<p>a necrotic meat planet story</p>
<p>by ZACH HAZARD VAUPEN</p>
<p>40pg</p>
<p>B&amp;W</p>
<p>Originally Published by Spithouse Publications (2013)&nbsp;</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzA2OTg1LzE1MDcxMjYucG5n/original/qVt%2Fhn.png]]
<p>The Jellicle Chance (co-written with Kit Pulliam) is an improv-heavy tabletop roleplaying game for four or more players (one of whom will run the game). You and a group of friends are sentient cats seeking the opportunity to achieve a sort of death ascension, after which the ascending cat will be reincarnated into a new form. Don't overanalyze it; this one's just about cats.</p>
<p>Everything you need to play the game is included except for one or more six-sided dice. This game has a heavy emphasis on creative expression, so if any members of your group are inclined to do so, outside props, equipment, or other game paraphernalia might be useful. The game is designed for a single session, but we certainly won't stop you if you decide to run this one as a sprawling, years-long campaign.</p>
<p>Two PDF files are included. One of them is a black and white version suitable for printing, and the other is a full color version featuring gold text on black. It is exquisitely gaudy, as all cats should be.</p>

[img width=500 [https://img.itch.zone/aW1nLzQ4MzUyODAucG5n/original/xm2Veg.png]]
<p>The sea holds something for everyone- how will you choose to make your mark? Embark on a quest to return to land, bearing a treasure only your Captain knows the truth of- for now.&nbsp;</p>
<p><em>This game was created as a part of the Up All Night Jam with Off the Table and SuperQueero.</em></p>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1nLzQzMDExMjkucG5n/original/uLweUi.png]]
<p>The Western States have entered an age of
wonders. Technological innovations
transform the lives of her people.
Automobiles connect vast distances
over glistening highways. Radio
waves carry new voices, thoughts,
and art to ears around the nation.
Neon lights hold back the night&nbsp;on the shoulders of massive
dams. And the train—ceaseless,
thundering, unrelenting—powers it all; pumping food, material, and people
through the veins of this great
extractive beast.</p>
<p>But these new wonders have not
brought blessings to everyone.
With the Federal Government in the pocket of powerful Robber Barons and Vampires;
the poor, and the land itself, are
dispossessed and exploited. In The Western States, many stow away on
the freight trains in search of paying
work.
</p>
<p>And then there are the monsters.</p>
<p>Werewolves prowl the Northern
Prairie. Big Foots leave the woods
in greater numbers. The dirt itself
seems to have risen up in the Dust
Bowl of the Southern Prairie. Vampires
haunt the elegant mansions of
Acadia, ruthlessly running their railroad lines.</p>
<p>The Federal Government has
effectively abandoned its people.
The wealthy can afford protection,
but most communities are
struggling to cope. This is where
you come in.
</p>
<p>You are an adventurer, a laborer, a
wanderer, and a monster hunter.
As a member of the International
Brotherhood of Itinerant Sellswords
(IBIS), you travel the rails of The Western States, selling your skills&nbsp;to whatever Neighborhood, Town
Council, Grange Hall, or whoever
will pay you for your next meal. You
are a knight of the rails.</p>
<p>It’s a dangerous, precarious life, and
probably not one you had planned
to enter, but the people need your
help. And righteousness is its own
reward. Right?&nbsp;</p>
<p>_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-</p>
<p>The Knights of the Road is a tiny hack of&nbsp;<em>Into the Odd/Electric Bastionland </em>by Chris McDowell <a href="http://www.bastionland.com" rel="nofollow noopener" referrerpolicy="origin">(www.bastionland.com)</a>. Players assume the mantle of monster hunters who hop the rails of a dystopian early 20th century, taking contracts to kill creeps and monsters, all the while avoiding the wrath of evil Barons of Industry.</p>
<p>Work together to tell a fun
story, solve puzzles, improvise, joke,
eat, and enjoy your time together.</p>
<p>_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-</p>
<p>What do you get?</p>
<p>PDF versions of three 16-page booklets: the main rule book, a bestiary, and a book of GM advice.</p>
<p>32 hand-drawn, black-and-white illustrations.</p>
<p>A high-quality PNG of an 18x24" full-color poster map of the Western States (the setting for The Knights of the Road).</p>
<p>A PDF of a printable ready-to-assemble booklet layout, with instructions for putting it together yourself.</p>
<p>_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-</p>
<p>For printing at home, make sure to select long side binding if you're printing double-sided,&nbsp;&nbsp;flip the page on the long side if you're hand-feeding&nbsp;it. Also, make sure to scale it to fit in your printable area on your printer. Hand-feeding will be more accurate to line up the printed area on both sides of the paper.<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/pvy7C0Bjhnk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTIyMzM2LzUyMTU4MTcucG5n/original/d0yo04.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIyMzM2LzUyMTU4MjEucG5n/original/g3CJEv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIyMzM2LzU4NTE3NzkucG5n/original/OqPRcQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIyMzM2LzU4NTE3ODcucG5n/original/oa0vsV.png]]
<p class="text-center">=o=o=o=o=o=o=o=o=o=o=o=o=o=</p>
<p class="text-center" style="font-size:130%"><em>You are a raccoon. You lived your whole life on an island but now you&nbsp;have a hot air balloon.</em></p>
<p class="text-center" style="font-size:130%"><em>You want to be free and reach
<strong>The Land Beyond.</strong></em></p>
<p class="text-center"><strong><em><span></span></em></strong></p>
<p class="text-center">=o=o=o=o=o=o=o=o=o=o=o=o=o=</p>
<p><strong>The Land Beyond</strong> is a solo RPG about letting go and going beyond what you think you could. You travel through wondrous lands living fantastic adventures along the way.&nbsp;</p>
<p>During your journey, you will have the opportunity to reflect upon the burdens you carry with you and, luckily, let go of them so you can travel even further.</p>
<p><img src="https://img.itch.zone/aW1nLzY2ODA0MjAuZ2lm/original/kY578F.gif" loading="lazy"><br></p>
<hr>
<h2>Core premises:</h2>
<ul><li>Travel through a gorgeous whimsical map and meet unique people and landscapes</li><li>No preparation needed, just pick up and play</li><li>You only need 2 six-sided dice</li><li>You resolve an&nbsp;<em>entire adventure&nbsp;</em>with a&nbsp;<em>single die roll</em></li><li>A series of&nbsp;<strong>Prompts </strong>and <strong>Elements </strong>bring flavor to your journey and opportunity for self-reflection</li><li>Manage your&nbsp;<strong>Gas&nbsp;</strong>and your&nbsp;<strong>Burdens&nbsp;</strong>in order to go far!</li></ul>
<p><img src="https://img.itch.zone/aW1nLzY2ODA2NTYucG5n/original/YgJELD.png" loading="lazy"></p>
<hr>
<h2>Your purchase includes:</h2>
<ul><li>Single-page version of the game, with the map and all the rules you need</li><li>Separate map version, with extended rules clarifications on a different page</li><li>Every purchased copy generates a free community copy!</li></ul>

[img width=500 [https://img.itch.zone/aW1nLzY2ODAzNTEuanBn/original/2wlHIm.jpg]]
<p><span></span></p>
<p class="text-justify">The world of Rosarah is haunted by the ancient past. Grand civilizations fell to the iron fist of the Kithen Empire. The people suffered. But while the empire fell over 1,000 years ago, the guardians who protect Rosarah are dwindling.</p>
<div class="text-justify"><iframe style="width: 500px; height: 281px" src="https://www.youtube.com/embed/SHITjGb4qX8" frameborder="0" allowfullscreen=""></iframe></div>
<p class="text-justify">They are the Librarians: the guardians of ancient knowledge and history, protectors of the 8 magic spell books which were originally used by evil to conquer Rosarah. Randel is thrust suddenly into his role as a Librarian when his grandfather is slain by an undead monster. He must unseal the spells, buried deep in well-guarded Libraries, in order to defend Rosarah once again from tyranny.</p>
<div class="text-justify text-center"><img src="https://img.itch.zone/aW1nLzI4NjIxNzcuanBn/original/0wU7v2.jpg" style="color: inherit; font-size: inherit" loading="lazy"></div>
<p></p>
<p class="text-justify"><strong>Exploration:</strong> Explore the vast and open world of Rosarah, investigating its many secrets.&nbsp;Find hidden treasures, collectible upgrades, and interesting landmarks. You are free to tackle the challenges in whatever order you like, as it is possible to explore the entire game with just the tools you have available at the beginning of the game.<br></p>
<figure><img src="https://img.itch.zone/aW1nLzI4NjIxNzguanBn/original/qiDdVJ.jpg" style="color: inherit; font-size: inherit" loading="lazy"><br></figure>
<p class="text-justify"><strong>Solve Puzzles:</strong> Uncover the secrets buried in the eight hidden Libraries throughout Rosarah. Each is riddled with dangerous traps, and puzzles that seek to trick any who might enter uninvited. If you are able to navigate them, each contains a powerful spell to add to your set of abilities.</p>
<p><img src="https://img.itch.zone/aW1nLzUxOTQ3NDkuanBn/original/Pg5it0.jpg" loading="lazy"><br></p>
<p class="text-justify"><strong>Battle Enemies:</strong> Take on fourteen powerful bosses, as well as minibosses, and a host of fiendish foes determined to reign destruction across Rosarah. Use many different strategies to fight, making use of an arsenal of weapons and magical attacks. Find new abilities, and upgrade your abilities by finding hidden treasures.<br></p>
<p><img src="https://img.itch.zone/aW1nLzI4NjIxNzkuanBn/original/uOn%2Bfn.jpg" loading="lazy"><br></p>
<p>
</p>
<p class="text-justify"><strong>Legend Quest:</strong> For those looking for an extra challenge, Legend&nbsp;Quest is included in v5.0.0. With this game mode, the entirety of Rosarah is changed. Enemies are stronger and have new abilities. The overworld includes new perilous foes and traps. Every Library has a transformed layout and new mechanics, requiring you to use every tool at your disposal.<br></p>
<figure><img src="https://img.itch.zone/aW1nLzI2MjgzNjIucG5n/original/mvmC8D.png" style="max-width: 100%; background-color: rgb(17, 17, 17)" loading="lazy"></figure>
<p><strong>[Note]</strong>&nbsp;This game can be played on a keyboard with configurable controls. However, a gamepad controller is recommended for the best experience.</p>
<p><strong>This game is available on Windows 10 and Linux.</strong></p>
<p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/SHITjGb4qX8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjk5MzUyLzUxOTQ3NzEuanBn/original/i9UGOR.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjk5MzUyLzUxOTQ3NjYuanBn/original/FeqPdP.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjk5MzUyLzUxOTQ3NjkuanBn/original/O6R412.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjk5MzUyLzI4NjIxODAuanBn/original/lRBXRj.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjk5MzUyLzI4NjIxODEuanBn/original/P7IxcN.jpg]]
<figure><img src="https://img.itch.zone/aW1nLzIxNTc2ODkuZ2lm/original/hNzxvr.gif" style="color: inherit; font-size: inherit" loading="lazy"><br></figure>
<p><em>The Last Survey</em> is a narrative essay game about a geologist contracted by a Brazilian mining company to survey rare earth metal reserves. Their research has found that there is not enough metals on the planet to sustain growing industries of green energy and you must deliver these findings to the company's CEO.</p>
<p>Based on studies by nickel and silver prospectors, geoscientists, and mineral analysts, recent findings show&nbsp;there isn't enough mineral&nbsp;material on the planet to&nbsp;sustain the current rate of&nbsp;electric car, high efficiency fuel cell, and solar paneling manufacturing.</p>
<p>Will your choices help steer the direction of your employer away from global mineral fatigue? Or will the urgency of&nbsp;your research fall on unsympathetic ears?</p>
<p><img src="https://img.itch.zone/aW1nLzIxNTc3MTAuZ2lm/original/NloWf%2F.gif" style="max-width: 100%; font-size: 14px; background-color: rgb(255, 255, 255)" loading="lazy"><br></p>
<p>Story, Design, and Illustration:<br> <a href="http://doubleunderscore.net" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Nicholas O'Brien</a><br><br>Assistant Art Director:<br>Becca Sass<br><br>Soundtrack:<br>Lewis Kopenhafer<br><br>Performance Documentation: <br><a href="http://www.intrinsicgreyproductions.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Intrinsic Grey</a></p>
<p><img src="https://img.itch.zone/aW1nLzIxNTc3MDUuZ2lm/original/iU13%2Fu.gif" loading="lazy"><br></p>
<p>Download .zip file and open game application, all interaction based on mouse clicks. Additional instructions included at game start.</p>
<p>See how far you can get in the conversation. Depending on your choices, you'll be asked to leave prematurely.</p>
<p>--</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjgzNjI4LzIxNDc5MTAuZ2lm/original/yVLAna.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjgzNjI4LzIxNDc5MTEuZ2lm/original/W9YmEN.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjgzNjI4LzIxNDc5MTIuZ2lm/original/1VF9MR.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjgzNjI4LzIxNDc5MTMuZ2lm/original/6P%2BRfz.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjgzNjI4LzM5NzgwMzAuZ2lm/original/q9L4ML.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjgzNjI4LzM5NzgwMzIuZ2lm/original/CsJhug.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjgzNjI4LzQ5MzUxNzQuanBn/original/XqkBnd.jpg]]
<p><strong>The Lay Of Our Land</strong> is a&nbsp;solo journaling game about&nbsp;the ephemeral things in life&nbsp;and in the world.&nbsp;In this game you will play as&nbsp;<strong>the map</strong>, an object that will&nbsp;be changed by geography,&nbsp;politics and people through&nbsp;the actions of different&nbsp;<strong>cartographers</strong> over time.<br><br><strong><em>My Patrons (all tiers) get this game for free</em></strong>, so if you want to check it out, here's the link for my&nbsp;<a href="https://www.patreon.com/ArmandaH" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Patreon.</a></p>
<p>This game was made as a submit for the "Lost and Found" jam, organized by Jack Harrison (<a href="https://mouseholepress.itch.io/">https://mouseholepress.itch.io/</a>), using his SRD (<a href="https://srd.mousehole.press/" rel="nofollow noopener" referrerpolicy="origin">https://srd.mousehole.press/</a>). This is my first time reading the system and participating in a jam. I am SO happy!&nbsp;I hope you enjoy it!&nbsp;</p>
<p>To play you will need:<br>- This file<br>- Paper<br>- A pencil or a pen<br>- A quiet place<br>- 2 hours<br><br>If community copies are not available, please contact me and I will send you the game without asking questions.&nbsp;</p>
<p><br></p>
<p></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE5ODgwNi82OTkzNjY1LmpwZw==/original/yMLfF4.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE5ODgwNi82OTkzNjY2LmpwZw==/original/TBA1mM.jpg]]
<p>1960 was a turning point for the gay rights movement, the California juvenile justice system, and the citrus industry town of Corona. This short story follows all three through the eyes of Clark and Julio, two teen boys in their senior year trying to navigate small town morals, catholic upbringings, and, of course, each other.</p>
<p>Originally published June 5th 2019</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTEwNTIzLzI2NTA2ODAucG5n/original/lgOiDW.png]]
<p>A young woman wakes up in a lighthouse with a head injury and no memory of the shipwreck that brought her there—or anything else, for that matter. A stone-faced, stoic Lighthouse Keeper assures her that help will arrive soon, but seems unwilling or unable to help her figure out whom or where she is. Help the Lighthouse Keeper’s Guest uncover the mysteries of the island and its inhabitants in this point-and-click visual novel about unlikely friendship and loss of identity.</p>
<p>One playthrough of <em>The Light at the End of the Ocean</em> will take approximately an hour and fifteen minutes. Including all endings and bonus content, the full length is about two hours total.</p>
<p><a href="https://lighthousevisualnovel.wordpress.com/content-warnings/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Content Warnings</a><br></p>
<p><a href="https://lighthousevisualnovel.wordpress.com/credits/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Credits</a></p>
<p><a href="https://lighthousevisualnovel.wordpress.com/walkthrough/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Official Walkthrough</a><br></p>
<p></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDI4MTQwLzIxMzk3NTQucG5n/original/4uclpQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDI4MTQwLzIxMzk3NTYucG5n/original/nORZPi.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDI4MTQwLzI1NTQ5NjkucG5n/original/HeFzBP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDI4MTQwLzIxMzk3NTUucG5n/original/bnsken.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDI4MTQwLzIxODAxOTEucG5n/original/yh37Ni.png]]
<p><strong><em></em></strong>You’ve just inherited Cascade Manor from your eccentric aunt, but not only is it in a dismal condition, you have only 30 days to pay off the loan your aunt took out shortly before her death.</p>
<p>You decide to convert the manor into an inn, but while you’re busy trying to satisfy the needs of your unusual and persnickety guests, you discover that there is more to the manor than meets the eye...</p>
<h2>Highlights</h2>
<ul><li>Explore the manor and its surroundings, and unlock new rooms and discover new areas.
  </li><li>Hire an interesting cast of characters to work at your inn.
  </li><li>Meet a gaggle of guests, including adventurers, inventors, opera singers, fairies, and many others, all of whom have unique personalities and varied preferences.</li><li>Complete mini-quests such as hunting down the ghost haunting the manor, finding coal for the blacksmith, restoring an ancient temple, and more!</li><li>Configure guest rooms, purchase amenities, and upgrade the manor and nearby village to keep your guests happy.
  </li><li>Design advertisements to attract more guests, but be warned, false advertising will not be taken lightly either by the authorities or your visitors!
  </li><li>Find items and beautiful paintings that will help you pay off the loan and solve the mystery of Aunt Agatha’s puzzling behavior.
  </li><li>Replay the game with a New Game+ and discover several exciting new items and guests, and experience different outcomes and multiple endings based on your choices and actions.</li><li>Unlock achievements, master the art of innkeeping, and become the owner of a 5-star inn that caters even to royalty!</li></ul>
<h2>Playtime</h2>
<p>About 4 hours for one playthrough (multiple endings available).</p>
<h2>Note</h2>
<p>This game is an extension of my Indie Game Maker Contest 2017 game, <a href="https://seaphoenix.itch.io/rockandrose" target="_blank"><em>The Rock and the Rose</em></a> (which won 2nd prize!), with many more new items, areas, characters and upgrades, additional gameplay elements, a richer storyline, achievements, higher-resolution artwork, and improved pixel art and UI.</p>
<h2>Minimum system requirements</h2>
<p>OS: Windows 7, Windows 8 or Windows 10<br>
Memory: 4 GB RAM<br>
Storage: 300 MB available space<br>
Display: 1280x720 or better</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/88kwtUZvUXI" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTE2MTc4LzMzMTA1ODAucG5n/original/19nFUC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTE2MTc4LzM0MTAyNzIucG5n/original/4pW%2BcV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTE2MTc4LzUxNjIyNDEucG5n/original/Is%2FUDu.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTE2MTc4LzI2ODE5MzEucG5n/original/48brXm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTE2MTc4LzUxNjIyNjEucG5n/original/v%2Blkcr.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTE2MTc4LzM0MTAyNzkucG5n/original/AhCwbt.png]]
<p><strong>PLEASE NOTE: A controller is recommended to play.</strong></p>
<p><strong>FOR MAC USERS:</strong> Due to files permissions errors and game engine issues, certain steps may be necessary for proper installment:</p>
<p>Step 1: Download the latest version of NW.js from <span class="" title="https://nwjs.io/downloads/"><a href="https://nwjs.io/downloads/" rel="nofollow noopener" referrerpolicy="origin">https://nwjs.io/downloads/</a></span></p>
<p>Step 2: Extract and open the NW.js download and delete the    Contents/Resources folder</p>
<p>Step 3: Copy and Paste the Contents/Resources folder from the game files into the NW.js folder</p>
<p>Explore the forgotten history and deepest, darkest secrets of The Lost Cave of the Ozarks.<br></p>
<p>As the unfortunate boy who fell into a sinkhole in the 1880s, use your trusty lantern and vivid imagination to survive the dangers that dwell deep in the heart of the Lost Cave. But beware – not only does the cave become more and more treacherous as you struggle to escape, but the boy’s prolonged isolation serves as a catalyst to his overactive imagination- causing reality and fantasy to become indiscernible. To make matters worse, several threatening messages found throughout the cave suggest you might not be alone in the cave after all. In the present day, join the mysterious tour guide and attempt to shed more light on the Lost Cave’s enigmatic history.<br><br>Will an outlaw’s bias, a young boy’s imagination, and a tour guide’s research be enough to help you discern the truth hidden inside the Lost Cave?<br><br>The Lost Cave of the Ozarks features:<br>• Unique puzzle-solving platforming rife with exploration, sparks of action, and several hidden secrets to discover<br>• Play as characters from the present day and the 1880s to experience the ambiguously grim history of the Lost Cave<br>• Story-rich narrative weaves together three mysterious characters’ stories – each with an unreliable point-of-view – that not only takes you on a journey to the past and present, but also from the wooded Ozark Mountains and caves, to the pirate-infested high seas, the majestic Mount Olympus, eerie Egyptian temples, and more!<br>• Secret alternate story endings<br>• Hand-painted, stylized visuals with diverse settings and characters<br>• Fantastic, emotional, and dynamic soundtrack sets the mood and fluidly transforms along with the player’s progress<br>• Minimalist U.I shifts players' focus to the environment via visual and audio cues</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/rBZ3b3et31s" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTUzMDk0LzcwMTMwNC5naWY=/original/ELAvzB.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUzMDk0LzI1NzE0NDQucG5n/original/RZEtWf.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUzMDk0LzI1NzE0MzYucG5n/original/y9oNZH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUzMDk0LzI1NzE0NDguanBn/original/6M3L7F.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUzMDk0LzI1NzE0MzcucG5n/original/a4mn3d.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUzMDk0LzI1NzE0NDIucG5n/original/0hZlBk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUzMDk0LzI1NzE0MzgucG5n/original/6ayxoF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUzMDk0LzI1NzE0NDMucG5n/original/2%2BSP0t.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUzMDk0LzI1NzE0MzUucG5n/original/1aloJq.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUzMDk0LzI1NzE0NDEucG5n/original/g0i%2F7O.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUzMDk0LzI1NzE0NDAucG5n/original/kxIr6U.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTUzMDk0LzI1NzE0MzkucG5n/original/xDHdQb.png]]

<p>Uncover the mystery of the Machine's Garden as you make your way through this short and atmospheric puzzle game. </p>
<p><br></p>
<figure><strong><img src="https://img.itch.zone/aW1nLzgzNTkyNDcuZ2lm/original/IbbY%2Fa.gif" loading="lazy"></strong></figure>
<p></p>
<p><strong>SOLVE CHALLENGING</strong><strong> PUZZLES</strong><strong><br></strong></p>
<p>Think critically to make your way through 36 challenging and handcrafted hexagonal grid puzzles. Master the use of special cells that launch, attach and multiply hexes to solve intricately interwoven puzzles.</p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzgzNTkyODIuZ2lm/original/va8AUw.gif" loading="lazy"><br></p>
<p><br></p>
<p><strong>UNRAVEL THE THREADS OF THE PAST</strong></p>
<p>Explore a series of slowly unraveling stories that reveal a poignant, yet lighthearted narrative.</p>
<p><br></p>
<p><strong><img src="https://img.itch.zone/aW1nLzgzNTkyNDUuZ2lm/original/D7Bcjl.gif" loading="lazy"></strong><br></p>
<p></p>
<p><strong>REPAIR WHAT WAS LOST</strong></p>
<p>Repair the Machine's forgotten subsystems, but beware the consequences. After centuries of dormancy, the military installation, vast and serpentine, has opened its eye.</p>
<p><br></p>
<p>by Jon &amp; Michael - feel free to email us at machinesgarden@gmail.com with any inquiries, support questions, or to share some nice words.&nbsp;<a href="https://drive.google.com/drive/folders/1DQ3AdSjmS-493_bwyZ5WpCuDI8Ll1-l-?usp=sharing" target="_blank" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">press kit available here</a>.</p>
<p><br></p>
<p>Wishlist our upcoming weird sci-fi puzzler, TENDY,&nbsp;on steam:&nbsp;<a href="https://store.steampowered.com/app/1816890/TENDY/" rel="nofollow noopener" referrerpolicy="origin">https://store.steampowered.com/app/1816890/TENDY/</a><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/WJN9bAqwRQY" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTU4NzA4LzYxMjY4MzEuZ2lm/original/FBEAud.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNTU4NzA4LzQwMDYwMjIucG5n/original/Amm3Bz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTU4NzA4LzMzMzU3NzAucG5n/original/w1DLUv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTU4NzA4LzYxMzQyNzQuZ2lm/original/4asif%2F.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNTU4NzA4LzQwMDYwMjMucG5n/original/tzftzu.png]]
<p><br></p>
<h1>The Magus is a solo journaling tabletop RPG that takes you on a sweeping journey for power, ambition, and arcane mastery, at great personal and interpersonal cost.
<em></em></h1>
<p><em>For the entirety of February, 100% of sales went directly to charity. While that period has ended, every contribution is still dearly appreciated.</em><strong><em>&nbsp;<a href="https://twitter.com/momatoes/status/1367388481035460608?ref_src=twsrc%5Etfw" target="_blank" rel="nofollow noopener" referrerpolicy="origin">See update.<br></a></em></strong></p><strong><em><a href="https://twitter.com/momatoes/status/1367388481035460608?ref_src=twsrc%5Etfw" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzc0OTYzMzIuanBn/original/v%2FFhk3.jpg" loading="lazy"></a></em></strong>
<h2>About</h2>
<p>As a journaling game, you will roll dice, track stats, create spells, and write&nbsp; imaginary experiences from the perspective of your character: a wizard, newly embarking on their quest for power, their head filled with grand visions of mastery.<br></p>
<blockquote><em>I finally mastered the Forge Chain spell. I had to create a pact with a demon -- forgive me Elia -- but it is worth it. It has to be. It's the only way to bring peace to the kingdom...and glory to me.<br></em></blockquote>
<p><em><img src="https://img.itch.zone/aW1nLzUzNjE2MTAuanBn/original/tOS5f7.jpg" loading="lazy"><br></em><img src="https://img.itch.zone/aW1nLzUzNjE2MjguanBn/original/19V6vW.jpg" loading="lazy"><br><br>This RPG is crunchy. You will use several polyhedral dice to manage four traits: Focus, Power, Control, and Scars, which shape how the protagonist overcomes&nbsp; challenges and meets their denouement after <strong>seven</strong>, fateful events.<br>&nbsp;<br>&nbsp;<em> &nbsp; &nbsp;Perhaps they sail to the Enigmatic North in search of the final homonculus.<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Perhaps they burrow deep underground to escape their eldritch overlords.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Or perhaps they go mad with power, and plunder innocent lives for M O R E<br></em></p>
<p>Everything comes at a cost, however: will you spend your scant remaining time to acquire more powerful spells, or nurture the few connections keeping you human?<br><br><img src="https://img.itch.zone/aW1nLzUzNjE0NjEuanBn/original/aDpOwI.jpg" loading="lazy"><br></p>
<h2>Overcome fantastic challenges with your fledgling power, meet strange creatures along the way, and fly close to the sweet sun of omnipotence.</h2>
<p><br>Featuring fifty exquisitely-designed pages, The Magus is a memorable experience about sacrifice, loneliness, and the power of magic and pathos coursing through all of us.<strong><br></strong></p>
<p><strong>Sample Plays:<br></strong></p>
<ul><li><strong>A sorcerer's climb to power, and the catastrophe that follow </strong>(credit: Kin) <strong><a href="http://willkinchlea.com/journal-the-magus/" rel="nofollow noopener" referrerpolicy="origin">http://willkinchlea.com/journal-the-magus/</a><br></strong></li><li><strong>An ambitious mage finds friends along the way&nbsp;</strong>(credit: PercyPropa)<strong> <a href="https://twitter.com/PercyPropa/status/1355422185343516673" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/PercyPropa/status/1355422185343516673</a></strong></li><li><strong>In which the magus aims for a better world, and finds an ally they truly care for </strong><a href="https://twitter.com/PaulCzege/status/1357800664672264192" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/PaulCzege/status/1357800664672264192</a></li></ul><h3>Recognition<a href="https://carbonerieludiche.blogspot.com/2021/11/annuncio-vincitore-echantillon-della.html?m=1" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><br></a></h3><p><strong><a href="https://carbonerieludiche.blogspot.com/2021/11/annuncio-vincitore-echantillon-della.html" rel="nofollow noopener" referrerpolicy="origin">On November 2021, The Magus was awarded with the Giovine Italia medal from Carbonerie Ludiche in Italy.</a></strong><strong><span class=""></span></strong><a href="https://nessundove.it/en/shopping/magus/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"></a><br><strong><a href="https://carbonerieludiche.blogspot.com/2021/11/annuncio-vincitore-echantillon-della.html?m=1" target="_blank" rel="nofollow noopener" referrerpolicy="origin"></a><em></em></strong>
<strong><em><a href="https://twitter.com/momatoes/status/1367388481035460608?ref_src=twsrc%5Etfw" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzc0OTYzMzIuanBn/original/v%2FFhk3.jpg" loading="lazy"></a>
</em></strong><br></p><p></p><p><a href="https://nessundove.it/en/shopping/magus/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Folks who interested in buying the physical game in Italian may purchase it from NessunDove!</a><span class=""></span></p>
<p></p><br><br><p></p>
<table><tbody><tr><td><h2>A message from momatoes</h2><p>Purchasing this game is deeply appreciated and directly supports me.<strong> That said, free copies are also available</strong>—<em>no questions asked</em>—<strong>simply <a href="mailto:hello@momatoes.com?subject=The Magus — community copy" rel="nofollow noopener" referrerpolicy="origin">email me at hello@momatoes.com</a></strong></p><p>─────</p><em>Other tiny ways to support:</em><ul><li>Share your play experience! Either via <a href="mailto:hello@momatoes.com?subject:The Magus — play report" rel="nofollow noopener" referrerpolicy="origin">e-mail</a> or thru <a href="https://i.momatoes.com/discord" rel="nofollow noopener" referrerpolicy="origin">Discord</a>.</li><li><a href="https://momatoes.com/join" rel="nofollow noopener" referrerpolicy="origin">Sign up for my mailing list</a> to receive (non-spammy!) updates on games or resources I've made.</li><li>Share this game on social media, or <a href="https://twitter.com/momatoes" rel="nofollow noopener" referrerpolicy="origin">follow me on Twitter</a>.</li></ul></td></tr></tbody></table>

[img width=500 [https://img.itch.zone/aW1hZ2UvODk5NTMyLzUwNzc2MDcuanBn/original/zpSiG3.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODk5NTMyLzUwNzc2MTEuanBn/original/cyqoxU.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODk5NTMyLzUwNzc2MDguanBn/original/hGg9Go.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODk5NTMyLzUwNzc2MTAuanBn/original/qOcBH8.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODk5NTMyLzUwNzc2MDkuanBn/original/Zfx0s6.jpg]]
<p><strong>Purchase will include a DRM-free download and a&nbsp;Steam key.</strong><br></p>
<p>The classic web game of love, loss, and balloons by Gregory Avery-Weir remastered for your modern device by Future Proof Games.</p>
<blockquote>Last night I had a dream. <br><br>I floated in darkness, immense, squamous. My mind flowed like my body, slowly and sinuously, tremendous wheels both too slow and too fast for me to describe to you now. <br><br>I was perfect, and titanic, and serene. But then, as I moved through the cold abyss, I saw a light. And as I came near, I saw something... wonderful.</blockquote>
<p>Previously only available in Flash, "The Majesty of Colors" is now available for your PC. Experience it again or for the first time with remastered sound, enhanced interactivity, and polished effects (but the same blocky pixel graphics)! Developed for Windows, OSX, and Linux.</p><p>"So immediately distinctive and unique." <br>- Dora Breckinridge, IndieGameplay</p>
<p>"You could write reams about it, but it's a game where much of the joy is in making those discoveries of what you're meant to be doing." <br>- Kieron Gillen, Rock, Paper, Shotgun</p>
<p>Best Interactive Art or Webtoy of 2008 Audience Award <br>- JayIsGames</p>
<p><strong>Note: MacOS support for this title will end beginning in 2022. For more information, see <a href="https://futureproofgames.com/blog/2021/08/17/mac-support-ending-2022/" rel="nofollow noopener" referrerpolicy="origin">our blog post and FAQ</a>.</strong><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/qdaRIc2TCy0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzk5MDAvNjk4NTgzLnBuZw==/original/BfNyAD.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk5MDAvNjk4NTgyLnBuZw==/original/3F3QqG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk5MDAvNjk4NTg0LnBuZw==/original/67AxFx.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk5MDAvNjk4NTg1LnBuZw==/original/cndEeJ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzk5MDAvNjk4NTg2LnBuZw==/original/TkUK1Q.png]]
<p>Once only spoken of in hushed whispers,&nbsp;<em>The Manse on Soracca</em> has been brought from urban myth to reality!</p>
<p>Play as Herbert Castaigne, a private investigator tasked with sailing to the mythical isle of Soracca in search of a missing woman. There you will brave the horrors of the manse, collecting tools and clues to piece together the story of her disappearance. What is the purpose of the manse? Will Castaigne survive against the trials within? And can&nbsp;<em>you</em> escape unscathed? The only way to find out is to enter..&nbsp;<em>The Manse on Soracca</em>.&nbsp;</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/YRgOT0ZLpgg" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDg3MjI3LzI1MTU4MjAucG5n/original/eFqqUr.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg3MjI3LzI1MTU4MTkucG5n/original/qbZi78.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg3MjI3LzI1MTU4MjEucG5n/original/%2BeVXQa.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg3MjI3LzI1MTU4MTgucG5n/original/pShl8A.png]]
<p>This deck of cards is both a story building aid for writers and storytellers, and a game aid for tabletop roleplaying gamers. The Map-a-Plot cards are an easy and intuitive way to create plots for fantasy stories, using random elements. Draw cards, lay them out, combine them in different ways to make up stories.&nbsp;<br></p>
<p>Queens and beggars, cursed artifacts and magical flowers,  war-torn wastelands and enchanted forests are waiting in this deck. Two pages of instructions will show you how to use the deck for workshops, brainstorming sessions, game prep, or collaborative plot creation. You can even develop the plot of your story in between roleplaying scenes!<br></p>
<p>You will need to print out the card sheets and cut the out the cards. I advise you use regular paper and put them in plastic card protectors.  <br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDY0Nzc3LzI0Mzg5MjAuanBlZw==/original/cbPAYv.jpeg]]
<p><em></em>THE MARTIAL CULT OF BLOOD KNIGHT GAIUS<em></em> is a 20-page&nbsp;dungeon crawl about a religious order of vampires who deny their feeding urges, instead only drinking the blood of those whom they have given a formal chance to defend themselves.&nbsp;<br></p>
<p>The spells, items. and monsters described in this zine are intended for use with Ben Milton’s <em></em><a href="https://questingbeast.itch.io/knave" target="_blank">Knave</a><em></em>, but can also be quickly converted for use with B/X or other OSR derivatives. In this zine, you'll find:</p>
<ul><li><strong>NINE MONSTERS AND NPCS:</strong>&nbsp;Encounter feral and ravenous Mad Vampires, cyclopean Mountain Screamers, dashing and flamboyant Vampire&nbsp;Knights, a foolhardy adventurer called Sycorax, the craven and backstabbing Demon Priest Morpho,&nbsp;and more!</li><li><strong>TWO HARD-HITTING BOSSES:</strong> Compete in a duel for a fabulous reward with the brooding cult leader Blood Knight Gaius, and encounter his bodyguard and trusted companion, the mysterious giant First Disciple&nbsp;Matsunaga.</li><li><strong>EIGHT SPELLBOOKS AND ENCHANTED ITEMS:</strong> Steal Matsunaga's limb-cleaving claymore, wear the&nbsp;Blood&nbsp;Knight's cloak of stars, and gain crystal-control over the Demon Priest Morpho. Read from the spell tomes of the&nbsp;Monastery and learn to summon a full moon, turn the floor into a sea of fire, become a classic movie vampire, and&nbsp;forge a blade from your own blood!</li><li><strong>EVEN MORE OSR GOODNESS:</strong> Build tension with a rumors table about Matsunaga, set the mood with passages of prose to read to your players,&nbsp;flesh out the story with four reasons to visit the Cult and three possible&nbsp;Epilogues, map out the Monastery courtesy of <a href="https://watabou.itch.io/one-page-dungeon" target="_blank">watabou</a>, and gaze upon three full-page illustrations by yours truly!</li></ul>
<p>While the tone of the adventure is meant to be pulpy and spooky, prominent themes include religion, starvation, shame, blood, and slight body horror. Please confirm that each of your players are comfortable with these themes before you play!<br><br><strong>NOTES</strong><br>In a previous version of the module, I&nbsp;suggested players listen to an album by Old Tower.&nbsp;I have been informed that Old Tower is associated with Nazi black metal acts. Please do not purchase, stream, or support the music of Old Tower. Check out <a href="https://gondolinrecords.bandcamp.com/album/and-in-the-autumn-night-the-black-castle-rose" target="_blank" rel="nofollow noopener" referrerpolicy="origin">...and in the autumn night the black castle rose</a> by Draped in Shadows instead!<br><br>On page 10, the final random encounter is First Disciple&nbsp;Matsunaga, with no information about the encounter. Guidelines for how to handle Matsunaga randomly appearing in the dungeon&nbsp;are listed on the two-page spread addressing the character.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODk4NzgxLzgzODI5NzIucG5n/original/ZzOexZ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODk4NzgxLzgzODI5NzMucG5n/original/5kIGH3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODk4NzgxLzgzODI5NzQucG5n/original/JXOPxY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODk4NzgxLzgzODI5NzUucG5n/original/Y3cvFd.png]]
<p><em>During a repair job to the remote freespace station PIRAD ONE, you meet a unique group of social and political outcasts and quickly learn that some have more powerful secrets than others. There is a force working from the shadows - one commune member is here on behalf of DEXTRO-SINGLETON, a powerful corp willing to do whatever it takes to secure the station and a valuable asset hidden within it. When things go bad, will you aid the disenfranchised that call PIRAD ONE home?<strong><br></strong></em></p>
<p><em><strong><img src="https://img.itch.zone/aW1nLzY4Njg0NjcucG5n/original/HZ04od.png" loading="lazy"></strong></em></p>
<p><strong>THE MOLE ON PIRAD ONE</strong> is a pamphlet adventure for use with the MOTHERSHIP sci-fi horror RPG.</p>
<p> Easily played as a one-to-two session standalone adventure or slotted into an existing campaign, <strong>THE MOLE ON PIRAD ONE</strong> sees players trapped aboard a damaged station and pitted against an undercover corporate agent with a very pressing deadline. <br></p>
<p>In addition to both standard and printer-friendly PDFs, purchase includes a Digital Asset pack featuring a number of assets for running the adventure virtually (high-res crew portraits, animated GIFs, maps, and more).</p>
<p class="text-center"><strong>LOOKING FOR A PHYSICAL COPY (AND LIVE IN THE U.S.)?<br></strong><strong>CHECK THE REWARDS BELOW!<br></strong></p>
<p><strong>Physical copies also available at:<br></strong></p>
<ul><li><strong><a href="https://www.nobleknight.com/P/2147929106/Mole-on-PIRAD-ONE-The" rel="nofollow noopener" referrerpolicy="origin">Noble Knight Games<br></a></strong></li><li><strong><a href="https://floatingchair.club/products/the-mole-on-pirad-one?_pos=1&amp;_sid=7d7b7d25a&amp;_ss=r" rel="nofollow noopener" referrerpolicy="origin">Floating Chair<br></a></strong></li><li><strong><a href="https://spearwitch.com/products/the-mole-on-pirad-one" rel="nofollow noopener" referrerpolicy="origin">Spear Witch<br></a></strong></li><li><strong><a href="https://www.exaltedfuneral.com/collections/neoteric-codices/products/the-mole-on-pirad-one-pdf" rel="nofollow noopener" referrerpolicy="origin">Exalted Funeral<br></a></strong></li><li><strong><a href="https://www.rookspress.com/products/the-mole-on-pirad-one" rel="nofollow noopener" referrerpolicy="origin">Rook's Press</a></strong></li><li><strong><a href="https://www.indiepressrevolution.com/xcart/The-Mole-on-PIRAD-ONE-Print-PDF.html" rel="nofollow noopener" referrerpolicy="origin">Indie Press Revolution<br></a></strong></li><li><strong><a href="https://iglootree.com/the-mole-on-pirad-one-by-christian-sorrell-1483-p.asp" rel="nofollow noopener" referrerpolicy="origin">Iglootree<br></a></strong></li><li><strong><a href="https://monkeyspawgames.com/collections/new-arrivals/products/the-mole-on-pirad-one" rel="nofollow noopener" referrerpolicy="origin">Monkey's Paw Games</a></strong></li></ul>
<p><strong><strong><img src="https://img.itch.zone/aW1nLzY4Njg0MzgucG5n/original/yGead6.png" loading="lazy"><br></strong></strong></p>
<p><strong>CREDITS<br></strong></p>
<p>Writing, Editing, and Design by <strong>Christian Sorrell</strong><br>Playtesting by <strong>Tom Otero, Kevin Masterson, Kurt Larson, Dave Luepke, Jordan Fischer</strong><br>Crew Art by <span class=""></span><a href="https://twitter.com/emipaints" rel="nofollow noopener" referrerpolicy="origin">@emipaints</a><br></p>
<p></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE3OTI5NC82ODY4MzkwLmpwZw==/original/R0nfzN.jpg]]
<p><br></p>
<h1>What is The Pack?</h1>
<p>In The Pack you play a domestic dog in a world where the humans have inexplicably disappeared. You have gathered into a pack with other pets from around the neighborhood.</p>
<h2>What is this game about?</h2>
<p>The Pack is a game about working together to survive in a world without a familiar support system</p>
<h2>What do the players do?</h2>
<p>The players embody their characters, narrating the action and speaking for them. They rely on their playbooks to inspire behaviors and choices that reflect the type of dog they are. Because this game is GM-less, players are also responsible for introducing dramatic elements, obstacles, challenges, and stakes for the other players.</p>
<h2>What do the characters do?</h2>
<p>The dogs work together to survive in a world suddenly devoid of the one constant they had come to know: humanity. They navigate this brave new world, following their instincts, surviving dangers and threats, and investigating mysteries.</p>
<h2>What does “GM-less” mean?</h2>
<p>Every player is allowed to introduce challenges, obstacles, and stakes into the narrative. If a player’s character doesn’t appear in a particular scene, they can take on the role of the setting, inserting threats and opportunities. All players should discuss the consequences of their actions.</p>
<p>------------------</p>
<p><br></p>
<h3>Concept: What’s the basic idea?</h3>
<p>The Pack is a game about a group of domestic dogs who wake up one day to find all humans gone.</p>
<h3>Aim: What are we trying to do?</h3>
<p>As a pack of dogs, we’re trying to survive in a world without humans. It’s up to us what that means, but it likely includes overcoming threats both natural and unnaturals, building a strong infrastructure, and perhaps discovering what made the humans disappear.</p>
<h3>Tone: How does the game feel?</h3>
<p>While the exact tone is up to us, it can vary between optimistic and grim. It can stray into the very dark, if we decide that the world is too overwhelming, or into the very goofy, if we decide that the dogs just wanna have fun.&nbsp;</p>
<h3>Subject Matter: What themes might come up?</h3>
<p>Since the dogs no longer have their humans, we might be dealing with loss and grief. Because this is a post-apocalyptic setting, we might deal with issues like scarcity. The dogs will most certainly face danger. And if we decide the devastation is paranormal or otherworldly, things might get kinda creepy.</p>
<p><br></p>
<p>------------------</p>
<h2>Content Warning</h2>
<p>The very premise of The Pack is abandonment: the dogs have been abandoned by their owners, or so it might seem to them. The dogs’ story might also deal with betrayal, injury, or even death. If the dogs’ neighbors are antagonistic or hostile, there may be animal violence. All that said, the subject matter is largely up to the players around the table. Discuss what’s off limits with the other players before you begin. Check in frequently with them to make sure the story is safe for everyone.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDg2MDY4LzUyMDM0ODAucG5n/original/0Upwkj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg2MDY4LzUyMDM0NzYucG5n/original/4b2CMX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg2MDY4LzUyMDM0NzkucG5n/original/tV78IT.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg2MDY4LzUyMDM0NzgucG5n/original/q1glGw.png]]
<p><strong>Fantasy Gods Made Easy</strong></p>
<p>The gods, spirits and religions of a fantasy world should be a vital and exciting part of its culture. But how do you create a pantheon that feels rich and real without having to do a lot of time-consuming prep work?
</p>
<p><em>The</em>&nbsp;<em>Pamphlet</em>&nbsp;<em>of</em>&nbsp;<em>Pantheons</em>&nbsp;is the lazy GM's solution to this problem: a workbook zine that helps you create a pantheon for your fantasy RPGs, focusing on the bits of the iceberg above the water -- the bits that your players are going to interact with.&nbsp;
</p>
<p>The Pamphlet contains 16 major Divine Archetypes for you to choose from, each with customisation tables to give the gods more character, plus tables and lists to generate gods with multiple divine roles, minor deities, temple features, rituals, and more.&nbsp;Go through the simple step-by-step creation process or just use the book to inspire your own creations. The goal of the&nbsp;<em>Pamphlet</em>&nbsp;is to make creating fantasy religions simple and enjoyable.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NTQ4My82MDM5NTY0LmpwZw==/original/7pISvx.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NTQ4My82MDM5NTM1LmpwZw==/original/08FhJ9.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NTQ4My82MDM5NTM0LmpwZw==/original/hmR3pw.jpg]]
<h3 class="text-center">The Partisan is an in-development playbook by Lawson Coleman for&nbsp;<a href="https://austin-ramsay.itch.io/beamsaber">Beam Saber</a> by&nbsp;Austin Ramsay, Focused on the relationship between a Pilot and Their own direct superior: The Handler.&nbsp;</h3>
<p>Partisans live and die on the battlefield for their handlers, who in return provide them with resources, information, and institutional power.&nbsp; Many Partisans are prideful of their station, considering themselves proud servants of a greater cause that benefits them, while others resent the ways in which their conditions push them to the edge.&nbsp;</p>
<p>This 31 Page Playbook Contains:&nbsp;</p>
<ul><li>8 Playbook Abilities, with tips/advice for both the GM &amp; the player for each&nbsp;</li><li>5 Pieces of Pilot Gear</li><li>4 Pieces of Vehicle Gear</li><li>Example allies, rivals, and handlers</li><li>Example tables for handler-issued side objectives and orders</li><li>Advice for running the handler, including ways to play GMless handlers</li><li>"The Scrapyard", a growing collection of cut &amp; experimental content for the Partisan(currently contains 2 abilities,3 playbook-specific downtime activities, 3 Pieces of pilot gear&nbsp;and 4 Zenith Abilities, a set of unique late-game specialization options)</li></ul>
<p><em>The Partisan is a&nbsp;<a href="https://austin-ramsay.itch.io/beamsaber/devlog/174666/the-beam-saber-supply-drop-licence">Beam Saber Supply Drop</a>. This material is an unofficial supplement and is not affiliated with Austin Ramsay.</em><em></em><br></p>
<p><br></p>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODc2NjE1LzUxMTA3MjgucG5n/original/TQDivV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODc2NjE1LzUwNzIwMzIucG5n/original/utwT%2Bj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODc2NjE1LzUwNzE4NjYucG5n/original/W9980L.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODc2NjE1LzUxMjcwNTAucG5n/original/wRI%2BGZ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODc2NjE1LzUxMjczNzMucG5n/original/1nUZFs.png]]
<h1><em>Adventure and Pop-Up Zine!</em></h1>
<p>This short adventure is a break from dungeon crawling, and focuses on NPCs and mystery-solving. Players should be able to play through it in a short session.&nbsp;</p>
<p>It's made for the rules-light game <a href="https://emielboven.itch.io/durf" target="_blank">DURF</a>, and is easily adaptable to any OSR-ish game.&nbsp;</p>
<p>
</p>
<h4 class="custom-h4">PHYSICAL COPIES</h4>
<p>Physical copies (includes PDFs) can be acquired here&nbsp;<a href="https://thelostbay.gumroad.com/l/theperpetualbroth" rel="nofollow noopener" referrerpolicy="origin">https://thelostbay.gumroad.com/l/theperpetualbroth</a></p>
<p>Shipping worldwide</p>
<h4 class="custom-h4">BUILD THE POP-UP</h4>
<p>The Pop-Up is very simple to assemble, all you need is a ruler, scissors, and glue.&nbsp;Print the Pop-Up elements, cut, glue, fold, and play. Open the zine on the game table and amaze the players!</p>
<p>The Pop-Up inn faces the players, providing a cool a 3D model of the setting. The zine spread contains all the info the DM needs to run the adventure.</p>
<p><span></span></p>
<h4>STORY</h4>
<p><span></span></p>
<p><em>Somewhere in the countryside stands The Perpetual Broth. The inn prides itself on its namesake, a soup that has been cooking for almost twenty years. The soup is constantly topped up with new ingredients, giving it its signature taste. But yesterday evening Julie, the kitchen help, disappeared, and this morning a guest woke up with his skin rose-scented and covered in thorns. Milo the innkeeper asks the adventurers to find out what is going on.</em></p>
<p><span style="color: inherit; font-size: inherit"></span></p>
<h4>WHAT'S INSIDE?</h4>
<p>- Adventure sheet (NPCs, map, micro setting, random tables)</p>
<p>- Pop-Up elements
</p>
<p>- Instructions</p>
<h4>WHO MADE IT?</h4>
<p>Concept &amp; construction 	<strong>IKO</strong>, <a href="https://the-lost-bay.itch.io/" target="_blank">the-lost-bay.itch.io</a></p>
<p>Text, layout &amp; map <strong>Emiel Boven</strong>, <a href="https://emielboven.itch.io/" target="_blank">emielboven.itch.io</a></p>
<p>Art				<strong>Bordercholly</strong>, <a href="https://www.bordercholly.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">bordercholly.com</a></p>
<p>Editing<span class="" style="">	</span><span class="" style="">	</span><span class="" style="">	</span><span class="" style="">	</span> <strong>Cleo Madeleine</strong>, <a href="https://twitter.com/quidtumcicero" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@quidtumcicero</a>
</p>
<p>Photos &amp; Additional Editing: Laura Elle</p>
<p><em>Created for the </em><strong><a href="https://itch.io/jam/scissors-and-glue-ttrpg-jam" target="_blank">Scissors and Glue TTRPG jam</a></strong><em> and the </em><strong><a href="https://itch.io/jam/durfjam/entries" target="_blank">DURF Jam</a></strong><em>, November 2021.</em><br></p>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI4NTQyNy83NTA4OTEzLmpwZw==/original/CZmKfc.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI4NTQyNy83NTA5MzYyLmdpZg==/original/nn6LuI.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI4NTQyNy83NTA4OTExLmpwZw==/original/7Nv%2FK2.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI4NTQyNy83NTA4OTEwLmpwZw==/original/uqbleI.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI4NTQyNy83NTA4OTEyLmpwZw==/original/bfvaJl.jpg]]
<h4>WARNING: This book involves significant body horror&nbsp;elements and may not be suitable for players sensitive to such&nbsp;content.</h4>
<p><em>Once, this town only whispered about the sordid histories of its rare newcomers and the abundant setbacks of its long-time residents. But a brilliant flash in the sky a few nights back has brought new topics to the hushed tones of worried recluses and nosy neighbors: odd shapes along the treeline, mysterious lights deeper within, and notes pleasant to the ear dancing on the wind. You’ve heard more enticing rumors, though, those of priceless gems unlike any other, ripe for the taking, and your thoughts can’t escape the tinge of colors you’ve never witnessed before, strange but welcoming, emanating unseen from the woods that were once your childhood playground…</em><strong style=""></strong><em></em><br></p>
<p><em><strong>The Pried Eye</strong></em>&nbsp;is a psychedelic one-shot adventure for Jesse Ross’s&nbsp;<em><a href="https://trophyrpg.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Trophy Dark</a></em>&nbsp;in which the sudden appearance of something&nbsp;spectacular and indescribable&nbsp;in the backwoods of rural 20th-century America will lure the players into hunting for otherworldly gems, hoping to seize their independence and break free from their small town’s lack of opportunity.<strong> A tense and eerie descent into body horror, cosmic weirdness, and ego murder</strong><strong>,&nbsp;</strong><strong>this book contains all of the rules you need</strong><strong>&nbsp;to play</strong>, including all-new character creation options.</p>
<hr>
<blockquote><em></em><em>Truly amazing and beautifully presented. Possibly <strong>my favorite TTRPG book</strong> to just look at or read!<br></em>—<strong>Ewan</strong>, fan</blockquote>
<blockquote><em></em><em>I picked this up and ran it with my D&amp;D group. None of us had played the&nbsp;</em>Trophy Dark<em>&nbsp;system, and&nbsp;<strong>we had a blast</strong>. Last night will go down as&nbsp;<strong>one of my top RPG experiences</strong>, especially as a GM. The players picked up on the themes of the incursion and went with it. Some really good evocative (and pretty gross) imagery. This was&nbsp;<strong>awesome and inspiring</strong>.<br></em>—<strong>Jesse S.</strong>, early adopter</blockquote>
<hr>
<p>
</p>
<h3 class="text-center">Theme: Communion</h3>
<p>The book is 28 pages long and has a lot of&nbsp;evocative artwork. &nbsp;It includes:</p>
<ul><li>4 new occupations and 6 new backgrounds, drives, and rituals for character creation</li><li>15 moments</li><li>10 conditions</li></ul>
<p>You can also use the new character creation options from this adventure in the character keepers for <a href="https://www.arktosaur.us/keepers/trophydark" target="_blank" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin"><em>Trophy Dark</em></a> and <a href="https://www.arktosaur.us/keepers/trophygold" target="_blank" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin"><em>Trophy Gold</em></a>&nbsp;by&nbsp;Drew/Arktosaur for easier online play!</p>
<p>With purchase, you get the following fully bookmarked PDFs:
</p>
<ul><li>Single-page layout
</li><li>Facing-spread layout
</li><li>Printer-friendly, black-and-white, art-less version
</li><li>A separate file for character sheets
</li></ul>
<p><strong>Or get a print-on-demand hardcopy <a href="https://www.drivethrurpg.com/product/353200/The-Pried-Eye-A-Trophy-Dark-Incursion" target="_blank" rel="nofollow noopener" referrerpolicy="origin">through this link</a>!</strong></p>
<hr>
<p>
</p>
<p>A limited number of free community copies are available below for those who are currently struggling. <strong>Every purchase of&nbsp;<em>The Pried Eye</em> will unlock one additional free community copy for another user.&nbsp;</strong>If you are feeling particularly generous, you can increase your purchase price, and for every $9.00 above the default price you pay, another free community copy will be unlocked!<br></p>
<p></p>
<hr>
<p>If you want a subtler, more contemplative one-shot adventure, check out my other&nbsp;<em>Trophy Dark</em> incursion <strong><em><a href="https://atypicalfaux.itch.io/penumbra">Penumbra</a></em></strong>!</p>
<iframe frameborder="0" src="https://itch.io/embed/1094174?bg_color=000000&amp;fg_color=5cceff&amp;link_color=fad285&amp;border_color=5cceff" width="552" height="167" style="color: inherit; font-size: inherit"></iframe>
<p></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTkwMDY5LzU4NDQ2ODMucG5n/original/vHbh7b.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTkwMDY5LzU4MTQyOTcucG5n/original/9o2PmQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTkwMDY5LzU4MTQyOTgucG5n/original/T8kPP6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTkwMDY5LzU4MTQyOTkucG5n/original/fet5ui.png]]
<h4>Included in the handcrafted Collected Edition of DURF, available <a href="https://lfosr.com/product/durf-collected-edition/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">here</a>!</h4>
<p>A forbidden temple hidden in the sewers, unbeknown&nbsp;to the&nbsp;faithful&nbsp;above. <br></p>
<p>This 8-page dungeon module is designed for use&nbsp;with the&nbsp;early&nbsp;versions&nbsp;of that&nbsp;one famous dungeon game but can be used with any of the games inspired by it.</p>
<p>Recommended for levels 1-3.</p>
<h3><br><strong>DURF Edition Included!<br></strong></h3>
<p>A remastered version of this adventure, designed for use with <a href="https://emielboven.itch.io/durf" target="_blank">DURF</a>, is now included. This version includes: </p>
<ul><li>New art.</li><li>The adventure hooks written for KNOCK! #2.</li><li>&nbsp;New random encounter table.</li><li>And a bunch of small tweaks to the dungeon descriptions!</li></ul>
<p>This version is now also available in Italian, thanks to <strong>Francesco Catenacci</strong>!<br></p>
<p><img src="https://img.itch.zone/aW1nLzc4MTgyOTEucG5n/original/BsjcaY.png" loading="lazy"><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMTgwNy81NzAyMjYxLnBuZw==/original/LxoVAw.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMTgwNy83MTU0OTQ4LnBuZw==/original/ywzHi6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMTgwNy83MTU0OTQ5LnBuZw==/original/sfneYI.png]]
<p>Embark on a journey of discovery and inspiration in The Search - a story-driven puzzle-adventure set in a mysterious world where art comes to life!<br><br>In an unknown world, you'll search for clues about the nature of this place, as well as your own past. Guided only by the letters of a mysterious stranger, you'll find that this universe works differently from our own. It's a world in which obstacles can be overcome by your own creativity - and where art comes to life to create tears in the fabric of reality.<br><br>Who wrote the letters that guide you? What is the nature of this surreal, enchanted universe? And why were you chosen to take this journey?</p>
<p>Key features:<br>- A short, story-driven puzzle-adventure<br>- Uncover clues and solve inventive puzzles<br>- Gorgeous 3D artwork and a haunting soundtrack<br>- Voice acting from Cissy Jones (Firewatch, Life Is Strange) <br></p><p>Language options include:<br>English (Menus, Voice Over, and Subtitles)<br>Russian (Menus &amp; Subtitles)<br>German (Menus &amp; Subtitles)<br>Italian (Menus &amp; Subtitles)<br>Spanish (Menus &amp; Subtitles)<br>French (Menus &amp; Subtitles)<br>Portuguese (Brazil) (Menus &amp; Subtitles)<br><br></p>
<hr>
<p><strong>Reviews for The Search</strong></p>
<p><a href="https://jayisgames.com/review/the-search.php" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong>Jay Is Games</strong></a><strong> </strong>- "...as a puzzle game and a solo-venture at that, there is an incredible and impressive amount of love and polish in every moment. I was surprised, repeatedly, by several clever twists and turns...I could easily and gladly exist in The Search's liminality for hours longer, in its lovingly designed and beautifully rendered levels, its gorgeous, thoughtful soundtrack, and curious, otherworldly atmosphere."<br></p>
<p><strong><a href="https://www.doctorsofgaming.com/single-post/2017/04/27/Philosophy-and-Art-in-The-Search-The-Doctors-Review" rel="nofollow noopener" referrerpolicy="origin">Doctor's of Gaming</a> - </strong>"The game is short, about an hour or two. But it was enough to impress me. It knows what it is, and executes that well. Pleasing visuals, good music/sound, an intriguing setting/story and fresh puzzles round out this surprising little gem."</p>
<p><a href="https://www.gameraven.com/reviews/search-creative-point-click-adventure" rel="nofollow noopener" referrerpolicy="origin"><strong>GameRaven</strong></a><strong> - </strong>“Big experiences can sometimes come in small packages and the time 
that you spend with The Search will be one that you will reflect on for 
days after you step away from it.”<br></p>
<hr>
<p><span></span></p>
<p><a href="https://www.jasongodbey.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">The Search Website</a><br><a href="https://twitter.com/TheSearch_Game" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter</a><br><a href="https://www.facebook.com/thesearchgame/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Facebook</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/AYCP32Ph4Cw" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI5NDI1LzU5NDgzMS5qcGc=/original/XADfTM.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5NDI1LzU5NDgyOS5qcGc=/original/VTH4He.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5NDI1LzU5NDgzMC5qcGc=/original/%2BPZfek.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5NDI1LzU5NDgzNC5qcGc=/original/ufc%2FJ2.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5NDI1LzU5NDgzMy5qcGc=/original/VIrFy4.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5NDI1LzU5NDgzMi5qcGc=/original/9S%2FjI2.jpg]]
<p>It's London season and you're in for a ball!&nbsp;<em>The Season&nbsp;</em>is a GM-less RPG about elevating your status and keeping up your reputation during the fabled Regency Era social season.&nbsp;</p>
<p>Credits:&nbsp;</p>
<ul><li>Writing and Game Design: Rue Dickey (@ilananight13)</li><li>Thumbnail/Cover Design: Rina (@rina996)</li></ul>
<p>Update: Added a character sheet add-on for people who want to have a set character sheet (optional).</p>

[img width=500 [https://img.itch.zone/aW1nLzQwNDk1MzMuanBn/original/9bje4D.jpg]]
<p>The villagers of Stormlook are at their cliff’s edge. One of their own went missing. Another turned up dead. Their fish stocks are dwindling, and they’re hungry to blame one group: the selkie, a people who can transform between human and seal.
</p>
<p>Stormlook's leader asks for your help to traverse the Captiva Icemark, a perilous ice shelf, and&nbsp;establish contact with&nbsp;the selkie. Will you swear upon iron to complete this journey and bring peace between both communities, or will you succumb to the icy depths? Play to find out.</p>
<p><strong>Module features</strong><br></p>
<ul><li>A 2-4 hour one-shot for Shawn Tomkin's&nbsp;<em><a href="https://shawn-tomkin.itch.io/ironsworn" target="_blank">Ironsworn</a></em>, suitable for solo, co-op, and guided play</li><li>A new delve site, the Captiva Icemark, complete with a denizens matrix and suggested encounters</li><li>2 new&nbsp;<em>Ironsworn</em> foes: the selkie and walrus</li><li>1 new artifact: Phelphia's pelt</li><li>6 major NPCs and 6 locations between 2 settlements<br>
</li><li>1 iron vow that will lead your hero through a perilous journey and inter-community tensions</li><li>Optional&nbsp;<em><a href="https://shawn-tomkin.itch.io/ironsworn-delve" target="_blank">Ironsworn: Delve</a></em> support with guidelines for non-<em>Delve</em> play</li></ul>
<p><strong>Content notes</strong>
</p>
<p>This text contains the following themes: violence, natural disasters, drowning, starvation, murder, kidnapping, war, familial conflict, violence against animals, the undead, characters exoticizing other cultures, and potentially mob violence. Of note, the story revolves around fantasy xenophobia that can be read as an allegory for anti-indigenous racism or colonialism.
</p>
<p><strong>More information</strong><br></p>
<p>This module was written for the RPG Writer Workshop course "Write Your First Adventure | Fall 2021," as taught by <a href="https://www.storytellingcollective.com/" target="_blank" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">Storytelling Collective</a>.</p>
<p><strong>Photo Credit:</strong> Cover photo by <a href="https://unsplash.com/photos/oAeLoen2TFA" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Marc Grove</a> on <a href="https://unsplash.com/" rel="nofollow noopener" referrerpolicy="origin">Unsplash</a><br></p>

[img width=500 [https://img.itch.zone/aW1nLzc1ODczNTAucG5n/original/kg3R2E.png]]
<p>In the far future, humanity has overcome many of its structural and prejudicial shackles. We have spread through the stars to explore and learn, unhindered by many of the mistakes that had plagued our civilizations and institutions for so long.<br><br>Alongside the mighty Astral Marine Corps, Humanity's future is safeguarded by the Colonial Special Operations Executive. The CSOE protects Humankind from disasters of every sort through diplomatic, logistical, and sometimes subversive means. For the most important and trying tasks (such as flash point crises and the assessment of little-understood dangers) the CSOE deploys an Operative, an eminently capable individual trained to handle almost any eventuality. Though few in number, they are the most well-known and lauded portion of the venerable organization.<br><br>The greatest of the CSOE's Operatives is Dame Bryluen Branok. Her face is known from the Qixing Commonwealth to the Ly Aulth Stellar Confederacy, and her name has long been a byword for courage and heroism. She is simultaneously an iconic inspiration to Humanity, and one of the most feared executors of its will.<br><br>When a poorly understood threat strikes a remote research outpost, Bryluen is the prime choice to investigate. Despite decades of experience even she has seen nothing like the foe she encounters, and the aftermath of the attack opens up a bevy of questions. Soon the CSOE charges Bryluen with a task for which she was born: to gather a unique strike team and confront a danger that threatens the very existence of civilization.<br></p>
<p>The Shadow Among the Stars is a full-length novel, and the first in a trilogy. It can be purchased in Kindle and Paperback form here:&nbsp;<a href="https://www.amazon.com/dp/1973442728" rel="nofollow noopener" referrerpolicy="origin">https://www.amazon.com/dp/1973442728</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjY4MjcyLzM2Mjk3MDAucG5n/original/4TGxAp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY4MjcyLzM2Mjk3MDEucG5n/original/jqEZtx.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY4MjcyLzM2Mjk3MDMucG5n/original/iPflIm.png]]
<p>We’re very excited to bring our first game, The Sink Gods, to Itch.io! You play a poor villager who lives in the Sink Valley. When you are evicted from your home and all your belongings are stolen from you, you realize you realize your only hope is the Sink Gods of the Great Basin. Journey to each of their temples, and pass their test to gain vengeance for what you have lost.</p>
<p>Go to&nbsp;<a href="https://littleglyphgames.com/the-sink-gods/" rel="nofollow noopener" referrerpolicy="origin">https://littleglyphgames.com/the-sink-gods/</a>&nbsp;for more information.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/94VnMDh4_a0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODc3MDQyLzQ5MzY2ODQucG5n/original/zTIYUN.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODc3MDQyLzQ5MzY2ODMucG5n/original/vsYOAT.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODc3MDQyLzQ5MzY2ODYucG5n/original/FbtZoH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODc3MDQyLzQ5MzY2ODcucG5n/original/b1ivHQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODc3MDQyLzQ5MzY2ODUucG5n/original/ElpN6O.png]]
<p>Controls:</p>
<p>WASD or Arrow Keys to move</p>
<p>Space- Attract</p>
<p>M- Mute</p>
<p>To explain the game I leave you this poem:</p>
<p>A world of despair <br>There is something wrong <br>This world isn't fair<br>Something can be done<br>We must stay strong<br>Things can change<br>Because all it takes...<br>Is THE SPARK OF ONE<span></span><br></p>
<p>UPDATE : With this new build I suggjest trying windows64 for a better experience</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDgwMzgvMjIzODU5LmdpZg==/original/mDrlqd.gif]]
<p><em>Somewhere in the vast multiverse, there is a post office box. It looks like all post office boxes in all parts of every world, and sits on the corner of any--or possibly every--street. Inside are many levels, inhabited by small spirits whose sole tasks are to ensure that the tiny pieces of every metaphorical puzzle arrive where they are needed before someone needs them. You are one of these spirits. Perhaps someday, you will rise to become a deity.</em></p>
<p>In The Spirit of Small Gifts, as you talk to your friends about the TTRPG games they're playing, you get to be the answer to the question "Is it reasonable that I'd have _____ in my inventory?" A Spirit of Small Gifts drops small, seemingly valueless trinkets&nbsp;in the mail so that the recipient has them in their pockets when they need them.</p>
<p>----</p>
<p>Up front, the goals of this game are these: To get people talking to their friends about their RPGs, foster some creative problem solving, and give you an excuse to put some letters in the mail. The goal of this game is explicitly <strong><em>not </em></strong>to override, pressure, or force anyone running a game playing along with your fiction.&nbsp;</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjQ0MTY3LzUwMzU5NjkucG5n/original/qyS23N.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjQ0MTY3LzUwMzU5NzAucG5n/original/pFFXRl.png]]
<h3 class="text-center">The Starbreaker is an in-development playbook by Lawson Coleman for&nbsp;<a href="https://austin-ramsay.itch.io/beamsaber">Beam Saber</a> by&nbsp;Austin Ramsay, Focused on the use of powerful magic siphoned from something important for all life.</h3>
<p>What does magic look like in a world dominated by war and technology? What lessons do factions learn when their enemies use arcane power to laterally push through the constant arms race of ever-increasing war machines?&nbsp;</p>
<p>Starbreakers are incredibly skilled and dangerous arcanists, whose employers struggle to contain and command their power. They each have their own personal style of Magic, and their loyalties vary greatly, but they all have one thing in common: <em><br></em></p>
<p><strong><em>Their Power is stolen. </em></strong><br></p>
<p>This 19 Page Playbook Contains:&nbsp;
    </p>
<ul><li>10 Playbook Abilities</li><li>4 Pieces of Pilot Gear
</li><li>6 Arcane Abilities, Magical powers that can be hot-swapped during a mission</li><li>Example Gather Information Questions and Beliefs</li><li>Example Allies and Rivals</li><li>A Playbook XP Trigger</li></ul>
<p><em>The Starbreaker is a&nbsp;<a href="https://austin-ramsay.itch.io/beamsaber/devlog/174666/the-beam-saber-supply-drop-licence">Beam Saber Supply Drop</a>. This material is an unofficial supplement and is not affiliated with Austin Ramsay.</em>
    </p>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTE1MjA2LzU2MDIwMDkuanBn/original/R5kuEZ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE1MjA2LzU2MDIwMDEucG5n/original/T1UQvL.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE1MjA2LzU2MDE5NDkucG5n/original/e1YlzS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE1MjA2LzU2MDE5OTMucG5n/original/1dTxaW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE1MjA2LzU2MDE5OTUucG5n/original/2jhKt4.png]]
<p><strong>The Steadfast and the Rebellious&nbsp;</strong>is a tabletop role-playing game and a storytelling game. It is a hack of <a href="https://temporalhiccup.itch.io/reincarnation" target="_blank">REINCARNATION REDUX: Our Requiem</a> by Rae Nedjadi, written for Jammi Jam Jam.</p>
<p>You are all inhabitants of the city, and you have been living in false peace under the rule of the demon king. The last wall, which offered your city limited protection against the demon king, has fallen. Citizens are left with two choices; do everything the tyrant demands, or <strong>resist</strong>. Will we rise victorious against the demon king, or will our resistance be futile? We play to find out.</p>
<p><em>This game is intended to create a quick but rich prologue for characters who rise up against the demon king in a fantasy setting. It is possible to use this game to create a setting and characters for your preferred game about enclosed spaces and giant lizards.</em></p>
<p>To play this game, we will need 1-2 hours, 2-4 players, a deck of playing cards, a conductive space, index cards, writing materials and a copy of this game (digital or printed). One of the player is the <strong>Facilitator</strong>, who has read this document beforehand.</p>
<p>Jess (<a href="https://twitter.com/go_jg" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@go_jg</a>),&nbsp;Kevin (<a href="https://twitter.com/Knit_Nack" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@Knit_Nack</a>), Corvyn (<a href="https://twitter.com/CorvynAppleby" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@CorvynAppleby</a>) &amp; Jordon (<a href="https://twitter.com/MadeOfCartoons" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@MadeOfCartoons</a>) did an actual play of the game:</p>
<div class=""><iframe style="width: 500px; height: 281px" src="https://www.youtube.com/embed/-6HP0wf09SQ" frameborder="0" allowfullscreen=""></iframe></div>

<iframe width="720" height="450" src="https://www.youtube.com/embed/-6HP0wf09SQ" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTExNTM4LzI2NTYzMTcucG5n/original/Sezoiq.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTExNTM4LzI2NTYzMTkucG5n/original/eTuPN2.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTExNTM4LzI2NTYzMjAucG5n/original/qq3f6y.png]]
<p><em>The Stellar Beacon </em>zine has new adventures for the Indie Groundbreaker nominated sci-fi RPG Return to the Stars, and it explores&nbsp;geek pop culture with non-fiction essays.&nbsp; This issue includes:<br></p>
<p><em>One Atom of Justice, One Molecule of Mercy, and the Empire of Unsheathed Knives </em>an original essay by novelist and 2019 Hugo nominee&nbsp;Alexandra Rowland, exploring a new science fiction sub-genre: Hopepunk.</p>
<p><em>Aphrodite on Deck</em><br>A solarpunk-themed scenario for Return to the Stars by designer&nbsp;Beau Jágr Sheldon.</p>
<p><em>Fallen Juggernaut</em><br>Emmett O’Brian brings us a “hard sci-fi” adventure where players explore a mysterious megastructure.</p>
<p><em>Beginning Gamemaster Pep Talk</em><br>Comics writer and illustrator Amy King provides encouragement for new game masters from a new game master.</p>
<p><em>The Stars, My Sandbox</em><br>Non-linear story prompts and encounters for Return to the Stars.</p>
<p>Get your copy today!</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzY0MTEwLzE4MjE0NjcucG5n/original/AK25hP.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzY0MTEwLzE4MjE0NTMucG5n/original/h7KAYU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzY0MTEwLzE4MjE0NTQucG5n/original/7%2BRBBX.png]]
<p>Four months have passed since the battle at Gru’Thiall. The Dreaded have become more powerful and attack more often, taxing the militaries of the Qixing, Humanity, and the T’Hrostag.<br><br></p>
<p>Dread Naught remains the elite vanguard against the growing threat, and a Grand Council is announced to unite the four species of local space against the Dreaded. But after a devastating new attack in T’Hrostag space, the true scale of the Dreaded Threat is laid bare.</p>
<p><br></p>
<p>What is it that stirs among the stars, what is the secret of the capsule from Gru’Thiall, and can Dread Naught hold back the ever increasing tide of monsters that seek to destroy civilization?</p>
<p><br>The Stirring Among The Stars is a full length novel, and the second in a trilogy. This book can be purchased in Kindle or Paperback here:&nbsp;<a href="https://www.amazon.com/dp/B09NKL33WC" rel="nofollow noopener" referrerpolicy="origin">https://www.amazon.com/dp/B09NKL33WC</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMwMjQwOS83NjQ4NDM5LnBuZw==/original/SdBASR.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwMjQwOS83NjQ4NDM4LnBuZw==/original/xN92nW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMwMjQwOS83NjQ4NDM3LnBuZw==/original/UdsqyS.png]]
<p></p>
<p>The Temple of Karthis is a solo dungeon crawling game using cards and dice.</p>
<p>Each turn, the player will roll dice to generate the immediate layout of the dungeon and then draw cards to see what threats are present, if any.</p>
<p>If a threat is determined, the player will then roll a die to see how well he or she did in overcoming the obstacle.</p>
<p>However, treasures are also likely to appear instead of, or with, a threat.</p>
<p>The game is completed when the prized relic, the Jeweled Crown of Karthis, is found.</p>
<p>At which time, the explorer will add their collected treasures and note the dungeon level they completed the game on.</p>
<p>The game can be replayed as often as desired, with the player gaining a benefit for how far they have ventured in previous journeys.</p>
<p>As such, the game lends itself to a ‘beat the high score’ type of game, with the player attempting to reach a higher score with each play through.</p>
<p>(Cover art was created using pieces of public domain art.)</p>
<p>Update: Cards have been added to the files.<br><br>The 34 cards replace the playing cards.<br>Both the Spades and the Clubs suits are represented by Skulls to simplify things a bit.<br>The two crowns replace the Joker cards. You still need to collect both to find the Crown.<br>And there is only one enemy card, since you'll only ever use just one in a game.<br>This will also eliminate the extra step of randomly drawing an enemy card.<br><br>All art was taken from Public Domain images and edited extensively.<br><br>I hope the cards help give the game a bit more thematic flavor.<br><br>Update 2: I added separate image files for the Graph Sheets and the Tiles Chart.<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NzM2Mi82MDUxMDY2LnBuZw==/original/%2BXbH6C.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NzM2Mi82MDUwOTkzLnBuZw==/original/4%2B9YuC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NzM2Mi82MDUwOTk0LnBuZw==/original/bxAxXQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1NzM2Mi82MDcwNjIzLnBuZw==/original/D3wax5.png]]
<p>A sandbox campaign for the&nbsp;<strong>Mothership Sci-Fi Horror RPG</strong>&nbsp;or your favorite Sci-Fi RPG system originally made for the&nbsp;<strong><a href="https://itch.io/b/706/mothership-3rd-party-mega-bundle" target="_blank">Mothership 3rd Party Mega Bundle</a></strong>.</p>
<p><img src="https://img.itch.zone/aW1nLzYyNjIzNzUucG5n/original/79XtRB.png" loading="lazy"><br></p>
<p>This pamphlet
supplement ties twelve 3rd party Mothership adventures together for convenient
use in sandbox campaign play. It features:<br></p>
<ul><li>A gorgeous <strong>pixel art map</strong>     keyed with all included adventure locations plus extra points of interest     to fill in with your own material.</li><li><strong>Hooks, rumors, and clues</strong> that     create a robust web of connections between adventures and reward     exploration.</li><li>A <strong>job table</strong> modified by the     party's local <strong>reputation</strong>. Pursue notoriety or credibility to gain     lucrative pirate or corporate contracts.</li><li><strong>Warden advice</strong> for running a     sandbox campaign in Mothership.</li></ul>
<p><img src="https://img.itch.zone/aW1nLzYyNjI3MDQucG5n/original/i%2F8jjQ.png" loading="lazy"><br></p>
<p>This sandbox campaign includes locations from the following adventures:<br><a href="https://ashen-victor.itch.io/alcor-station" target="_blank">Alcor Station</a><br><a href="https://kharrak.itch.io/bloom" target="_blank" style="font-size: inherit">Bloom<br></a><a href="https://skulldixon.itch.io/diminishing-returns" target="_blank" style="font-size: inherit">Diminishing Returns<br></a><a href="https://ian-yusem.itch.io/dinoplex-cataclysm" target="_blank" style="font-size: inherit">Dinoplex: Cataclysm<br></a><a href="https://mattumland.itch.io/echoes-in-the-graveyard" target="_blank" style="font-size: inherit">Echoes in the Graveyard<br></a><a href="https://silverhooves.itch.io/green-tomb" target="_blank" style="font-size: inherit">Green Tomb<br></a><a href="https://ian-yusem.itch.io/moonbase-blues" target="_blank" style="font-size: inherit">Moonbase Blues<br></a><a href="https://lonearchivist.itch.io/primeval" target="_blank" style="font-size: inherit">Primeval<br></a><a href="https://shwac.itch.io/0" target="_blank" style="font-size: inherit">The Black Heart of Paradise<br></a><a href="https://skulldixon.itch.io/the-black-pyramid" target="_blank" style="font-size: inherit">The Black Pyramid<br></a><a href="https://mvmaxv.itch.io/the-last-nebula" target="_blank" style="font-size: inherit">The Last Nebula<br></a><a href="https://technoskald.itch.io/welcome-to-erf" target="_blank" style="font-size: inherit">Welcome to ERF</a></p>
<p>Written by <strong>Ian Yusem</strong><br>Layout by <strong>Eric K.
Hill</strong><br>Art by <a href="https://twitter.com/RibstonP" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong>Ribston Pippin</strong></a></p>
<p><img src="https://img.itch.zone/aW1nLzYyNjIzMzQucG5n/original/vhMSJs.png" loading="lazy"><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODMzMjk3LzQ2OTUxNDcucG5n/original/71AEO5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODMzMjk3LzQ3MDc3OTIuanBn/original/ah62W9.jpg]]
<p>One of your parent’s suffered from a mysterious ailment where they would uncontrollably become detached from time. They ultimately succumbed to the dangers of time travel, and died tragically, but not before having a child, you. Now scientific progress has demystified the rare disease known as Solutus Tempus, and a cure is available. Through research, it is also now possible for those suffering from the illness to take small items with them on jumps.<br></p>
<p>And so you hatched a plan to give your parents an impossible gift, a life lived together in the same direction. You’ve infected yourself with Solutus Tempus, and have 4 doses of the cure. You’ll fall through time hoping to land in the same moment as your time afflicted parent, cure them, and return safely to your present to cure yourself.
</p>
<p>This is your story.
</p>
<p>The Time Traveler’s Child is a playbook for The Time Traveler’s Life by William Lentz that adds a third player to the game. This player will take the role of the child of the Time Traveler and their Significant Other. To play you will need 3 players,&nbsp;a copy of The Time Traveler’s Life (<a href="https://gamenomicon.itch.io/the-time-travelers-life"><span class=""></span></a><a href="https://gamenomicon.itch.io/the-time-travelers-life">https://gamenomicon.itch.io/the-time-travelers-life</a>), a d20, and three d6s (one for each player).<br></p>
<p>This game was an entry in the Finish your Damn RPG jam&nbsp;<a href="https://itch.io/jam/finish-your-damn-rpg-jam">https://itch.io/jam/finish-your-damn-rpg-jam</a>&nbsp;and the One Page RPG Hackathon 2021 jam&nbsp;<a href="https://itch.io/jam/one-page-hack-a-thon-2021">https://itch.io/jam/one-page-hack-a-thon-2021</a>.</p>
<p><strong>SHAMELESS PLUG: If you are a fan of these kinds of games, you'll love what I&nbsp;have in store for season 2 of Instadeath Survivors Support Group. Subscribe now so you don't miss the awesome!&nbsp;Listen to the&nbsp;<a href="https://anchor.fm/instadeath" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Podcast</a>. Watch on&nbsp;<a href="https://www.youtube.com/channel/UCwTrrTuIv-EcWMhvuEJSPzQ" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Youtube</a>.</strong><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/sX9C1N_8jUw" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMxMDc1NS83NjI3MTc0LnBuZw==/original/8uLFIs.png]]
<p>A long time ago the world was ruled by a powerful evil force called&nbsp;<strong>"The Void"</strong>. One day twelve heroes came together and against all odds they were victorious. The void started to fade and the twelve heroes made their promise to the people, they will continue their mission until no signs of that evil remain.&nbsp;<strong>The Order of XII was born</strong>.</p>
<p><br>Now many years later The Order continue with that oath, fighting creatures born from that evil. And so,&nbsp;<strong>Eleven</strong>&nbsp;arrives to his destination. The distant region of&nbsp;<strong>Kafshir</strong>&nbsp;has been under the attack of ferocious creatures for weeks and the villages in the region start to vanish across the region.<br><br>Will you help the people? Will you find out the truth behind these attacks?<br><br>Enjoy this narrative puzzle game with the main campaign, learn how the game works and face the challenge mode where all mechanics come together in increasily harder puzzles.<br><strong><br>Features:</strong></p>
<ul><li>Campaign: first entry in our shared universe divided in 5 levels.</li><li>Challenge Mode: Put the knowledge you got from the campaign to the real test. 25 single puzzles, no checkpoints and if you don't have enough face the challenges plus. 5 more levels with increasing difficulty and each one longer than the previous one.</li><li>Extras Mode: Find the secrets hidden in the campaign and unlock exclusive information about the world of The Order of XII.</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDEwNzQzLzI1NDgyMTEuanBn/original/CUdmij.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDEwNzQzLzI1NDgyMDkuanBn/original/%2Fvy10x.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDEwNzQzLzI1NDgyMDcuanBn/original/644eFV.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDEwNzQzLzI1NDgyMTAuanBn/original/JyDDJn.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDEwNzQzLzI1NDgyMDguanBn/original/KSSUyd.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNDEwNzQzLzI1NDgyMTIuanBn/original/mDsRdy.jpg]]
<p>The Truth About Jevallik is a short conversation game inspired by my youth as a Jehovah's Witness. It originally appeared in the 200 Word RPG contest, where it was a finalist in 2019. That version can always be found <a href="https://200wordrpg.github.io/2019/rpg/finalist/2019/10/12/TheTruthaboutJevallikAGameforTwo.html" rel="nofollow noopener" referrerpolicy="origin">here</a> for absolutely free.<br></p>
<p>This version has a nicer layout, a&nbsp;slightly expanded text and a couple pieces of public domain art (by Frederic Church and Thomas Cole).<br></p>
<p><strong>Reviews</strong><br></p>
<p><strong>"</strong>Wonderful improv-theatre piece where a religious doorknocker for a bizarre religion encounters a non-believer determined to shake their faith [...]&nbsp;There is something about the game that is benevolent where a lesser designer could have been cruel, and with the right players this game could be both educational and absolutely hilarious."<br></p>
<p>- Ivan at&nbsp;<a href="http://atgn.com.au/2019-200-word-rpg-challenge-finalists-reviews-and-opinions/" rel="nofollow noopener" referrerpolicy="origin">AGTN</a></p>
<p>"The scenario provides ample framework with *so much* room for building. It’s really whatever you want it to be."</p>
<p>-Anonymous Judge from 200 Word RPG Contest</p>
<p>"The exploration of the relationship between a random citizen and the devout follower of a strange cult is interesting, and maybe uncomfortably real."<br></p>
<p>-Different Anonymous Judge from 200 Word RPG Contest</p>
<p><br></p>
<p><span class=""></span></p>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjEyNzAxLzMyNjI2NzAuanBn/original/jcAryP.jpg]]
<blockquote>It's the late 2000s, school's out for summer, and you're headed out of town to stay with your grandparents in the idyllic Yorkshire village of Wymton-on-Tee. Your summer plans include exploring the countryside, and most importantly enjoying Grampy's famous chocolate chip cookies.... except that you're pretty sure that Vladimir Alucard, Grommy and Grampy's new neighbour is an evil bloodsucking vampire.</blockquote>
<blockquote>And none of the adults will believe you.</blockquote>
<p>The Vampire Next Door is a roleplaying game for 3-7 players, intended for single-session or short form play. It's an homage to classic shows like <em>Scooby Doo</em>, <em>Mona the Vampire</em>, and <em>Gravity Falls</em>, where it's down to the kids to be smarter than the adults and save the day.</p><p>Purchasing this product gives you access to The Vampire Next Door provided in the following formats:<br></p><ul><li>Fully formatted colour PDF, single pages</li><li>Fully formatted colour PDF, spreads</li><li>Plain text ePub</li><li>Plain text HTML</li><li>Plain text .docx</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE2MjU5MC83MDk3NjI3LnBuZw==/original/4l3lhj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE2MjU5MC83MDk3NjI4LnBuZw==/original/xK0xvc.png]]
<p><em>In the center of a peaceful grove of the forest lies a large, perennially red-leafed maple:&nbsp;The Vitacernis. A mouse community thrives in the treetops of the surrounding grove, its citizens friendly if a little eccentric. They revere the grand tree&nbsp;&nbsp;and believe that the sacred red sap it produces has divine curative powers.<br><br>When the red sap stops flowing and the Viscount's son falls ill, brave mice are secretly sent inside the tree to find any sap that remains. Inside they find the ruins of an ancient settlement tangled in its roots, meet a rat necromancer and the results of his experiments, and learn the secrets of the mysterious maple and it's life-giving sap.</em></p>
<p><em>The</em>&nbsp;<em>Vitacernis</em>&nbsp;is a 20-page zine for the <a href="https://mausritter.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Mausritter RPG</a> containing:
</p>
<ul><li>&nbsp;<strong>Ruby</strong>&nbsp;<strong>Grove</strong>&nbsp;- A mouse settlement with 16 locations and 20+ NPCs to meet
</li><li>&nbsp;<strong>4 major NPCs</strong>&nbsp;with backgrounds, behaviors, and open-ended plot hooks
</li><li>An adventure that sees the PCs delving inside the tree, uncovering ancient ruins, meeting its new inhabitants, and discovering the strange tree’s origins
</li><li>A 14 entry bestiary, 2 new spells and conditions, and a 40+ entry treasure table containing some treasure unique to the setting</li><li>A separate cut-out item sheet containing the new conditions, spells, and a selection of 11 detailed items
</li><li>A set of tools for GMs to integrate&nbsp;<strong>Ruby</strong>&nbsp;<strong>Grove</strong>&nbsp;and&nbsp;<em>The</em>&nbsp;<em>Vitacernis</em>&nbsp;into an existing campaign including: a table of both local and hexcrawl-level rumors, a table of location/NPC features to easily plug in alternates from an existing campaign, and aftermath prompts to guide what happens in the world following the adventure</li><li>Inside the Vitacernis Map Illustration by <a href="https://www.patreon.com/evlynmoreau" rel="nofollow noopener" referrerpolicy="origin">Evlyn Moreau<br></a></li></ul>
<p>Print copies available at <a href="https://www.exaltedfuneral.com/products/the-vitacernis-pdf" rel="nofollow noopener" referrerpolicy="origin">Exalted Funeral</a></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzU4ODYzNTMucG5n/original/MK2R9m.png" loading="lazy"><br></p>
<p><em></em><em>The Vitacernis</em>&nbsp;is an independent production by Brian Stauffer and is not affiliated with Losing Games. It is published under the Mausritter Third Party Licence.<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAzMDMwOS81ODc4MjM3LnBuZw==/original/b16tCi.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzMDMwOS81ODc4Mjk0LnBuZw==/original/Ei0LPY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzMDMwOS81ODg2MTMwLmpwZw==/original/ROxV%2BJ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzMDMwOS81ODg2MDI4LmpwZw==/original/T2JmJf.jpg]]
<p>The W.A.R Book is a fan made supplement for Masks: A New Generation providing three new Playbooks for players to use at their table. The W.A.R Book also provides tools to use these Playbooks in conjunction with The Joined Playbook, made by Magpie games.</p>
<p><strong>The Witch</strong> <br></p>
<p>A hero that has tapped into powerful natural currents and elements of the world, The Witch has had dark truths revealed to them for this price of power. Can you navigate the ladder of power whilst avoiding the dangers the climb risks?</p>
<p>The Witch has themes and inspirations from H.P Lovecraft, Dr. Who and Isaac Asimov while its mechanics take after  The Sailor Scouts, Sora from Kingdom Hearts, the Crest Wielders of Fire Emblem: Three Houses and even Tony Tony Chopper from One Piece with powerful Transformations and moves inspired by classic Table Top spells.<br></p>
<p><strong>The Ace</strong></p>
<p>Some might call you a muscle head, a brute or even a bully what with your eagerness to tussle and fight but they don't really get it. You've never been good with words, you've only been able to express yourself through actions and sometimes those actions are a knuckle sandwich. But it might just be a silver lining now that you're in the hero business because a lot of people need a punch or two, least of all your Adversary.&nbsp;</p>
<p>The Ace is based primarily on the drama and themes of Shonen Manga, specifically the protagonist of such and the various rivals they hold throughout their various series such as Ichigo and Byakuya from Bleach, Naruto and Sasuke from Naruto and Goku and classic rival Vegeta from Dragon Ball. <br></p>
<p><strong>The Ronin</strong><br></p>
<p>You were a protege at one point, or something approaching it, until disaster struck. Something happened to your would-be mentor, or they simply no longer required your services and you found yourself on your own. Society doesn't look kindly on those tossed aside or unable to help those who were offering their help in the first place, The Ronin now only really able to rely on their own talents, their team and a whole lot of luck. <br></p>
<p>The Ronin's themes center around abandonment and stigmatization on a social level as well as self reliance and found family. As well, The Ronin deals with luck and the fickleness of fortune. The Ronin is inspired by famous Ronin of media such as Mugen from Samurai Champloo, Miyamoto Usagi from the classic comic Usagi Yojimbo, Ogami Itto from Lone Wolf and Cub and even the futuristic Spike Spiegel from Cowboy Bepop. <br></p>

[img width=500 [https://img.itch.zone/aW1nLzYwMTI5MjkuanBn/original/lH%2F4Un.jpg]]
<p>A one page&nbsp;GM-less roleplaying game of suspense for 1 or more players.<br></p>
<p><strong>The Waiting</strong>&nbsp;is inspired by the anxiety caused by waiting for the unknown.</p>
<p>In <strong>The Waiting</strong> you play as a character in a setting where it hasn’t happened yet. It is definitely going to happen, but no one knows when it will happen. Until it happens, there is only <strong>The Waiting</strong>.</p>
<p>What are <em><strong>you</strong></em> waiting for?</p>
<p>Files included with this download:</p>
<ul><li>The Waiting&nbsp;PDF (Printer Friendly)</li><li>The Waiting&nbsp;rich and plain text files (Screen Reader Ready)</li><li>TTRPG Safety Toolkit Guide PDF by&nbsp;Kienna Shaw and Lauren Bryant-Monk.</li></ul>
<p><br></p>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODEyODI3LzQ1NTg2MTMucG5n/original/i%2BwHIQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODEyODI3LzQ1NTg2MTQucG5n/original/nYTZL1.png]]
<p>« Historian, Soldier, Linguist, Chemist… you are a specialist. And you are desperate.</p>
<p>Welcome to Clockwork Incoporated.. You didn't forward us you curriculum but we know about you... »
</p>
<p><em>The Warehouse </em>is a short TTRPG game where you will play highly capable and desperate people. The characters are employed by Clockwork Inc. and sent on extremely dangerous missions to Secure, Contain and Protect chaotic artefacts, places and beings!<br>An interdimensional music box in a preschool building, an icecream truck in the Tube, a deadly clearing in Central Park... They will have to understand what's happening, secure the area and make sure their employer can transport everything to their warehouse. Yes, even the clearing. Because the warehouse has no limits…</p>

[img width=500 [https://img.itch.zone/aW1nLzgyOTgwOTEucG5n/original/gXmOZC.png]]
<h2>The Wellspring is an in-development playbook by Lawson Coleman for&nbsp;<a href="https://austin-ramsay.itch.io/beamsaber">Beam Saber</a> by&nbsp;Austin Ramsay, Focused the exploration of character relationships using plant magic and the mechanics of Beam Saber.</h2>
<p>In the Face of Endless war and suffering, and in conflict with constantly escalating technology to fuel it, a new sort of magic has arisen. Giant, powerful plants capable of providing for, protecting, and healing massive populations have risen in places where the marginalized suffer the most. <br></p>
<p>A Wellspring is someone who is connected to, and can control these plants in some way. What they use this great power for is up to them, once granted. <br></p>
<p>This 14 Page Playbook Contains:&nbsp;         </p>
<ul><li>10 Playbook Abilities
</li><li>4 Pieces of Pilot Gear 
</li><li>4 Pieces of Vehicle Gear</li><li>Example Gather Information Questions and Beliefs
</li><li>Example Allies and Rivals
</li><li>A Playbook XP Trigger
</li></ul>
<p><em>The Wellspring is a&nbsp;<a href="https://austin-ramsay.itch.io/beamsaber/devlog/174666/the-beam-saber-supply-drop-licence">Beam Saber Supply Drop</a>. This material is an unofficial supplement and is not affiliated with Austin Ramsay.</em>     
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTE1NDM2LzU4MzI2ODkuanBn/original/3poFcX.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE1NDM2LzU4MzI2NzkucG5n/original/CTzJ6r.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE1NDM2LzU4MzI2NjkucG5n/original/loG16V.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE1NDM2LzU4MzI3MDkucG5n/original/n4wbfi.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTE1NDM2LzU4MzI3MTQucG5n/original/QV27UH.png]]
<p>Robert Hill wakes up in a Mental Health facility and suffers from severe memory loss. Follow the facility’s strict daily routine, explore his dreams and help him recall his memories.</p>
<p>The White Door is a new point-and-click adventure developed by the creators of the Cube Escape &amp; Rusty Lake series.</p>
<p><strong>Features:</strong><br><br>■ Pick-up-and-play<br>Easy to start but hard to put down<br><br>■ Interactive storyline<br>Follow a daily routine and recollect memories in a playful way, filled with brain teasers and riddles</p>
<p>■ A unique Rusty Lake split-screen adventure<br>Experience Robert Hill's stay in Rusty Lake's Mental Health facility with an innovative split-screen gameplay</p>
<p>■ Absorbing atmosphere<br>Each day in the facility has its own atmosphere, suspense and a variety of unexpected and surrealistic events</p>
<p>■ Immersive and haunting soundtrack<br>Atmospheric theme songs composed by Victor Butzelaar</p>
<p>■ Special achievements<br>The White Door has more secrets to unravel<br><strong><br>Important: if you are a Mac Catalina user, there is a chance the file doesn't work. Please contact us at support [at] rustylake.com if you experience any problem.</strong><br>
</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/kSlL2OMxaWs" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTQzODEzLzI4MzUzNjUucG5n/original/oebGRY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQzODEzLzI4MzUzNjkucG5n/original/ccrsX5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQzODEzLzI4MzUzNjYucG5n/original/7KxumR.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQzODEzLzI4MzU1MTYucG5n/original/brHSSk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQzODEzLzI4MzUzNjcucG5n/original/Un16iz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQzODEzLzI4MzUzNzQucG5n/original/YRO5ps.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQzODEzLzI4MzUzNjgucG5n/original/%2FGUmhA.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTQzODEzLzI4MzUzNzMucG5n/original/ls345v.png]]
<p>It is the beginning of Spring in the small village of Dunfel. <br></p>
<p>You are Vyler, a young man that's lived in these parts all your life. &nbsp;&nbsp;&nbsp;&nbsp;<br></p>
<p>You've been learning from nature and have stumbled upon some bit of magic here and there, but you've never had any formal training. Fashioning yourself out to be a druid, or at least what you think one should be like, based on what you've read, you feel a closeness to the earth.&nbsp;&nbsp;&nbsp;&nbsp; <br></p>
<p>On the first full moon of Spring, you were visited by a woman, or rather her spirit, as she came to you using great powers you had never seen before. You are awestruck, seeing her appear out of the air, with her eyes glowing like embers.&nbsp;&nbsp;&nbsp;&nbsp; <br></p>
<p>She motions for you to come sit next to her, as she formally greets you. Calling herself Eraina, she tells you that she is in need of someone worthy enough to be her apprentice. Looking through all of the region, you were the only person she felt would qualify for what she deemed an important role. You would be her apprentice, if you chose to accept the offer. Agreeing, you set out the next day, following the path in the nearby woods that Eraina had directed you to.</p>
<p>Thus begins your journey to meet the mystic Eraina and find your calling.</p>
<p>The Winding Journey is a game made for the <a href="https://itch.io/jam/carta-jam">Carta jam</a>.<br>For it, you will need-<br></p>
<p></p>
<p>A standard deck of playing cards, with two jokers.<br>Two six-sided dice.<br>A marker, or token, to track your movement.<br>A journal, or some paper, to write on.<br>Enough room to lay out a 4x6 grid of cards.<br>
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAyMDM3Mi81ODE2MDg1LnBuZw==/original/%2BwHoxn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAyMDM3Mi81ODE2MDQ4LnBuZw==/original/6wQ%2Bp2.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAyMDM3Mi81ODE2MDUwLnBuZw==/original/V6s5fV.png]]
<h6><img src="https://img.itch.zone/aW1nLzgxMDk5MDEucG5n/original/iZOuH8.png" loading="lazy"></h6>
<p class="text-center">The Wishing Stone is a point &amp; click puzzle adventure game with challenging puzzles. It's also a mystery visual novel with a touching family story. Different choices and what you do while exploring/solving puzzles can lead you to different endings.&nbsp;</p>
<p><br></p>
<p><strong><img src="https://img.itch.zone/aW1nLzgxMDk5MDQucG5n/original/IB3NlY.png" loading="lazy"></strong></p>
<p class="text-center">Ailsa unexpectedly receives a wishing stone from a suspicious witch. According to the witch, the wishing stone could grant her 3 wishes, but she must make the first one before midnight. Unfortunately a simple wish leads to unexpected developments.</p>
<p class="text-center">&nbsp;Nothing is what it seems and Ailsa soon realizes there are inconsistencies and lost pieces&nbsp; in her memory and the world around her slowly derails away from the reality. Is she in a bad dream? How can she get back to her normal life?<br></p>
<p class="text-center">Welcome to Ailsa's adventure as she goes on a journey to stay away from troubles, find out the truth and get her lost memory and normality back.&nbsp;</p>
<p class="text-center">You will guide her to explore, collect items, solve puzzles and make choices. She might find the truth or she might sink into the darkness. Her fate depends on you!</p>
<p><br></p>
<p><strong><img src="https://img.itch.zone/aW1nLzgxMDk5MTIucG5n/original/6oYyyp.png" loading="lazy"></strong>
</p>
<p class="text-center"><span style="color: inherit; font-size: inherit">Point and click puzzle adventure with&nbsp;interesting and challenging puzzles&nbsp;.</span></p>
<p class="text-center"><span style="color: inherit; font-size: inherit">An original story with twists and turns in visual novel style with 120,000 words.&nbsp;&nbsp;</span></p>
<p class="text-center"><span style="color: inherit; font-size: inherit">Diaries/ letters to read and lots of details&nbsp;to explore in the environment.&nbsp; Learn more about&nbsp;the characters and the world little by little through exploration.&nbsp;</span></p>
<p class="text-center"><span style="color: inherit; font-size: inherit">&nbsp;Choices to make and 7 different endings to reach. There's also a special chapter after reaching one of the true ends.</span></p>
<p></p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzgxMDk5NjcucG5n/original/G90%2FrL.png" loading="lazy"><br></p>
<p class="text-center">We have put hints in the game in puzzle interface, here's also&nbsp;a link to the walk-through if you ever get stuck on any puzzles or doesn't know how to reach the true ends.&nbsp;</p>
<p class="text-center"><a href="https://dreamnyghtstudio.wixsite.com/thewishingstone/walk-through" rel="nofollow noopener" referrerpolicy="origin">https://dreamnyghtstudio.wixsite.com/thewishingstone/walk-through</a>
</p>
<p><strong><br></strong></p>
<p></p>
<h3 class="text-center">Language:</h3>
<p class="text-center">English, 中文简体,&nbsp;&nbsp;中文繁體</p>
<p class="text-center"><br></p>
<p class="text-center"><strong>You can also get it from Steam:</strong></p>
<p><iframe src="https://store.steampowered.com/widget/1330100/" frameborder="0" width="646" height="190"></iframe></p>
<p class="text-center"><strong>Follow us on </strong><a href="https://mobile.twitter.com/nyghtdream" rel="nofollow noopener" referrerpolicy="origin"><strong>Twitter</strong></a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/SXxJQF1qfTg" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM5MDcyOC84MTA0MTMxLmpwZw==/original/jN7bIE.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5MDcyOC84MTA0MTM0LmpwZw==/original/RunYim.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5MDcyOC84MTA0MTMyLmpwZw==/original/QaHCkx.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5MDcyOC84MTA0MTQwLmpwZw==/original/dJ6QcY.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5MDcyOC84MTA0MTQ0LmpwZw==/original/DyvhkD.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5MDcyOC84MTA0MTM5LmpwZw==/original/PO0Y16.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5MDcyOC84MTA0MTM4LmpwZw==/original/rrIXyM.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5MDcyOC84MTA0MjA0LmpwZw==/original/Jgaqe%2B.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5MDcyOC84MTA0MTQxLmpwZw==/original/f9RFll.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5MDcyOC84MTA0MTM3LmpwZw==/original/BHjTSW.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5MDcyOC84MTA0MTM1LmpwZw==/original/CSqlML.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5MDcyOC84MTA0MTMzLmpwZw==/original/5EXA8v.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5MDcyOC84MTA0MTM2LmpwZw==/original/%2BNh0X7.jpg]]
<p><strong>The Witch's Almanac</strong> is a solo exploration game, where you play as a witch who has been practicing potion making. T<span class="" style="color: inherit; font-size: inherit">he potion you’ve been studying requires two key components, and this potion can only be brewed under the light of the Pink Moon. You need to journey out to find these components, return home, and brew your potion before the Pink Moon sets. Will you be successful, or will you run out of time?</span></p>
<p><span></span></p>
<p><strong>To play, you will need:</strong></p>
<ul><li><span class="">One standard deck of playing cards, jokers removed</span>
</li><li><span class="">A six-sided die (or “1d6”)</span>
</li><li><span class="">A character marker, like a figurine or a coin</span>
</li><li><span class="">A piece of paper and a pencil</span>
</li></ul>
<p>Cover art &nbsp;by&nbsp;<a href="https://yurir.itch.io/">Yuri R</a>.&nbsp;<br>Based on the&nbsp;<a href="https://peachgardengames.itch.io/carta-srd" target="_blank" style="font-size: inherit">Carta SRD</a>&nbsp;by&nbsp;<a href="https://peachgardengames.itch.io/" target="_blank" style="font-size: inherit">Peach Garden Games</a>.</p>
<p>This game was&nbsp;created as a submission to the&nbsp;<a href="https://itch.io/jam/carta-jam" target="_blank">Carta Jam</a>, the <a href="https://itch.io/jam/mock-cover-jam">Mock&nbsp;Cover Jam</a>, and <a href="https://twitter.com/search?q=%23ChainLetterJam&amp;src=typed_query" rel="nofollow noopener" referrerpolicy="origin">#ChainLetterJam</a>!&nbsp;</p>
<hr>
<p>I was nominated for #ChainLetterJam by pancelor, who made <a href="https://pancelor.itch.io/linecook" style="font-size: inherit">linecook</a>!&nbsp;I was inspired by the concept of recipes/ingredients from his game.</p>
<p>All the games in this chain are:
</p>
<ol><li><a href="https://nartier.itch.io/wordman-saves-the-day">Wordman Saves the Day by miziziziz</a></li><li><a href="https://vimlark.itch.io/word-bounce">Word&nbsp;Bounce by Vimlark</a></li><li><a href="https://niborious.itch.io/word-bounce-3d">Word Bounce 3D by nibourious</a></li><li><a href="https://patrickgh3.itch.io/arithmetic-bounce">Arithmetic Bounce by patrickgh3</a></li><li><a href="https://pancelor.itch.io/linecook">linecook by pancelor</a></li><li>this game!</li><li><a href="https://eliotsilvarian.itch.io/little-shop-of-potions">Little Shop of Potions by Eliot Silvarian</a></li></ol>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAxNzQ5OC81Nzk2MTg4LnBuZw==/original/dMwbxB.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAxNzQ5OC84Mjk2MDQ1LnBuZw==/original/Q47WuV.png]]
<p>The Wizard's Co-Op is the second of twelve hexes and dungeons we will be releasing in 2022! We'll be releasing one every month, and members of <a href="http://eepurl.com/hBUCjD" rel="nofollow noopener" referrerpolicy="origin">The Gem Room Games Newsletter</a> will receive a 100% off coupon for each one. If you're reading this in February then sign up now to get The Wizard's Co-Op and 10 more dungeons and hexes like it!</p>
<h1>The Wizards' Co-op includes:</h1>
<ul><li>Details on the Weather, Ecology, Infrastructure, and Politics of the Alcazar Rock region and The Wizards' Co-op</li><li>A labyrinthine map that can be used as a dungeon or headquarters of the Chroma Cabal, a reckless organization of wizards</li><li>A drawing of the Alcazar Rock mesa itself, ready to be imported into&nbsp;<a href="https://cone.itch.io/hex-kit">Hex Kit</a>&nbsp;and dropped into your own maps
</li><li>Wizards! Abandoned monsters! Magical experiments gone awry! Passive aggressive notes about chore charts!&nbsp;</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM4ODg1OS84MDk1NDU1LnBuZw==/original/l2F864.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM4ODg1OS84MDk1NDU2LnBuZw==/original/HNIGj4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM4ODg1OS84MDk1NDU4LnBuZw==/original/YW1VU%2F.png]]
<p><em>The world is ending in one week. This we know for a fact. It is too late to stop it. It cannot be slowed down anymore. Especially not by you, because you are just a group of large dogs. All you can do is try and make the final days as best as you can for those that are near and dear to you. Your owners, your community, the other wild dogs in the park, whoever you hold dear.</em>   </p>
<p><strong>The World is Ending and We Are Very Large Dogs</strong> is a GM-less collaborative storytelling game for 2+ players, wherein the players work to weave stories of bright moments in the face of Armageddon. The mood, intensity and tone of this game are up to you, the players, to decide,&nbsp;as&nbsp;the&nbsp;adaptable&nbsp;ruleset&nbsp;is&nbsp;designed for anything&nbsp;from a&nbsp;pulpy&nbsp;Mars&nbsp;Attacks-esque&nbsp;alien&nbsp;invasion&nbsp;to a&nbsp;a&nbsp;dark, mournful, melancholic ending.</p>
<p>---</p>
<p>This is version 1.0 of Very Large Dogs, however if you purchase it you will recieve any updates or revisions free of charge.<br>  
  </p>

[img width=500 [https://img.itch.zone/aW1nLzQ5NzgwNDYucG5n/original/TABVzn.png]]
<p class="text-center">⛏👹👑👹🐍<br></p>
<p><strong>Dig out a proper dungeon, grow your little villainous society, set up defences against heroes, and survive long enough to retrieve the Orbs of Infinite Power.</strong></p>
<p>The Wratch has been defeated, they have gone into hiding with the pitiful remains of their army. Now it's up to you to dig out a proper base for The Wratch. You'll have to defend them against the heartless heroes come for easy prestige, and retrieve the 3 legendary Orbs of Infinite Power in order to come back out of the Den and crush human society once and for all.</p>
<p><strong><em>This game features:</em></strong><br></p>
<p>🔨 build your own villainous hide-out<br>👛 hire monsters, buy traps, research techs<br>👑 defend from heroes come to slay The Wratch<br>🔥 4 difficulty modes<br>🧱 a separate scoring/survival mode<br>⌛ 20-40 minutes sessions on average<br>🎲 randomized gameplay for considerable replayability<br>🎧 soundtrack by the amazing Pentadrangle<br>❓&nbsp;heroes throw objects in the fountains</p>
<p class="text-center">⛏👹👑👹🐍</p>
<p><strong>Controls:</strong></p>
<p><em>This game can be played either with a keyboard or a&nbsp;game controller. We rather recommend playing with a keyboard.</em></p>
<ul><li>the arrows, or the left stick or D-pad of a controller: move around, interact with adjacent tiles, navigate prompts</li><li>the X key, or (A): use abilities, confirm prompts</li><li>on keyboard, the space key: switch to the next minion</li><li>on keyboard, ctrl + arrow: select minion according to coordinates</li><li>on gamepad, left and right triggers: switch to previous and next minion</li><li>escape or (back):&nbsp;go backwards when in menus,&nbsp;open the pause menu when in game</li></ul>
<p class="text-center">⛏👹👑👹🐍</p>
<p>If you'd like you can come <strong><a href="https://discord.gg/dpQx647USm" target="_blank" rel="nofollow noopener" referrerpolicy="origin">to our Discord</a></strong> to talk about the game, discuss strategies and/or get advice!</p>
<p>Of course it's also a very good place to get news of our next projects!</p>
<p class="text-center">⛏👹👑👹🐍<em><br></em></p>
<p><strong><em>The game doesn't run!</em></strong></p>
<p>If you're having trouble running the game please try the following things:</p>
<ul><li>Extract the game to a different location, like a new folder on your Desktop, and try running it from there.</li><li>Add the game's executable to your antivirus' whitelist. Try launching the game now.</li><li>Still not working? If you see a save.bnk file in the folder, open it with any text editor and replace its contents with this : "10:2:2:00000700070000000000000000000000000000000000000000000000000000000000000000000000", without the quotation marks. Save the file and try running it now.</li><li>Still no luck? Please come get help on our Discord, or&nbsp;send us an email at trasevol.dog@gmail.com and attach the 'log.txt' file from the game's folder if it exists.<strong></strong></li></ul>
<p class="text-center">⛏👹👑👹🐍<br></p>
<h3>Are you press or a content creator?</h3>
<p><strong>Come ask us for a key on Twitter,&nbsp;</strong><a href="https://twitter.com/PUNKCAKE_delice" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong>our DMs are open!</strong></a>&nbsp;<em>Just make sure to tell us which game(s) you're interested in, we have a few of different ones!</em>
</p>
<p><strong>Also check out&nbsp;<a href="https://punkcake.itch.io/our-presskit" target="_blank">our presskit</a></strong>&nbsp;where you'll find more info about us, as well as graphical&nbsp;assets in the downloads,&nbsp;useful&nbsp;for showing off the game or making thumbnails!
</p>
<p>We also have<strong>&nbsp;<a href="https://punkcake.itch.io/fr-presskit" target="_blank">a french version</a></strong>&nbsp;of the presskit! 🥐</p>
<p class="text-center">⛏👹👑👹🐍<br></p>
<h3>About PUNKCAKE</h3>
<p>This game was made by&nbsp;<strong>PUNKCAKE Délicieux</strong>, a game developping duo making and releasing a new game&nbsp;every month through Patreon and itch.io!</p>
<p><strong>Check out our&nbsp;<a href="https://www.patreon.com/punkcake" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Patreon subscription</a>&nbsp;for advantageous offers and some more options!</strong>
</p>
<p>PUNKCAKE Délicieux is made up of lovely humans&nbsp;<a href="https://twitter.com/benjamin_soule_" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong>Benjamin Soulé</strong></a>&nbsp;and&nbsp;<a href="https://twitter.com/TRASEVOL_DOG" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><strong>Rémy Devaux</strong></a>.&nbsp;</p>
<p>Our dedicated composer is&nbsp;Pentadrangle! He's also the musician behind the games&nbsp;Cyber shadow, Roof Rage, Spicy Piggy, VoidRun, Lords of Exile and more!&nbsp;Check out&nbsp;<strong><a href="https://pentadrangle.bandcamp.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">his Bandcamp</a></strong>&nbsp;and follow him&nbsp;<strong><a href="https://twitter.com/pentadrangle/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">on Twitter</a></strong>!</p>
<p>Find us on these platforms: <br><strong>::</strong>👉&nbsp;<strong><a href="https://www.patreon.com/punkcake" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Patreon<br></a></strong><strong>::</strong>&nbsp;👉&nbsp;<strong><a href="https://twitter.com/punkcake_delice" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter<br></a></strong><strong>::</strong>&nbsp;👉&nbsp;<strong><a href="https://discord.gg/dpQx647USm" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Discord<br></a></strong><strong>::</strong>&nbsp;👉&nbsp;<strong><a href="https://punkcake.itch.io/" target="_blank">Itch.io<br></a></strong><strong>::</strong>&nbsp;👉&nbsp;<strong><a href="https://store.steampowered.com/developer/punkcake/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Steam</a></strong></p>
<p class="text-center">⛏👹👑👹🐍</p>
<p>1.1c patch notes:</p>
<ul><li>Added back misplaced ending music intro (it used to be just the loop part of the track playing)</li><li>Made it possible to start the game without using openGL at all, see instructions above in the "The game doesn't run" section.</li></ul>
<p>1.1b patch notes:</p>
<ul><li>Fixed crash on using the smithy.</li></ul>
<p>1.1 patch notes:</p>
<ul><li>Fixed a bug where the orb could be mixed up with an item upon entering the throne room, enabling a premature win.</li><li>Ninjas and ghosts can now properly interact with special tiles in rooms.</li><li>Ninjas and ghosts have been forbidden to forge pickaxes, as that would be problematic.</li><li>Goblins' tiles and items brought to school will no longer be confiscated upon graduation.</li><li>The goblin tamer formation now includes a task separation course teaching them not to call the wolves when dropping an item.</li><li>Stopped wandering entities to pile up on tiles where there are already two other entities, which would push the oldest entity on that square into a frightening liminal space between states of being where they would be drawn but never again updated. (similar to a constant state of sleep paralysis if you will)</li><li>Swap control prompts will now go away if you ignore them for long enough&nbsp;and use the&nbsp;other swap controls instead.</li><li>Made it impossible for room descriptions to be partially off-screen.</li><li>Giving up in expansion mode will now trigger the score counting sequence.</li><li>Added back misplaced description for the vampire: they do steal enemy HPs.</li><li>Now displaying difficulty and how many in-game years it took to win the run in the ending screen.</li><li>You can now fast-forward through the ending screen with the action key.</li><li>Corrected a few typos.</li><li>Default window size is now smaller.</li><li>Shader can now properly be deactivated from the options. (no visual difference but may affect performences either way depending on your setup - in doubt, we recommend leaving it on)</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/gc0MKui6E_g" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MjMyMy82NjkzNzAxLnBuZw==/original/VtSA6K.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MjMyMy82NjkzNzAzLnBuZw==/original/SutaVx.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MjMyMy82NjkzNjc3LnBuZw==/original/WgkeH1.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MjMyMy82NjkzNzI3LnBuZw==/original/66mC19.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE1MjMyMy82NjkzNzA1LnBuZw==/original/86sECO.png]]
<h3><strong style="color: inherit"><a href="https://www.loottheroom.uk/shop" rel="nofollow noopener" referrerpolicy="origin"></a><a href="https://loottheroom.uk/product/the-wretched-print-pre-order" rel="nofollow noopener" referrerpolicy="origin">Order the print edition here</a></strong></h3>
<p><a href="https://loottheroom.itch.io/wretchedcast-001" style="font-size: inherit">Listen to WretchedCast - The Wretched &amp;&nbsp;Alone podcast here</a><span style="color: inherit; font-size: inherit">!</span><br></p>
<blockquote class="text-center"><br>Final report, the commercial star-ship Nostromo. Third officer reporting. The other members of the crew—Kane, Lambert, Parker, Brett, Ash, and Captain Dallas—are dead. Cargo and ship destroyed. I should reach the frontier within six weeks. With a little luck the network will pick me up. This is Ripley, last survivor of the Nostromo, signing off.</blockquote>
<blockquote class="text-right">&nbsp;- Ellen Ripley</blockquote>
<p><br></p>
<p><em><strong>The Wretched</strong>&nbsp;</em>is a solo journaling RPG played with a deck of cards, a tumbling block tower, and a microphone.<br></p>
<p>You are the last surviving crew member of the intergalactic salvage ship <em><strong>The Wretched</strong></em>. Adrift between stars after an engine failure, your ship was attacked by a hostile alien lifeform. The crew are dead.&nbsp;</p>
<p>You thought you had won. You launched the creature out of an airlock, and that should have meant safety.</p>
<p>It didn’t.&nbsp;</p>
<p class="text-center">&lt; - - - &gt;</p>
<p><em><strong>The Wretched</strong></em> is a game about <strong>human resilience</strong> in the face of <strong>overwhelming odds </strong>and <strong>almost certain death</strong>. It is a game about <strong>isolation</strong>, <strong>fear</strong>, and <strong>perseverance</strong>.&nbsp;<br></p>
<p>You play a lone survivor of an horrific attack. You have seen and done terrible things, you have seen your friends - your found family - brutally butchered by something you can’t even begin to comprehend, something that you were sure didn’t exist until it manifested itself aboard your ship.</p>
<p>You are existing on the edges of your endurance, high on adrenaline and fear and desperation. You are sure you won’t survive this, but all you know to do is to keep fighting.</p>
<p><em>The Wretched</em> is inspired by the music of John Carpenter and Nine Inch Nails, as well as&nbsp;<a href="https://roswellian.itch.io/you-are-not-alone-in-this-life">You Are Not Alone In This Life</a>and <a href="https://roswellian.itch.io/you-will-die-alone-out-here/">you will die alone out here in the black</a> by Auden Roswell.</p>
<p class="text-center">&lt; - - - &gt;<br></p>
<p><strong><em>The Wretched</em>&nbsp;</strong>comes as a 20 page A5 zine ready for printing, or as a single-page, vertical-scroll hyperlinked PDF.<br></p>
<p>
</p>
<p><strong><em>The Wretched</em></strong> also comes with unique soundtrack written and recorded specifically for this game. You can listen to a sample of the soundtrack below.</p>
<p><iframe style="border: 0; width: 100%; height: 42px" src="https://bandcamp.com/EmbeddedPlayer/album=507182473/size=small/bgcol=ffffff/linkcol=63b2cc/transparent=true/">&lt;a href=&quot;<a href="http://chrisbissette.bandcamp.com/album/the-wretched" rel="nofollow noopener" referrerpolicy="origin">The&quot; class=&quot;redactor-linkify-object&quot;&gt;http://chrisbissette.bandcamp.com/album/the-wretched&quot;&gt;The</a> Wretched by Chris Bissette&lt;/a&gt;</iframe><br></p>
<p><br></p>
<p><iframe width="560" height="315" src="https://www.youtube.com/embed/HNQ20CfNvY0" frameborder="0" allowfullscreen=""></iframe><br></p>
<p><strong><a href="https://www.loottheroom.uk/shop" rel="nofollow noopener" referrerpolicy="origin">Get games in print at the Loot The Room web store: loottheroom.uk/shop</a></strong><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/HNQ20CfNvY0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjE0MjgzLzMyNjgzODkucG5n/original/Ue%2BgPQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjE0MjgzLzQzMTYyMzEuanBn/original/F8h3dG.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjE0MjgzLzQzMTYyMzIuanBn/original/RtXRZs.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjE0MjgzLzQzMTYyMzMuanBn/original/nCYbu1.jpg]]
<p><br></p>
<p>There's a Wolf In Those Woods is an experimental murder mystery game. While finding out who killed the Woodsman is interesting, the real point of the game is to discover who the other characters are playing.</p>
<p>6 players will adopt the identity of an interested party and ask each other questions to determine who did the deed. But more than just finding out who killed the unfortunate Woodcutter, the players must also try to figure out who each other is.</p>
<p><br></p>
<p>The 5 characters are:&nbsp;</p>
<ul><li>The Woodcutter's Wife, Alenka</li><li>The Forest Witch, Maven</li><li>The Spirit of the Forest, Undergrowth</li><li>The Woodcutter's Assistant, Karl,</li><li>A literal Wolf&nbsp;</li></ul>
<p><br></p>
<ul><li>The Woodcutter is &nbsp;played by a facilitator who is less active in gameplay.</li></ul>
<p></p>
<p>This game is intended for adults and contains strong language and adult themes including MURDER.</p>
<p><br></p>
<p>Each of the characters have secrets, as well as means, motives, and opportunity. Additionally, many characters have "tells", subtle giveaways when they tell a lie. Observe each other and call out any lies you see!</p>
<p>This game does not feature dice or a gm, though a facilitator playing the woodkeeper is beneficial to minimize the risk of spoilers. The only thing you need to play is the book, the character sheets&nbsp;(these should be kept secret and ideally printed out) and the secret information pages contained within (these should also be kept secret and ideally printed out).</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIxNzE1MC83MTAyMDQyLnBuZw==/original/fWDzvi.png]]
<h3>Summary</h3>
<p>Thermo Puzzle&nbsp;is a game about thermal conduction.</p>
<h3>How to play</h3>
<p>Try to warm or cool the water containers to the designated temperature to reach the next level.</p>
<p>Throwing ice cubes into the water cools it down. Fire can be used to heat water up.</p>
<h3>Engine</h3>
<p>Unity 2018.2.12f1</p>
<h3>Assets used</h3>
<ul><li>Amplify Shader Editor</li><li>Toon FX</li><li>Icons from icons8.com</li></ul>
<p><br></p>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/Ia6nuEbaY_U" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzE2NTE1LzE1NzQ2NjYuZ2lm/original/9TA0nt.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMzE2NTE1LzE1NTg2NTYuanBn/original/jXfc44.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzE2NTE1LzE1NTg2NTUuanBn/original/0cKu4q.jpg]]
<p>You are a group of people. You might be archaeologists, a coven of witches, or a bunch of kids with sticks.</p>
<p>You have found a place. It might be a ruined city, an enchanted forest, or a mysterious basement.</p>
<p>There are objects here, unusual&nbsp; in shape, with designs and purposes you may or may not understand. Together, you will gather these objects and tell the story of where this was before you came to be here. All you need is a blank page, something to draw with, a couple of six-sided dice, and your imagination.</p>
<p>This game was co-written with Marigold.&nbsp;Find Marigold's other work at <a href="http://braverun.itch.io">braverun.itch.io</a>!</p>

[img width=500 [https://img.itch.zone/aW1nLzY1Nzc3NzIuanBn/original/wqHoVO.jpg]]
<p>They Bleed Pixels, the&nbsp;cult classic platforming slash-em up is now available on Itch!&nbsp;</p>
<p>As an anonymous student of the Lafcadio Academy for Troubled Young Ladies, you must battle through your nightmares to defeat a curse that’s slowly transforming your body into a clawed demonic form.&nbsp;</p>
<p>They Bleed Pixels balances a perfect mix of fast-paced acrobatic platforming and fierce, one-button, slash’em up combat. By suppressing your urge to button mash in favour of focusing on stylish and smart kills, you are rewarded with checkpoints you can choose when to place for safety... or try your luck by holding onto them for extra bonus points.<br></p>
<p>Features:</p>
<ul><li>Hardcore original difficulty, plus an easier novice mode, to match a wider range of skills.&nbsp;</li><li>Striking art style mixes low-fi pixel art with organic ink and paper textures.&nbsp;</li><li>Original electronic soundtrack by DJ Finish Him (aka Shaun Hatton) composed with synthesizers, unconventional instruments and gadgets often not meant for musical use.</li><li>Unlock bonus guest levels + illustrations by comic and game artists from around the world.</li><li>Becoming a monster stabbing master or platforming speedrunner with individual level rankings, leaderboards and 150 skill-based badges.&nbsp;</li><li>Lush gothic-cute motion comics tell the story of a young girl haunted by eldritch nightmares.</li></ul>
<p><em><br></em></p>
<p><em>“Gothic brutality shines brightly throughout this blocky, blood-soaked indie platformer.” -&nbsp;</em><strong>8.2/10</strong>&nbsp;<em>-</em> IGN</p>
<p><br></p>
<p class="text-center"><strong>MORE INFO AT:<br></strong><strong>&nbsp;<a href="http://www.theybleedpixels.com" rel="nofollow noopener" referrerpolicy="origin">www.theybleedpixels.com</a></strong></p><p class="text-center"><strong>ALSO AVAILABLE ON THE NINTENDO SWITCH™</strong><br><strong>eShop: <a href="https://www.nintendo.com/games/detail/they-bleed-pixels-switch/" rel="nofollow noopener" referrerpolicy="origin">US</a> | <a href="https://www.nintendo.co.uk/Games/Nintendo-Switch-download-software/They-Bleed-Pixels-1859334.html" rel="nofollow noopener" referrerpolicy="origin">UK</a> | <a href="https://store-jp.nintendo.com/list/software/70010000028528.html" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Japan</a></strong></p><p><br></p>
<p><strong>DRM FREE!</strong></p>
<p><strong>GAMEPAD HIGHLY RECOMMENDED.</strong></p>
<p><strong>STEAM ONLY FEATURES:</strong>&nbsp;Online features such as online leaderboards and replay data&nbsp;require the Steam version.</p>
<p><strong>MAC PLAYERS: </strong>They Bleed Pixels is&nbsp;64-bit and <strong>will run </strong>on&nbsp;MacOS Catalina.&nbsp;&nbsp;<em>However it is unsigned and may require you to turn off some security to run!</em></p>
<p class="text-center"><strong><a href="https://djfinishhim.bandcamp.com/album/they-bleed-pixels-on-the-dance-floor" target="_blank" rel="nofollow noopener" referrerpolicy="origin">BUY THE SOUNDTRACK BY DJ FINISH HIM ON BANDCAMP!<br></a></strong></p>
<p class="text-center"><u><strong><a href="https://www.youtube.com/watch?v=6SzO9Ski5p8" rel="nofollow noopener" referrerpolicy="origin">COMING SOON TO NINTENDO SWITCH™</a></strong></u><strong></strong></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/7X42GIOfuYo" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjY0MzE2LzM1OTM4NTMuZ2lm/original/569BEd.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY0MzE2LzM1OTQwMDUuanBn/original/BGz%2FOH.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY0MzE2LzM1OTM5OTMuanBn/original/9MccLq.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY0MzE2LzM1OTQwMTAuanBn/original/XWU%2F0D.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY0MzE2LzM1OTQwNDYuanBn/original/zfnvAK.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY0MzE2LzM1OTQwNTMuanBn/original/dtu4KD.jpg]]
<p><strong><em>There are a lot of things to think about. </em></strong>
</p>
<p>i originally made this back in 2018, as part of that inktober thing that people do. i always wanted to go back and polish it up. what's new?
</p>
<ul><li>hand-lettered narration
</li><li>alternative ending
</li><li>development sketches and alternate art
</li><li>an 18-track playlist/mixtape following the story (available on Spotify and Mixcloud)
</li><li>the ability to support me for making this ;)
</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIwNzExOS83MDQzNzgwLmpwZw==/original/HQTM7N.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwNzExOS83MDQzNzgxLmpwZw==/original/k8b54o.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwNzExOS83MDQzNzgzLmpwZw==/original/VvxsOE.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIwNzExOS83MDQzNzgyLmpwZw==/original/M%2BpTXN.jpg]]
<p>Our <strong>ZIMO 2022</strong> project is here!&nbsp;6 new backgrounds&nbsp; for <strong>Troika! </strong>Inspired by the music of <strong>Death Grips</strong>. Includes a brand new character sheet <strong>YUH!</strong><br><br><strong>Written by:</strong> MC Rusty<br><strong>Layout by: </strong>Tony Jaguar<br><strong>Editing by:</strong> Vodka Gobalsky</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM5NzM1MS84MTQ0MDA4LnBuZw==/original/BSHjul.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5NzM1MS84MTQ0MDA5LnBuZw==/original/TAMLCZ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5NzM1MS84MTQ0MDExLnBuZw==/original/PsXeu0.png]]
<p><strong>Love, swords, and adventure.</strong></p>
<p><em>Thirsty Sword Lesbians battle the Lady of Chains when her enforcers march down from the frosty north. They rocket through the stars to safeguard diplomats ending a generations-old conflict. Even when swords are crossed, they seek peace with their opponent—and sometimes connect more deeply than anyone expects.</em>
</p>
<p>A sword duel can end in kissing, a witch can gain her power by helping others find love, and an entire campaign can be built around wandering&nbsp; matchmakers flying from system to system.
</p>
<p><strong>Thirsty Sword Lesbians</strong>&nbsp;is a roleplaying game for telling queer stories with friends. If you love angsty disaster lesbians with swords, you have come to the right place.
</p>
<p>In this book, you’ll find:
</p>
<ul><li>Flirting, sword-fighting, and zingers in a system designed for both narrative drama and player safety.
</li><li>An innovative take on the&nbsp;<em>Powered by the Apocalypse</em>&nbsp;family of games.
</li><li>Nine character types, each focusing on a particular emotional conflict: Beast, Chosen, Devoted, Infamous, Nature Witch, Scoundrel, Seeker, Spooky Witch, and Trickster.
</li><li>Guidance and support for running the game, including how to make appealing adversaries, set the tone, pace the game, and structure play.
</li><li>Tools to create your own settings and stories, alongside a dozen pre-written options including the cyberpunk&nbsp;<strong>Neon City 2099</strong>, steamfunk poets battling oppression as Les&nbsp;<strong>Violettes Dangereuses</strong>, laser swords and intrigue in the&nbsp;<strong>Starcross Galaxy</strong>, and more.
</li><li>World building worksheet for custom scenarios and starting scenario seeds to play with:&nbsp;<strong>Best Day of Their Lives</strong>,&nbsp;<strong>The Constellation Festival</strong>,&nbsp;<strong>Gal Paladins</strong>, and&nbsp;<strong>Sword Lesbians of the Three Houses</strong>
</li><li>Variant rules to highlight different identities, emotional connections, and setting elements.
</li><li>Strategies to adapt any setting where swords cross and hearts race for&nbsp;<strong>Thirsty Sword Lesbians</strong>.
</li></ul>
<p><strong>Ready? Let’s go!</strong>
</p>

[img width=500 [https://img.itch.zone/aW1nLzYxMjUyODYuanBn/original/5xhNNk.jpg]]
<p>On the surface, parking lots are mundane.&nbsp;However, at night they turn into magical liminal spaces.&nbsp; Places where everyone finds themselves, no matter what their story is. And this weird confluence means that all sorts of strange events can play out in their concrete confines.&nbsp;</p>
<p>From common tales of human relationships to stories of the weird and supernatural, anything can occur in the parking lot!<br></p>
<p></p>
<p><em>"This Game Takes Place Entirely In A Mega Mart Parking Lot!"&nbsp;</em>is a rules-lite TTRPG with a catch:&nbsp;everything happens in the confines of a supermarket parking lot!<br><br>Players have to use their wits and the environment to meet their goals as they deal with the strange things that are lurking in the shadows of the store's neon signage.&nbsp;</p>
<p>This is made even more chaotic by a fluid skill system that allows players to change their abilities on the fly, making the game a fast-moving party of chaos and creativity. On top of this, each player can use a special move that lets them find any item they want within the parking lot.&nbsp;<br><br>Want a bag of flour?&nbsp;One is on the floor!</p>
<p>Need a laser?&nbsp;Someone left one in a cart!&nbsp;</p>
<p><br></p>
<p><em>At Mega Mart you're guaranteed value and adventure!</em></p>
<p><br></p>
<p>The download includes:</p>
<p>- Rulebook</p>
<p>-Character Sheet</p>
<p>-Coupon Sheet&nbsp;</p>
<p>-Simple Text Version Of The&nbsp;Rulebook&nbsp;(Screen Reader Friendly)&nbsp;</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvODg5MDkyLzUwMTQ5MDIucG5n/original/GLk1h%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODg5MDkyLzUwMTQ5MDEuanBn/original/wAdslY.jpg]]
<p>A horror game for two players.&nbsp;</p>
<p>This is your home town at the end of the world, and it is empty, and the two of you are alone, except for the hunter.&nbsp;
</p>
<p>As you walk around the streets, picking through the rubble for supplies,&nbsp;
</p>
<p>The hunters have heavy footsteps.&nbsp;
</p>
<p>The hunters have caught everyone else.&nbsp;
</p>
<p>You and your partner have refused to die.&nbsp;
</p>
<p>You pick through the scraps of a life you hardly remember, gathering what you need from it to survive.&nbsp;
</p>
<p>The hunters don’t need stuff to survive.
</p>
<p>The hunters have everything they need to hurt you.&nbsp;
</p>
<p>One of you hasn't been home in years. One of you never left.&nbsp;
</p>
<p>You’re both afraid, but you have each other. 
</p>
<p>You can listen to an actual play of this game on <a href="https://ftlcast.podbean.com/e/episode-571-i-do-not-get-how-rich-people-dress/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Follow The Leader</a></p>
<p>Cover by Nala J&nbsp;Wu (@naladraws on twitter)</p><p>Note: you may have noticed that the hyperlinks in the game do not work.&nbsp;<br>The cards can be found <a href="https://playingcards.io/" rel="nofollow noopener" referrerpolicy="origin">here<br></a>options for replacing the tower for digital play are <a href="https://itch.io/jam/wretched-jam/topic/796498/dice-substitute-for-jenga-towers">discussed here</a>.<br>In the game that Follow the Leader played, they rolled 1d20 for each pull, and 2d20 when a pull needed to be fast, with rolling the same number 3 total times ending the game like a fallen tower. <br></p>

[img width=500 [https://img.itch.zone/aW1nLzc3ODQzMDUuanBn/original/tOt9NJ.jpg]]
<p class="text-center"><strong><br></strong></p>
<p><strong><br></strong></p>
<p class="text-center"><strong>A physics sandbox, open world game with very few* options!<br></strong></p>
<p></p>
<p><br></p>
<p><br></p>
<p class="text-center"><strong>An Itch.io exclusive!</strong><br></p>
<p><br></p>
<p><br></p>
<p class="text-center"><strong>First game published with Unity Havok physics! <br></strong>(probably)<strong><br></strong></p>
<p><br></p>
<p>*unless you have the MORE OPTIONS DLC!!! (PS: the DLC is included in the )<br></p>
<p><br><a href="https://github.com/nothke/TCIBTTCT-code-ref/blob/master/code_reference.md" rel="nofollow noopener" referrerpolicy="origin">Tower Scripting Reference<br></a></p>
<p> If you have game or payment issues, check the <a href="https://github.com/nothke/TCIBTTCT-code-ref/blob/master/troubleshooting.md" rel="nofollow noopener" referrerpolicy="origin">TROUBLESHOOTING page</a>&nbsp;first!</p>

[img width=500 [https://img.itch.zone/aW1nLzI1MTc4OTAucG5n/original/%2BR4YAu.png]]
<p>Tic Tac Together is a team-based twist on tic tac toe. Every round, all moves are placed on the board at the same time. If X's and O's are placed in the same space, the teams have to duke it out on a smaller "inner board" to claim it. The game quickly spirals out of control as more inner boards are created and the number of possible moves grows.</p>
<p><br><img src="https://store.steampowered.com/gfxproxy/betagfx/apps/1583910/extras/minicut2.gif?t=1618547770" loading="lazy"><br><br>Up to twelve players can join the game from their phone or browser through a simple web interface with no downloads required.<br><br><img src="https://store.steampowered.com/gfxproxy/betagfx/apps/1583910/extras/tictactoe5.png?t=1618547770" loading="lazy"><br><br>Games are highly customizable, so players can come up with new and interesting ways to play.Customizable settings include:</p>
<ul><li>Number of moves per player<br>
</li><li>Inner boards at the start of a games<br>
</li><li>Number of players on each team<br>
</li><li>Time to enter move<br>
</li><li>More!
</li></ul>
<p><strong>V1.1.0<del></del></strong></p>
<p>- bug fixes</p>
<p>- set diagonal boards toggle</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/XNTKdwLPnuc" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAzNTM3Ni81OTEwMzgwLmpwZw==/original/8Mcgxd.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzNTM3Ni81OTEwMzgyLmpwZw==/original/9Pq8ca.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzNTM3Ni81OTEwMzgxLmpwZw==/original/IzlPOa.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAzNTM3Ni81OTEwMzgzLmpwZw==/original/XrV9qK.jpg]]
<p>Three tracks of happiness from Wetdryvac's Lair. MP3 and WAV files for your listening enjoyment.</p>

[img width=500 [https://img.itch.zone/aW1nLzQ3MjUxNTQuanBn/original/hjZPuz.jpg]]
<p class="text-justify"><strong>Tiny Tales</strong> is designed for those who want to create a cutesy yet epic adventure scenario for their game. In <strong>TT: Wild Beasts</strong>, you will find 18 unique and expertly crafted pixel monsters for your game!</p>
<p class="text-justify">Nature can be both elegant and deadly.&nbsp; With a wide variety of monsters that can be found in various biomes, this pack is perfect to round out your roster of enemy battlers!<br></p>
<h4>This pack Includes:</h4>
<p>19 battler sprites (in 1x, 2x and 3x sizes) split by the following categories:<br></p>
<ul>
<li>Bat</li>
<li>Hornet</li>
<li>Hawk</li>
<li>Bug (with 1 variation)</li>
<li>Cockatrice</li>
<li>Deer</li>
<li>Fire Deer</li>
<li>Spirit Fox</li>
<li>Fox</li>
<li>Bloom Lizard</li>
<li>Raccoon</li>
<li>Slime</li>
<li>Snail</li>
<li>Snake</li>
<li>Spider (Small)</li>
<li>Spider</li>
<li>Spider (Monstrous)</li>
<li>Ground Worm</li>
</ul>
<h4>License Information</h4>
<ul><li>You cannot claim ownership of the assets (copyright/IP). 
</li><li>Assets can be used both in free and commercial games.
</li><li>Assets can be modified freely to fit the needs of your game. 
</li><li>Redistribution and reselling of the asset files or derivatives as is without permission is strictly forbidden.
</li></ul>
<p><strong>Other packs in this collection:</strong></p>
<iframe src="https://itch.io/embed/1243472?linkback=true&amp;border_width=2&amp;bg_color=1b1a36&amp;fg_color=ffffff&amp;link_color=157ab4&amp;border_color=92c8cb" width="554" height="169" frameborder="0"><a href="https://megatiles.itch.io/tiny-tales-2d-battler-pack-vol4-magitek-dynasty">Tiny Tales 2D Battler Pack Vol.4: Magitek Dynasty by Mega Tiles</a></iframe>
<iframe src="https://itch.io/embed/1243473?linkback=true&amp;border_width=2&amp;bg_color=1b1a36&amp;fg_color=ffffff&amp;link_color=157ab4&amp;border_color=92c8cb" width="554" height="169" frameborder="0"><a href="https://megatiles.itch.io/tiny-tales-2d-battler-pack-vol5-faith-and-evil">Tiny Tales 2D Battler Pack Vol.5: Faith and Evil by Mega Tiles</a></iframe>
<iframe src="https://itch.io/embed/1243469?linkback=true&amp;border_width=2&amp;bg_color=1b1a36&amp;fg_color=ffffff&amp;link_color=157ab4&amp;border_color=92c8cb" width="554" height="169" frameborder="0"><a href="https://megatiles.itch.io/tiny-tales-2d-battler-pack-vol1-monstrous-uprising">Tiny Tales 2D Battler Pack Vol.1: Monstrous Uprising by Mega Tiles</a></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI0MzQ3MS83MjYwMTY1LnBuZw==/original/mmLopb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0MzQ3MS83MjYwMTYzLnBuZw==/original/2W5wVM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0MzQ3MS83MjYwMTY0LnBuZw==/original/CPRvgH.png]]
<p><strong>Tiny Tales</strong>&nbsp; is designed for those who want to create a cutesy yet epic adventure scenario for their game. In <strong>TT: Human NPC Nobility</strong> expansion we cover the aristocrats!<br></p>
<h4>This pack Includes:</h4>
<p>20 sprites of 16 x 20px (and compatible 2x and 3x sizes for RPG Maker), split by the following categories: <br></p>
<ul><li>Prince (2 Sprites)</li><li>Princess (2 Sprites)</li><li>Noble (12 Sprites)</li><li>Monarch (4 Sprites)</li></ul>
<h4>License Information</h4>
<ul><li>You cannot claim ownership of the assets (copyright/IP). 
</li><li>Assets can be used both in free and commercial games.
</li><li>Assets can be modified freely to fit the needs of your game. 
</li><li>Redistribution and reselling of the asset files or derivatives as is without permission is strictly forbidden.
</li></ul>
<p><strong>Other packs in this collection:</strong></p>
<iframe src="https://itch.io/embed/1049136?linkback=true&amp;border_width=2&amp;bg_color=1b1a36&amp;fg_color=ffffff&amp;link_color=157ab4&amp;border_color=92c8cb" width="554" height="169" frameborder="0"><a href="https://megatiles.itch.io/tiny-tales-human-npc-essentials-sprite-pack">Tiny Tales: Human NPC Essentials Sprite Pack by Mega Tiles</a></iframe>
<iframe src="https://itch.io/embed/1049187?linkback=true&amp;border_width=2&amp;bg_color=1b1a36&amp;fg_color=ffffff&amp;link_color=157ab4&amp;border_color=92c8cb" width="554" height="169" frameborder="0"><a href="https://megatiles.itch.io/tiny-tales-human-npc-advanced-sprite-pack">Tiny Tales: Hum<span class=""></span>an NPC Advanced Sprite Pack by Mega Tiles</a><br></iframe>
<iframe src="https://itch.io/embed/1049196?linkback=true&amp;border_width=2&amp;bg_color=1b1a36&amp;fg_color=ffffff&amp;link_color=157ab4&amp;border_color=92c8cb" width="554" height="169" frameborder="0">&lt;a href=&quot;<a href="https://megatiles.itch.io/tiny-tales-human-npc-knights-sprite-pack">Tiny&quot; class=&quot;redactor-linkify-object&quot;&gt;https://megatiles.itch.io/tiny-tales-human-npc-knights-sprite-pack&quot;&gt;<span class=""></span>Tiny</a> Tales: Human NPC Knights Sprite Pack by Mega Tiles&lt;/a</iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA0OTIwNi82MDAyNjExLnBuZw==/original/CzCdhc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0OTIwNi82MDAyNTI3LmdpZg==/original/QL4QQz.gif]]
<p><a href="https://megatiles.itch.io/tiny-tales-overworld-2d-tileset-asset-pack/devlog/227788/itchio-keys-notice-gab-fresh-start-hb" target="_blank">Itch.io Keys Notice (GAB Fresh Start HB)</a><strong><br><br>Tiny Tales</strong>&nbsp; is designed for those who want to create a cutesy yet epic adventure scenario for their game. In <strong>TT: Overworld</strong>, we cover the outdoors and town settings!<br></p>
<h4>This pack Includes:</h4>
<ul><li>An assortment of terrain autotiles and tilesets, properly formatted and ready for use!</li><li>Various terrains and vegetation for different climates and moods - such as deserts, snowlands and the classic forest and hills!</li><li>An assortment of cutesy house tiles, both exterior and interior, with a versatile set of basic decorations to make your interiors unique!</li><li>Compatible with RPG Maker MV/MZ</li></ul>
<h4>License Information</h4>
<ul><li>You cannot claim ownership of the assets (copyright/IP). </li><li>Assets can be used both in free and commercial games.</li><li>&nbsp;Assets can be modified freely to fit the needs of your game. </li><li>Redistribution and reselling of the asset files or derivatives as is without permission is strictly forbidden.</li></ul>
<p><strong>Other packs in this collection:</strong></p>
<iframe src="https://itch.io/embed/886783?linkback=true&amp;border_width=2&amp;bg_color=1b1a36&amp;fg_color=ffffff&amp;link_color=157ab4&amp;border_color=92c8cb" width="554" height="169" frameborder="0">&lt;a href=&quot;<a href="https://megatiles.itch.io/tiny-tales-worldmap-2d-tileset-asset-pack">Tiny&quot; class=&quot;redactor-linkify-object&quot;&gt;https://megatiles.itch.io/tiny-tales-worldmap-2d-tileset-asset-pack&quot;&gt;Tiny</a> Tales: World Map 2D Tileset Asset Pack by Mega Tiles&lt;/a&gt;</iframe>
<iframe src="https://itch.io/embed/886814?linkback=true&amp;border_width=2&amp;bg_color=1b1a36&amp;fg_color=ffffff&amp;link_color=157ab4&amp;border_color=92c8cb" width="554" height="169" frameborder="0"><a href="https://megatiles.itch.io/tiny-tales-dungeons-2d-tileset-asset-pack">Tiny Tales: Dungeons 2D Tileset Asset Pack by Mega Tiles</a></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTEzODEyLzQ5OTk1ODcucG5n/original/mjn4i3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEzODEyLzQ5OTk1ODgucG5n/original/Zn6JAZ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEzODEyLzQ5OTk1ODkucG5n/original/UhtiSk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEzODEyLzQ5OTk1ODYucG5n/original/iJxiX6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEzODEyLzQ5OTk1OTAucG5n/original/aUvJ5%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTEzODEyLzQ5OTk1ODUucG5n/original/lfxBXJ.png]]
<p><strong>Tiny Tales</strong> is designed for those who want to create a cutesy yet epic adventure scenario for their game. In <strong>TT: Wild Beasts NPC </strong> expansion we cover the dangerous creatures that lurks in the wide world! This is the sprite version of <a href="https://megatiles.itch.io/tiny-tales-2d-battler-pack-vol3-wild-beasts">Tiny Tales 2D Battler Pack Vol.3: Wild Beasts</a>
</p>
<h4>This pack Includes:</h4>
<p>19 sprites of 16 x 20px (and compatible 2x and 3x sizes for RPG Maker), split by the following:<br></p>
<ul>
<li>Bat</li>
<li>Bee</li>
<li>Bird</li>
<li>Bug (2 Sprites)</li>
<li>Cockatrice</li>
<li>Deer (2 Sprites)</li>
<li>Fox (2 Sprites)</li>
<li>Lizard</li>
<li>Raccoon</li>
<li>Slime</li>
<li>Snail</li>
<li>Snake</li>
<li>Spider (3 Sprites)</li>
<li>Ground Worm</li>
</ul>
<h4>License Information</h4>
<ul><li>You cannot claim ownership of the assets (copyright/IP). 
</li><li>Assets can be used both in free and commercial games.
</li><li>Assets can be modified freely to fit the needs of your game. 
</li><li>Redistribution and reselling of the asset files or derivatives as is without permission is strictly forbidden.
</li></ul>
<p><strong>Other packs in this collection:</strong></p>
<iframe src="https://itch.io/embed/1243471?linkback=true&amp;border_width=2&amp;bg_color=1b1a36&amp;fg_color=ffffff&amp;link_color=157ab4&amp;border_color=92c8cb" width="554" height="169" frameborder="0"><a href="https://megatiles.itch.io/tiny-tales-2d-battler-pack-vol3-wild-beasts">Tiny Tales 2D Battler Pack Vol.3: Wild Beasts by Mega Tiles</a></iframe>
<iframe src="https://itch.io/embed/1313268?linkback=true&amp;border_width=2&amp;bg_color=1b1a36&amp;fg_color=ffffff&amp;link_color=157ab4&amp;border_color=92c8cb" width="554" height="169" frameborder="0"><a href="https://megatiles.itch.io/tiny-tales-faith-and-evil-npc-sprite-pack">Tiny Tales: Faith and Evil NPC Sprite Pack by Mega Tiles</a></iframe>
<iframe src="https://itch.io/embed/1278574?linkback=true&amp;border_width=2&amp;bg_color=1b1a36&amp;fg_color=ffffff&amp;link_color=157ab4&amp;border_color=92c8cb" width="554" height="169" frameborder="0"><a href="https://megatiles.itch.io/tiny-tales-elemental-npc-sprite-pack">Tiny Tales: Elemental NPC Sprite Pack by Mega Tiles</a></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMxMzI2OS83NjM2NzkyLnBuZw==/original/9qeRQL.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMxMzI2OS83NjM2OTY5LmdpZg==/original/MPWxoe.gif]]
<p><br></p>
<h1>A Roll &amp; PlayMedusa game.</h1>
<h1><p><br></p>
<p><img src="https://img.itch.zone/aW1nLzMzNjQ0NDcuanBn/original/ufHnbA.jpg" loading="lazy"><br></p></h1>
<p><br></p>
<p><strong>Rulebook:</strong>&nbsp;v1.4&nbsp;
<br><strong>PLAYERS:</strong>&nbsp;1 a 4&nbsp;
<br><strong>TIME:</strong>&nbsp;30 to 45 min&nbsp;
<br><strong>AGE:</strong>&nbsp;16+
<br><strong>OBJECTIVE:</strong>&nbsp; Explore the surface of Titan to mine mineral veins and sell them in the market.<br><strong>COMPONENTS:</strong></p>
<ul><li>Three game&nbsp;sheets.</li><li>5D6.</li><li>A&nbsp;pen
OPTIONAL: Three markers of different color (Green, blue and red)</li></ul>
<p><br></p>
<p><strong><img src="https://img.itch.zone/aW1nLzI3MjM0ODcuanBn/original/RBP6SI.jpg" style="max-width: 100%" loading="lazy">
</strong></p>
<p><strong>&gt;&gt;&gt;&gt; Incoming message: "Welcome" Space-R Corp.&nbsp; &nbsp;&nbsp;</strong>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</p>
<p><em>Note:&nbsp; The information included in this email is confidential.</em>
Welcome to the Space-R Corp family! If you are reading this it means that you have made up your mind and you are willing to fight for your dreams, losing your fear of enjoying a&nbsp;better life.
Space-R Corp is looking to build relationships of trust with professional freelancers like you in its expansion throughout the solar system.
If you decide to join us, Space-R Corp offers you:</p>
<ul><li>An opportunity to work with the Holding that revolutionized collaborative space&nbsp;&nbsp;mining.</li><li>&nbsp;Access to the best space mining technology patented by Varsoff-Zhao Holding&nbsp;&nbsp;company.</li><li>&nbsp;Temporary license to travel outside the Earth's orbit. - Temporary license to work outside the Earth's orbit.</li><li>Professional promotion opportunities.
</li><li>Good work environment and value-based remuneration.</li></ul>
<p><strong>IMPORTANT:</strong></p>
<p><em>The application for this job implies the voluntary resignation of the statutes for Space Work established by the UN in May 2043.</em></p>
<p><img src="https://img.itch.zone/aW1nLzI3MjM0ODAucG5n/original/sGC0UB.png" style="max-width: 100%" loading="lazy">
</p>
<h3 class="text-center">DO YOU LIKE MECHS GAMES?</h3>
<p class="text-center"><strong><a href="https://rollandplaymedusa.itch.io/mechs-bundle-eng">Get the Bundle Deluxe Now!</a></strong><br><strong>"Eridani - IV + Titán"&nbsp; Deluxe version here.</strong></p>
<figure><img src="https://img.itch.zone/aW1nLzMzNjY1NTYuanBn/original/VKbxk%2B.jpg" loading="lazy"></figure>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjA3OTgwLzMzNjY1NzQuanBn/original/zZfI0D.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjA3OTgwLzMzNjY1NzUuanBn/original/ZnId%2FO.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjA3OTgwLzMzNjQ0MzAuanBn/original/UejPWG.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjA3OTgwLzMzNjQ0MzEuanBn/original/L1Ohzp.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjA3OTgwLzMzNjQ0MzYuanBn/original/sVz0PL.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjA3OTgwLzMzNjQ0MzUuanBn/original/OY0nY4.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjA3OTgwLzMzNjQ0MzMuanBn/original/sI292X.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjA3OTgwLzMzNjQ0MzIuanBn/original/xV8h6Z.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjA3OTgwLzMzNjQ0MzcuanBn/original/Qxr9lN.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjA3OTgwLzMzNjQ0MzQuanBn/original/201Tmu.jpg]]
<p><strong>The dragon crawled out of myth and into the real world</strong>... not a realm of fantasy and adventurers, but to your own town. You&nbsp;will face the dragon not as a grand hero but as you, yourself. You will probably be killed, but you may be fortunate enough to take it with you.<br></p>
<p><em>To Stand Before the Dragon's Wrath</em>&nbsp;is a one-page story game for three to five players, which takes less than an hour to play. It centers around one grand battle between the players, who find themselves reluctant heroes, and a tyrannical dragon. It's a game system made for quick accessibility and high-stakes, epic battling. There's no prep required and no GM, although one player will take on the role of the dragon itself.</p>
<p>This download includes game files to be read on a screen, as well as a printable zine in both A4 and Letter sizes.</p>

[img width=500 [https://img.itch.zone/aW1nLzU1MTM4MzYucG5n/original/eOp0db.png]]
<p>Top of the Table Soccer (TOTTS) is a competitive two-player role-playing game that simulates a game of soccer.&nbsp;</p>
<p>To play this game you need a pencil, eraser and a fist full of six-sided dice.&nbsp;</p>
<p>The mechanics for TOTTS are simple, yet winning a match requires lots of strategy and a dash of luck.</p>
<p>The game is designed to incorporate a role-playing element, which encourages players to weave their own narratives into any given match. The goal of TOTTS is to beat your opponent, but also tell the story of how that happened.</p>
<p>Please rate this game and let me know what you think about it in the comment section below. <br></p>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTA4MTQxLzU1NTI0MDguanBn/original/i7%2FiOL.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTA4MTQxLzU1NTI0MjAuanBn/original/YVgFuW.jpg]]
<p></p>
<p>Toree 2 is the sequel to Toree 3D.<br><br>A bite-sized 3D Platformer sequel with more focus on the things people enjoyed in the first game like fast gameplay, flow focused levels and cute costumes (two this time).<br><br><strong>- Features -</strong></p>
<ul><li>More late 90s low poly aesthetic<br>
</li><li>Fast gameplay, flow focused levels<br>
</li><li>Weird elements make a comeback.<br>
</li><li>9 levels with unique elements<br>
</li><li>Some secret characters to unlock<br>
</li><li>The epic conclusion of the ice cream arc.
</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/zzSy6BMoEag" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIxMjkzNy83MDk3MzI5LnBuZw==/original/AWwuWH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxMjkzNy83MDk3MzMwLnBuZw==/original/uKd16J.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxMjkzNy83MDk3MzM0LnBuZw==/original/IXwa6J.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxMjkzNy83MDk3MzMxLnBuZw==/original/Y0NEbh.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxMjkzNy83MDk3MzMyLnBuZw==/original/prjIVG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIxMjkzNy83MDk3MzMzLnBuZw==/original/0%2B20SF.png]]
<p></p>
<p>A bite-sized 3D Platformer with a few weird elements.<br><br><strong>- Features -</strong></p>
<ul><li>Late 90s low poly aesthetic<br>
</li><li>Fast paced platforming<br>
</li><li>9 levels with unique elements<br>
</li><li>2 secret characters to unlock</li></ul>
<p>If you enjoyed Toree 3D, check out its sequel:</p>
<p><a href="https://siactro.itch.io/toree-2" target="_blank">Toree 2</a><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/5hZ-BHRpZaA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTIwODY5LzU0MzY1ODQucG5n/original/vO20wp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIwODY5LzU0MzY1ODEucG5n/original/9mmDcM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIwODY5LzU0MzY1ODUucG5n/original/DII%2B7s.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIwODY5LzU0MzY1ODMucG5n/original/fBp9%2FG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIwODY5LzU0MzY1ODIucG5n/original/Nl7L3U.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIwODY5LzU0MzY1ODYucG5n/original/t3J1r0.png]]
<p>Based on a dark fantasy short story by <a href="http://www.anamardoll.com/" rel="nofollow noopener" referrerpolicy="origin">Ana Mardoll.</a></p>
<p>Ilena and Elspeth are femme people of different positions in a strict castle hierarchy. They bond through letters passed through bribed servants, dead drops, and simple handoffs. Tornbridge Castle is now being invaded -- how does that change their lives?</p>
<p>For two players.<br></p>

[img width=500 [https://img.itch.zone/aW1nLzE5ODk1OTQuanBn/original/pPk7K8.jpg]]
<p><strong>A loud noise came from the sky.&nbsp;<br>Our town was swallowed up by a thick and engulfing darkness.&nbsp;<br>We are afraid to step outside our homes.&nbsp;<br>No place is safe anymore.&nbsp;<br>Especially when night arrives...</strong></p>
<hr>
<p>A veil of darkness falls over a quiet town in eastern Japan.&nbsp;<br>Fear and horror are freely wandering through its empty streets.&nbsp;<br>Find out what's behind this&nbsp;curse while&nbsp;trying to escape from it.</p>
<hr>
<p><strong>Left click = Interact (firm touch)</strong><br></p>
<p><strong>Right click = Examine (light touch)</strong></p>
<p><strong>F5 = Save game</strong></p>
<p><strong>Esc = Quit game</strong></p>
<hr>
<p><strong>Minimum system requirements:</strong><br></p>
<ul><li>O.S.:<strong>&nbsp;Windows® 98/ME/2000/XP/Vista/7/8/8.1/10</strong></li><li>CPU:&nbsp;<strong>Pentium® III 800 MHz or higher</strong></li><li>Screen resolution:&nbsp;<strong>1280x720</strong></li><li>Free hdd space:&nbsp;<strong>500&nbsp;</strong><strong>MB</strong></li><li>Free ram space:&nbsp;<strong>512 MB</strong></li><li>GPU memory:&nbsp;<strong>128 MB</strong></li><li>DirectX®:&nbsp;<strong>DirectX® 8.0 or higher</strong></li></ul>
<hr>
<h3 class="text-center">Frequently Asked Questions</h3>
<p><strong>Q -</strong>&nbsp;<strong>So, what this game is about?</strong><br><strong>A -</strong>&nbsp;Towayami is essentially a horror adventure game.<br>I won't spoil too much about its story, but you'll have to explore, find and use items, solve puzzles... and survive.<br>Oh... and you'll also be immersed in darkness. All the time.</p>
<p><strong>Q -</strong>&nbsp;<strong>I got it. It's as if I'm playing through the eyes of a blind person. Do I have any visual clues to help me out?</strong><br><strong>A -</strong>&nbsp;No, you don't. It's pitch black, so you'll have to make use of the four other senses available to the main character.<br>Mainly touch and sound, but you'll also get to know when something smells or tastes "different".<br>Anyway, your brain will soon get used to this condition and will start filling the gaps by creating visual references where, in fact, there are none.<br>Just like when you happen to wander in the dark in real life.</p>
<p><strong>Q -</strong>&nbsp;<strong>Do I at least get a tutorial?</strong><br><strong>A -</strong>&nbsp;During the first part of the game, even if you won't find any "hand in hand" guide in it, you'll have all the time and relatively safe areas to learn how to play.<br>At first you'll be confused about who you are and what you have to do, but just by touching and examining your surroundings, you'll soon get enough information to understand all the important bits of the story.</p>
<p><strong>Q -</strong>&nbsp;<strong>Hey, what's the deal with that black screenshot?</strong><br><strong>A -</strong>&nbsp;You know, taking meaningful screenshots from a game where the main feature is the absence of any graphics... was quite challenging. (⌒_⌒;)</p>
<p><strong>Q -</strong>&nbsp;<strong>What was your main inspiration to make this game?</strong><br><strong>A -</strong>&nbsp;After I made "<strong>Five minutes a day</strong>", I kept thinking about how that short "graphicless" experience could've been expanded into a proper adventure game.<br>Coming up with a good story and a smooth gameplay wasn't a quick and easy task, so this game became a sort of "secret project" I kept working on in between my other releases.<br>Obviously, as previously stated in my other works (like with "<strong>The hair in the wall</strong>"), one of my biggest ispirations is Junji Ito and his works.<br>Many of his stories resonate really strong with <strong>Towayami</strong>.</p>
<p><strong>Q -</strong>&nbsp;<strong>One last advice?</strong><br><strong>A -</strong>&nbsp;Only one? I'll give you three: keep your ears open, touch everything, and remember to use the "light touch" (right click) to examine things in a safe way.</p>
<hr>
<p>For any further questions, or to receive&nbsp;help and support, feel free to&nbsp;contact me on twitter&nbsp;(<strong>@evonture</strong>), or on the&nbsp;<strong>Discord&nbsp;</strong>server linked below.<br></p>
<p class="text-center"><u><strong><a href="http://discord.gg/R9Hgnfu" target="_blank" rel="nofollow noopener" referrerpolicy="origin"></a></strong></u></p><p class="text-center"><a href="https://approductions.itch.io/" target="_blank"><img src="https://img.itch.zone/aW1nLzQ0MzMxNjgucG5n/original/0yZXlc.png" style="max-width: 100%" loading="lazy"></a></p>
<p class="text-center"><u><strong><a href="http://discord.gg/R9Hgnfu" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Official Discord</a></strong></u></p>
<p class="text-center"><strong><a href="https://www.patreon.com/approductions" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzQ0MzMxNjQucG5n/original/EnQgNl.png" style="max-width: 100%" loading="lazy">Patreon</a></strong></p><p class="text-center"><strong><a href="https://www.patreon.com/approductions" target="_blank" rel="nofollow noopener" referrerpolicy="origin"></a></strong></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDA0NDgxLzIwMDc2MzYucG5n/original/a6xX%2Fs.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDA0NDgxLzIwMDc2MzcucG5n/original/RE%2Fg6m.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDA0NDgxLzIwMDc2MzkucG5n/original/pdrU5F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDA0NDgxLzIwMDc2NDAucG5n/original/3wlSNy.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDA0NDgxLzIwMDc2NDIucG5n/original/HbM3vO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDA0NDgxLzIwMDc2NDUucG5n/original/V0tuwz.png]]
<p>Inspired by classics from the golden age of couch multiplayer, TowerFall Ascension is a 4-player local party game centering around hilarious, intense versus matches. The core mechanics are simple and accessible, but hard to master and combat is fierce. Loot treasure chests for game-changing power-ups, master the art of catching arrows out of the air, or descend on your foes and stomp them into submission. TowerFall is best played competitively with friends, cross-legged on the floor within punching distance of each other.</p><p><strong>Note:</strong> It is highly recommended that you play this game with controllers. TowerFall supports many varieties of controller, including XBox 360 and PS4.</p><p>If you like TowerFall, check out the Expansion Pack: <a href="http://mattmakesgames.itch.io/towerfall-dark-world">TowerFall Dark World!</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/PePm9lYQ038" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjI3NTUvMTAxNDcyLnBuZw==/original/nLMvMA.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI3NTUvOTAzODgucG5n/original/Eq6Fcm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI3NTUvOTAzOTMucG5n/original/yJ3%2FMp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI3NTUvOTAzOTAucG5n/original/jYECt3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI3NTUvOTAzOTQucG5n/original/ygbiRk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI3NTUvOTAzOTEucG5n/original/uOCLEJ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI3NTUvOTAzOTUucG5n/original/9WrIys.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjI3NTUvOTAzOTYucG5n/original/D2N%2F5%2F.png]]
<p>
	Challenge your friends to fight through the Dark World, with or against you, in this massive expansion for the acclaimed archery brawler. Through the portal you'll find a wealth of new archers, powerups and arenas. Face an all-new 1-4 player co-op mode, or take the fight to Cataclysm, where levels shift into unique layouts every time you play. A perfect excuse to revisit the beloved indie fighter.
	<span></span><br>
</p>
<h3>This is not a stand-alone game!</h3>
<p>
	<strong>This is an expansion pack for <a href="http://mattmakesgames.itch.io/towerfall" target="_blank">TowerFall Ascension</a>. </strong><strong>You must own the base game to play TowerFall Dark World!</strong>
</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/HACkGetEWc4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjQ5NjIvOTk3OTMucG5n/original/%2By0mPd.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjQ5NjIvOTk3OTQucG5n/original/Z%2BygX4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjQ5NjIvOTk3OTIucG5n/original/5ZlOQv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjQ5NjIvOTk3ODkucG5n/original/IHneQE.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjQ5NjIvOTk3OTAucG5n/original/qs1hI3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjQ5NjIvOTk3OTYucG5n/original/%2Bg1iDA.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjQ5NjIvOTk3OTUucG5n/original/fHNZW5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjQ5NjIvOTk3OTEucG5n/original/VSyqqk.png]]
<p>Toybox Aviation is a&nbsp;physics based modular vehicle sandbox.</p>
<p>Construct airplanes from modular pieces&nbsp;and see how far they can fly.<br></p>
<p>The game is in early access&nbsp;and your <a href="https://discord.gg/oneratgames" target="_blank" rel="nofollow noopener" referrerpolicy="origin">feedback</a> is very welcome&nbsp;🛩️<br><br>Follow us <a href="https://twitter.com/toyboxaviation" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@toyboxaviation</a></p>
<p>✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈</p>
<p><u><strong>Features</strong></u></p>
<ul><li>Modular&nbsp;Vehicle Construction.</li><li>Physics Based Flight.&nbsp;</li><li>Many plane components each with flight effects.</li></ul>
<p>✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈<strong></strong></p>
<p><strong><u>Recent Changes</u></strong></p>
<ul><li>Improved flight Physics.</li><li>Improved flight camera.</li><li>Added Rudder.</li></ul>
<p><br></p>
<ul><li>Added WIP&nbsp;biplane wing with control surfaces (player controllable flight wing).</li><li>New flight camera.</li><li>New building parts (Biplane wing / tail, pointed / wing noise, large body component).</li></ul>
<p><br></p>
<ul><li>Fixed ground collision detection for long flights.</li><li>Adjusted flight camera.</li><li>New flight physics.</li></ul>
<ul><li>Added flight camera.</li><li>Fixed UI scaling.</li><li>Fixed load bug on start.</li><li>Fixed phantom forces causing planes to curve unexpectedly.&nbsp;</li><li>Fixed propellers getting stuck on or off.</li><li>Various UI changes.&nbsp;</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvODQ0ODg4LzQ3NDQ2MDQuZ2lm/original/ALY7Mb.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvODQ0ODg4LzQ3NDQ2NjkuZ2lm/original/9qrJ1p.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvODQ0ODg4LzQ3ODczNjYuZ2lm/original/EpUBsX.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvODQ0ODg4LzQ3NDMxODIucG5n/original/QIn5pN.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODQ0ODg4LzQ3NDU0MDMuanBn/original/5XcNz1.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvODQ0ODg4LzQ3NDMxODYucG5n/original/IDcXUr.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODQ0ODg4LzQ3NDQ1MDMucG5n/original/EqHkY4.png]]

<p></p>
<blockquote>Six years have passed since<br>your lover left&nbsp;<strong>Earth</strong>.<br>
<br>Six years you’ve spent on a<br>ship in the quiet of&nbsp;<strong>Space</strong>,<br>trying to find them.<br>
<br>You sit at the edges of the&nbsp;<strong>Universe</strong>,<br>reserves low, watching life go on.<br>
<br>With no way home, all you can do is<br>send your<strong>&nbsp;last transmission</strong>…
</blockquote>
<p>Transmission for Them is a solo journaling game about reflecting on your odyssey across the stars, the people you met, the places you went, the obstacles you faced and, of course: the reason you went,&nbsp;<em><strong>t</strong><strong>hem.</strong></em>
</p>
<p><a href="https://peregrinecoast.store/product/transmission-for-them/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Crowdfunding now!</a><em>&nbsp;Available in April.</em></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/zO78mSLJOxY" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQwMDAwMS84MTU4OTY4LmpwZw==/original/ojpPm1.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQwMDAwMS84MTU4OTY5LmpwZw==/original/FuIZrQ.jpg]]
<p>Many centuries ago, the humans - already spreading slowly and meticulously through space - discovered a Wormhole. &nbsp;Any object passing through the Wormhole would re-appear, instantly, light-years away in an uncharted sector of space. On the other end of the Wormhole was a paradise: a large cluster of planets teeming with resources, all quite like Earth.</p>
<p>A home away from home.</p>
<p>It wasn't long before the different planets back home began colonizing &nbsp;these new worlds. Over time, anybody with the cash went through, taking their infrastructure with them.</p>
<p>Not you, though. You’re one of the teeming masses, stuck at the old homestead, hanging out with Sol.</p>
<p>On the bright side, the rich people left all their junk behind.</p>
<p>---</p>
<p>Trash Planet is a simple, lightweight game of radical crafting in a post-industrial world. It features grimsical creatures and setting, easy mechanics, and plenty of ways to get into trouble! The gameplay loop is simple and satisfying: get into trouble looking for useful objects, and use your objects to try to get out of trouble. The best part is a mechanic for escalation: get what you want, but only by complicating things for everyone!&nbsp;The next print of Trash&nbsp;Planet! is in the works, but in the meantime, enjoy this silly, fun little game in it's original, DIY state.&nbsp;</p>

[img width=500 [https://img.itch.zone/aW1nLzIyMTgxMDcuanBn/original/lqXjjU.jpg]]
<p>This is a ttrpg game for 2-6 players based around the concept of "Oops! All Warlocks!" and Music Divas and singing competitions</p>

[img width=500 [https://img.itch.zone/aW1nLzgwNzgxOTkucG5n/original/iz9Y5b.png]]
<p>It’s Halloween and it’s time to Trick-or-Treat! You are excited for the candy gathering fun! The only issue is that there are some places that are haunted by some spooky monsters. Every year, you tell yourself that you will overcome your fear and face them! Will this year be different? Go trick-or-treating to collect <strong>Treats</strong> and <strong>Tricks</strong> to increase your <strong>courage</strong> and <strong>supplies</strong> to overcome your fear and beat those monsters once and for all before you have to head home before bedtime!</p>
<p><strong>What you will need:</strong>
</p>
<ul><li>A deck of playing cards
</li><li>A token to act as a marker (could be a small toy, or coin, or a candy still in its wrapper)
</li><li>A way to record your game&nbsp;
</li><li>1d10</li></ul>
<p>The game is meant to capture the child-like magical excitement of trick-or-treat. You play as a child going trick-or-treating on their own for the first time&nbsp;in their neighborhood. Everyday interactions are now turned into Halloween magic!</p>
<p>Trick-or-Treat Carta is a solo ttrpg using the Carta System. Cards are laid out in a grid which represents the neighborhood and where you will go trick-or-treating.&nbsp;
</p>
<p><strong>This work is based on the Carta system (found at <a href="https://peachgardengames.itch.io/carta-srd">https://peachgardengames.itch.io/carta-srd</a>), from Cat McDonald and Peach Garden Games, and licensed for use under the Creative Commons Attribution 3.0 Unported license (<a href="http://creativecommons.org/licenses/by/3.0/" rel="nofollow noopener" referrerpolicy="origin">http://creativecommons.org/licenses/by/3.0/</a>)</strong><strong>.</strong></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI1MDIwNi83Mjg1Njk4LnBuZw==/original/rbMnrq.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1MDIwNi83Mjg2MzgwLnBuZw==/original/S67BBO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1MDIwNi83Mjg2Mzg0LnBuZw==/original/6om9FJ.png]]
<p><em><br></em></p>
<p><em>Troika!</em>&nbsp;<em>Numinous Edition</em>&nbsp;is the new edition of our popular&nbsp;<em>Troika!&nbsp;</em>RPG, a complete science-fantasy tabletop RPG full of critically acclaimed writing, built-in wonder and room for everyone at the table to go wild!
Inside the book you will find:</p>
<ul><li>A fully automated character creation system that generates exciting starting points for players to build upon</li><li>Weighty lists of spells and enemies to encounter</li><li>A baked-in plane-hoping setting which draws you into the world and allows you space to build upon its sturdy foundations</li><li>Lavishly illustrated by Jeremy Duncan, Dirk Detweiler Leichty, Sam Mameli, and ENnie&nbsp;award winning Andrew Walter</li></ul>
<p>
Book Details</p>
<ul><li>Hyperlinked PDF:&nbsp;116 pages</li><li>Publisher:&nbsp;Melsonian&nbsp;Arts Council (13&nbsp;Mar. 2019)</li><li>ISBN:&nbsp;978-0-9957567-2-4</li><li>Physical copies available from <a href="http://www.melsonia.com" rel="nofollow noopener" referrerpolicy="origin">www.melsonia.com</a></li></ul>
<p></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/FNDNBlBP3Mw" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzkyODUxLzE5NDYwMDAuanBn/original/Wjwgpm.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzkyODUxLzE5NDU5OTEuanBn/original/bcfBWl.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMzkyODUxLzE5NDU5OTMuanBn/original/8w8VYj.jpg]]
const fs = require('fs')

// capitalise .jpg filenames everywhere they're referenced
// fix image relating to file: instead of file-

//const wikiPath = "../tenforwardwiki/www.skynet.ie/_leanaht/mopic/wikinew/";
const wikiPath = "../gsocwiki/www.skynet.ie/_leanaht/gsocwiki/";



var tiddlers = {};


	let months = {
		"January": "01",
		"February": "02",
		"March": "03",
		"April": "04",
		"May": "05",
		"June": "06",
		"July": "07",
		"August": "08",
		"September": "09",
		"October": "10",
		"November": "11",
		"December": "12",
	}

go();


/*

{
  "created": "20210507093048102",
  "text": "",
  "value": "83",
  "title": "Birthdays",
  "tags": "Expenses Gifts [[Bank: Monzo]] [[Pot: Gifts]] 💸",
  "modified": "20210527095550389"
}

*/

async function go(){
	var tiddlers = [];
	let rawdata = fs.readFileSync('palestineBundleGames.json');
	let games = JSON.parse(rawdata);
	//console.log(games);
	for (let i=0,j = games.length;i<j;i++){
		var game = games[i];
		var tiddler = {}
		tiddler.title = game.title;
		tiddler = addMoreInfo(tiddler,game.moreInfo);
		tiddler.url = game.url;
		if (game.description){tiddler.text = game.description}
			if (game.youtubeUrl){
				tiddler.text = tiddler.text + `\n\n<iframe width="720" height="450" src="${game.youtubeUrl}" frameborder="0" allowfullscreen></iframe>`;
			}
		if (game.screenshots){tiddler.text = addImages(tiddler.text,game.screenshots)}
		tiddlers.push(tiddler);
	}
	saveJsonToFile(JSON.stringify(tiddlers));
}

function addMoreInfo(tiddler,moreInfo){
	var keys = Object.keys(moreInfo);
	var tags = []
	for (let i=0,j = keys.length;i<j;i++){
		var key = keys[i];
		var twKey = keys[i].replace(/\s+/g,"_")
		var value = "";
		if (key == "Tags"){
			tags.push(convertStringToArray(moreInfo[key]));
			continue; // we don't want to make a key/value pair for tags just yet
		}
		else if (key == "Accessibility"){
			value = convertStringToArray(moreInfo[key]);
			tags.push(convertStringToArray(moreInfo[key]));
		}
		else if (key == "Inputs"){
			value = convertStringToArray(moreInfo[key],true);
			tags.push(convertStringToArray(moreInfo[key]));
		}
		else if (key == "Authors"){
			value = convertStringToArray(moreInfo[key],true);
			tags.push(convertStringToArray(moreInfo[key]));
		}
		else if (key == "Accessibility"){
			value = convertStringToArray(moreInfo[key],true);
			tags.push(convertStringToArray(moreInfo[key]));
		}
		else if (key == "Platforms"){
			value = convertStringToArray(moreInfo[key],true);
			tags.push(convertStringToArray(moreInfo[key]));
		}
		else if (key == "Published"){
			value = moreInfo[key];
			tiddler.created = convertDateToTW(moreInfo[key]);
			tiddler.modified = convertDateToTW(moreInfo[key]);
		}
		else if (key == "Category"){
			value = moreInfo[key];
			tags.push(value);
		}
		else if (key == "Status"){
			value = moreInfo[key];
			tags.push(value);
		}
		else if (key == "Author"){
			value = moreInfo[key];
			tags.push(value);
		}
		else if (key == "Genre"){
			value = moreInfo[key];
			tags.push(value);
		}
		else if (key == "Average session"){
			value = moreInfo[key];
			tags.push(value);
		}
		else{
			value = moreInfo[key];
		}
		tiddler[twKey] = value;
	}
	tiddler.tags = tags;
	return tiddler;
}

function addImages(text,urls){
	text = text + `\n\n`;
	for (let i=0,j = urls.length;i<j;i++){
		var url = urls[i];
			text = text + `[img width=500 [${url}]]`;
		}
	return text;
}


function pad(n, width, z) { // https://stackoverflow.com/a/10073788
  z = z || '0';
  n = n + '';
  return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
}




function convertDateToTW(date){
	//console.log(date);
//	var regex = /(\d+):(\d+), (\d+) (\w+) (\d+)/
	console.log(date);
	var regex = /(\d\d) (\w+) (\d\d\d\d) @ (\d\d):(\d\d)/
	var regexedDate = date.match(regex);
	var hour = regexedDate[4].toString();
	var minute = regexedDate[5].toString();
	var date = pad(regexedDate[1],2).toString();
	var month = months[regexedDate[2]].toString();
	var year = regexedDate[3].toString();
	var twDate = year + month + date + hour + minute + "000";
	console.log(twDate);
	return twDate;
}


function capitaliseFirstLetter(string){
	return string.charAt(0).toUpperCase() + string.slice(1);
}

function convertArrayToTWArray(arr){
	var finalTags = "";
	for (let i=0,j = Array.length;i<j;i++){
		var item = arr[i].trim();
		finalTags = finalTags + ` [[${item}]]`;
	}
	return finalTags;
}

function convertStringToArray(string,twArray=false){
	var finalArray = []
	if (!string.includes(",")){finalArray.push(string)}
		else{
			finalArray = string.split(",");
		}
	if (twArray){
		return convertArrayToTWArray(finalArray);
	}
	else{
		return finalArray;
	}
}



function convertTiddlerObjectToArray(tiddlers){
	var finalArray = []
	for (tiddler in tiddlers){
		finalArray.push(tiddlers[tiddler]);
	}
	return finalArray;
}

function saveJsonToFile(json){
	//let data = JSON.stringify(student);
	fs.writeFileSync('tiddlers.json', json);
}

<p><em>Twelve Hundred Words</em>&nbsp;is a series of&nbsp;<strong>five tiny tabletop RPGs</strong>; each one is exactly two hundred words and then all the other words in this 12-page zine add up to exactly the titular value. These games represent, in the abstract,&nbsp;<strong>my experiences with having OCD and Anxiety</strong>.</p>
<p>The five games included are:</p>
<ul><li>&nbsp;<em>You Have Many Thoughts, and Your Thoughts Beget More Thoughts</em>&nbsp;wherein your inspirations, goals, and anxieties spiral out of your control.</li><li>&nbsp;<em>Upon Thy Bardsong</em>&nbsp;wherein action and conflict are resolved with singing.</li><li>&nbsp;<em>Deceiviest</em>&nbsp;wherein you lie to others and to yourself.</li><li>&nbsp;<em>Love, Foundational</em>&nbsp;wherein you can only act on love and its ties.</li><li>&nbsp;<em>All A Game</em>&nbsp;wherein anything and everything can be made into a game.</li></ul>
<p>Mercedes "Cibby" Acosta provides&nbsp;<strong>beautiful and rich illustrations</strong>&nbsp;that frame each game, employing subtle symbolism and drawing from personal experience.&nbsp;</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDg2ODI3LzI1MTM5NjUucG5n/original/Mxj%2FFO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg2ODI3LzI1MTM5NjQucG5n/original/fm7O5U.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDg2ODI3LzI1MTM5NjYucG5n/original/q75Ug1.png]]
<p><em>You know that Stephen King book, with the scary clown? Well imagine that: last summer, I scrammed from the big city with my parents, and I went through a crazy adventure in the boondocks with my pals! We got way scared, we had some fun, I even got a girlfriend for a while... I could’ve made a novel out of it. Would have gotten myself the Booker Prize for sure (though I swear it’s all true!).</em><em> <em>But I turned it into a roleplaying game instead! And just like in King’s novel, I started to think about how things would be if our adventure weren’t finished and 30 years later, we’d be back there, tying up things! That’s why I’m calling the game </em></em>2 Crazy Summers<em><em>: short and to the point. In a nutshell: we’ll play teens who go adventuring during the summer and the same characters as adults!  					
 				
 			
 		
 	 </em></em></p>
<p><strong><em><br></em></strong></p>
<p><strong><em><img src="https://img.itch.zone/aW1nLzYwODM2NDAucG5n/original/lg9tPK.png" loading="lazy"><br></em></strong></p>
<p><strong><em></em></strong>
  </p>
<p><strong><span class=""><span class=""><em>TWO SUMMERS</em></span></span> </strong>is a tabletop RPG for a GM and 3 to 5 players, who take the role of the same characters at two different time periods: as <span class="">teenagers in the 1990s</span>, living an unforgettable adventure, and as<span class=""> adults 30 years later</span>, coming back to the same place and realizing the adventure is not over. The game is conceived for campaigns of 7-8 sessions, lasting around 3 hours each.<br><br></p>
<p><img src="https://img.itch.zone/aW1nLzYwODM2NDIucG5n/original/7v1Owu.png" loading="lazy"><br></p>
<p><br>You'll like this game if you enjoy <span class="">light drama, sunny adventures and good-hearted nostalgia</span>! Its diceless system is deliberately very simple: you can explain it in a few minutes and its summary fits on a single page, so as to better put a greater emphasis on storytelling and roleplaying.</p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzYwODM2NDYucG5n/original/0D0l40.png" loading="lazy"><br></p>
<p><br></p>
<p>The zine features a <span class="">complete game system </span>plus everything you need to build your own campaign within its 60 pages:
 </p>
<ul><li>Instructions to create characters and a relation map through a "session zero"
</li><li>A thorough guide helping you to <span class="">create your own <em><strong>TWO SUMMERS </strong></em>campaign</span>, including advice, step by step examples and <span class="">25 semi-prepared subplots</span> to insert into your story
</li><li>Players and GM advice</li><li>A character and GM sheet</li><li>Beautiful illustrations and a full-color layout!</li></ul>
<p><br><img src="https://img.itch.zone/aW1nLzYwODM2NDgucG5n/original/rZc0Dx.png" loading="lazy"><br></p>
<ul><li>Discover <em>Two Summers</em>' demo version, freely available: <a href="https://emojk.itch.io/two-summers-first-holiday-memories" target="_blank">https://emojk.itch.io/two-summers-first-holiday-memories</a><br>
</li><li>Discover <em>Other Summers</em>, a supplement for the game: <a href="https://comemartin.itch.io/other-summers">https://comemartin.itch.io/other-summers</a></li><li>Join the game's Discord server: <a href="https://discord.gg/MqGY4CJ" rel="nofollow noopener" referrerpolicy="origin">https://discord.gg/MqGY4CJ
</a>
</li></ul>
<p><img src="https://img.itch.zone/aW1nLzYwODM2NDkucG5n/original/UvOTxK.png" loading="lazy"><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA1OTkzMi82MDc1NDEyLmpwZw==/original/tBDQY%2B.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1OTkzMi82MDc1NDE1LmpwZw==/original/sz3JM8.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1OTkzMi82MDc1NDE2LmpwZw==/original/JLJB4G.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1OTkzMi82MDc1NDEzLmpwZw==/original/Flk83n.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1OTkzMi82MDc1NDE0LmpwZw==/original/8Xow4E.jpg]]
<p>Finally, a typing game with the entire of James Joyce's Ulysses in it. In "Type The Entire Of Ulysses. That's It. That's The Game." you will type out Ulysses and pretty much nothing else.</p>
<p><strong>But why?</strong><br></p>
<p>I made this for the "This Game is Way Too Long" jam and I quite like Ulysses.</p>
<p><strong>Who in the right mind would play this?</strong></p>
<p>It could be you! I mean people play Desert Bus, why not this?</p>
<p><strong>Hot Keys</strong><span></span></p>
<ul><li><strong>Ctrl + P</strong>&nbsp;- Pause
</li><li><strong>Tab</strong>&nbsp;- show/hide&nbsp;stats (in game)</li><li><strong>Ctrl + F</strong>&nbsp;- Full screen</li><li><strong>Ctrl + S&nbsp;</strong>- Skip current music track</li><li><strong>Ctrl + E</strong> - Auto-type one character of text</li></ul>
<p><strong>Other Stuff</strong></p>
<p>Technical note: This game involves some pretty heavy string processing and loading times may be slow (About 2&nbsp;minutes for extremely long chapters - I'm looking at you, Chapter 15).</p>
<p>This game is a mod of my game,&nbsp;<a href="https://eatkin.itch.io/a-relaxing-typing-game" target="_blank">A Relaxing Typing Game</a>.</p>
<p>Some of the backgrounds are licenced under CC 3.0:&nbsp;<a href="https://creativecommons.org/licenses/by/3.0/" rel="nofollow noopener" referrerpolicy="origin">https://creativecommons.org/licenses/by/3.0/</a>
</p>
<p>Music by DOS-88 is licenced under CC 4.0:&nbsp;<a href="https://creativecommons.org/licenses/by/4.0/" rel="nofollow noopener" referrerpolicy="origin">https://creativecommons.org/licenses/by/4.0/</a>
</p><p>Additional music by JustWall Music, listen here:&nbsp;<a href="https://justwallmusic.bandcamp.com/album/a-relaxing-typing-game-soundtrack" rel="nofollow noopener" referrerpolicy="origin">https://justwallmusic.bandcamp.com/album/a-relaxing-typing-game-soundtrack</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/3w69k9zCrGU" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE4NjM3Ny82OTE3Mzc0LnBuZw==/original/8fsJgy.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE4NjM3Ny82OTE3Mzc1LnBuZw==/original/f8f1cS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE4NjM3Ny82OTE3Mzg4LnBuZw==/original/6dJ8ay.png]]
<p class="text-center">Ug! a caveman game you control with your voice. 
</p>
<p class="text-center">If a caveman is near and you call out "UG!, UG!, UG!" they will follow you!&nbsp;<br>Lead your fellow cavemen to safety, avoid hazards and dangers.</p>
<p class="text-center">&nbsp;
</p>
<p class="text-center">Current Features:
</p>
<p class="text-center">Unique Gameplay,<br>10 Levels (more to come),<br>Gamepad Support.</p>
<p class="text-center"><strong>&nbsp;You need a microphone to play this game</strong></p>
<p class="text-center">&nbsp;The game is early access, we want to update the game with suggestions and feedback from the community.</p>
<p class="text-center">The current demo and paid build are the same so you can try the game out.<br>The only difference is the paid version will get updates and entitles you to a key for the games full release.<br>Price reduced while in development.&nbsp;</p>
<p class="text-center">Join our Discord:&nbsp; <a href="https://discord.gg/7SvZVygK79" rel="nofollow noopener" referrerpolicy="origin">https://discord.gg/7SvZVygK79</a>
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI1MzM3MS83MzA0Mjk0LnBuZw==/original/q8kyJ4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1MzM3MS83MzA0MjkwLnBuZw==/original/8grMoU.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1MzM3MS83MzA0MjkxLnBuZw==/original/B9fLXG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI1MzM3MS83MzA0NjIyLmpwZw==/original/QI3Roy.jpg]]
<p><span class="">When the world falls apart it is the job of the survivors to build it back up again better than it was before. The old ways of justice where flawed and fraught with loopholes… well no longer.&nbsp;</span></p>
<p><span class="">Introducing <strong>Ultimate Zombie Death Ball</strong></span></p>
<p><span class=""> a pure justice system for our post-apocalyptic times. All crimes will be treated as equal and will result in a trip to the Zombie Dome.&nbsp; </span><span class="">We are all equal in the ravenous eyes of Zombie Lady Justice. Only the strongest, fastest and most innocent will survive. Come out and watch the spectacle of our modern justice system, see as the guilty are devoured and the innocent earn their freedom.</span></p>
<h2><span class="">An Undead Head to Head</span>
</h2>
<p><span class=""></span><span class="">Ultimate Zombie Death Ball is a 1v1 arena sports game set in a zombie apocalypse. The object of the game is to get a ball in your opponent’s net, while being chased by a hoard of hungry zombies. Also, the ball is electrified, and will stun you if you kick it. Luckily, the zombies can kick it for you. You can get them to do this by having them chase you, or by throwing meat on the field for them to chase instead. After 3 minutes&nbsp;play is over, and the&nbsp;winner is whoever has more goals.</span></p>
<h2><span class="">Controller required!<br></span></h2>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/WBVhCp_jGPM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTIyNzQ2NC83MTU3NzAwLnBuZw==/original/6Ko%2Bu%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIyNzQ2NC83MTU3Njk1LnBuZw==/original/JL2fPz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIyNzQ2NC83MTU3Njk2LnBuZw==/original/GFoEGJ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIyNzQ2NC83MTU3Njk0LnBuZw==/original/1KosNH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIyNzQ2NC83MzE0NjA1LmpwZw==/original/Kh%2FcqH.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIyNzQ2NC83MzE0NjA0LmpwZw==/original/jUNN2u.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTIyNzQ2NC83MzE0NjA2LmpwZw==/original/swv4Hz.jpg]]
<p style="text-align: center">
	<img src="https://kitsunegames.com/images/itch/hats.png" loading="lazy">
</p>
<p>
	<img src="https://kitsunegames.com/images/itch/bea.gif" align="right" loading="lazy">
</p>
<h3>The power of Hats compels you to avoid punches!</h3>
<p>
	Ultra Hat Dimension is a puzzle game about adorable hats and people getting punched for wearing them. The catch is that the player can't punch anyone; instead, they must use the power of hats to convince others to do the punching for them. Find and defeat the Spluff responsible for all this chaos!
</p>
<p>Explore through the levels of the majestic Spluff Palace to find and defeat your arch-nemesis!
</p>
<h3>
Features:
</h3>
<ul>
	<li>Four kinds of adorably pixeled hats</li>
	<li>Charming music<img src="https://kitsunegames.com/images/itch/spluff.gif" align="right" loading="lazy">
	</li>
	<li>An epic puzzley boss battle</li>
        <li>New undo function!</li>
        <li>New animated introductory cutscene!</li>
</ul>
<h3>Links</h3>
<ul>
	<li><a href="https://kitsunegames.com/uhd/maps/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Custom Maps</a></li>
	<li><a href="https://yuzuki.bandcamp.com/album/ultra-hat-dimension" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Original Soundtrack</a></li>
	<li><a href="https://kitsunegames.com/press/sheet.php?p=ultra%20hat%20dimension" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Press-kit</a></li>
</ul>
<p style="text-align: center">
	<img src="https://kitsunegames.com/images/itch/hats.png" loading="lazy">
</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/HFlzuabFw9o" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDQzMjkvMzg4MjE2Mi5wbmc=/original/8ItmK6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQzMjkvMzg4MjE2OC5wbmc=/original/4HsCrG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQzMjkvMzg4MjE2Ny5wbmc=/original/qUEnDd.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQzMjkvMzg4MjE2NC5wbmc=/original/L0z0Wk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQzMjkvMzg4MjE2Ni5wbmc=/original/bLZRlj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQzMjkvMzg4MjE2My5wbmc=/original/GleLtW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDQzMjkvMzg4MjE2NS5wbmc=/original/MTKFP5.png]]
<p><strong><img src="https://img.itch.zone/aW1nLzQ0MjEzMTEucG5n/original/W4gsNO.png" loading="lazy"><br></strong></p>
<p><strong>UMBRA: A Solo Game of Final Frontiers </strong>is a map drawing game that puts you in control of a sci-fi colony as you struggle against starvation, the void, and the many threats that will assail you from above and below. This 48 page zine has everything you need to generate natural formations, alien ruins, enemies, technologies, and forgotten terrors. It has a simple turn-based combat system, rules for building your colony and optional challenges for a harder experience.</p>
<p>Inspired by games like Rimworld and Dwarf Fortress, <strong>UMBRA </strong>aims to capture the feeling of building and protecting a colony on an unforgiving alien planet.</p>
<p>All you to play is, a pencil, paper (preferably 1" grid), and a deck of playing cards.</p>
<figure><br><img src="https://img.itch.zone/aW1nLzQ0MjEyNzAucG5n/original/ncvDrP.png" loading="lazy"><br></figure>
<p><em><em><br></em></em></p>
<p><em><em><em>The Galactic War rages on as an overwhelming alien force picks its way planet by planet to our core systems. Our only hope rests on the legend of a super weapon called The Reaper's Gambit. Find that weapon, win the war, no matter the cost.</em></em></em></p>
<p></p><em><em>
<p>Each round your workers will mine a square of the grid, you draw a card from your deck of playing cards and see what they found. Hearts ♥ and Diamonds ♦ are resources and funding that you'll use for building and hiring units while Clubs ♣ and Spades ♠ are natural formations and alien ruins. From alien probes and deactivated warmachines to toxic waste and boiling rivers, these strange discoveries will become part of your colony's layout and may provide unexpected benefits. Or you may just unleash an alien supersoldier, in which case you'll have to fight.<br></p>
<p>Combat in <strong>UMBRA</strong> is designed to allow for forward planning and strategic thinking without weighing you down with book-keeping. Enemies follow a tower-defense style path towards your hold's entrance while you move your units in simple turn-based tactical combat. Utilise security systems, ranged attacks, and special units to face deadly foes or record your colony's epic demise.</p>
<p><strong>UMBRA</strong> will also be supported with ongoing updates and expansions which bring new features such as space stations (coming soon), alien civilisations, madness, and more. <br>Or you can check out <strong><a href="https://blackwellwriter.itch.io/rise-a-game-of-spreading-evil">RISE</a> </strong>(a dungeon building variant which tasks you with keeping your mutinious minions happy) or <a href="https://blackwellwriter.itch.io/delve-a-solo-map-drawing-game"><strong>DELVE</strong></a><strong> </strong>(the dwarf hold building game which kicked off the series).<em><em><strong><br></strong></em></em></p>
<p><em><em><strong>Join the Discord - <a href="https://discord.gg/wr9x25s" rel="nofollow noopener" referrerpolicy="origin">https://discord.gg/wr9x25s</a></strong></em></em><br></p>
<p><strong>Physical Copies can be ordered from <a href="https://www.blackwellwriter.com/" rel="nofollow noopener" referrerpolicy="origin">https://www.blackwellwriter.com/</a></strong><em><em><strong></strong></em></em></p>
</em></em><h2>Expansions</h2><ul><li><a href="https://blackwellwriter.itch.io/umbra-stations-expansion">Stations</a></li><li><a href="https://blackwellwriter.itch.io/umbra-cyberspace-expansion">Cyberspace</a></li></ul>

[img width=500 [https://img.itch.zone/aW1nLzQ0MjEzNDQucG5n/original/ETOmcE.png]]
<p><em>Includes instrumentals for tracks 2-8 as bonus tracks.</em></p>
<p>UNBEATABLE: DEMO TAPES is the official soundtrack for UNBEATABLE [white label] - a special episode set in the world of UNBEATABLE. We will be updating DEMO TAPES with new music each time [white label] is updated, so please check back regularly!<br><br>You can play UNBEATABLE [white label] here:<br><a href="https://dcellgames.itch.io/unbeatable-white-label">https://dcellgames.itch.io/unbeatable-white-label</a><br><br>DEMO TAPES is separate from the final UNBEATABLE soundtrack, which will be released when UNBEATABLE is complete. All mixes presented in DEMO TAPES are not final and are subject to change in the full game.</p>

[img width=500 [https://img.itch.zone/aW1nLzYxMjg2NjQuanBlZw==/original/rNZdLE.jpeg]]
<p><strong>Build turrets the other way around!</strong><br></p>
<p>Here you have 20 completed building block constructs.</p>
<p>Can you take it brick by brick without anything falling to the ground?</p>
<p>Which stone you can take away</p>
<p>determined by chance!</p>
<p>Have fun dismantling!</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/j67TzvLwRyw" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTg4NjE5LzU2MjUzMzMucG5n/original/zvkH8y.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTg4NjE5LzU2MjM2MDAucG5n/original/NIsKx8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTg4NjE5LzU2MjM2MDEucG5n/original/lexLVu.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTg4NjE5LzU2MjM2MDIucG5n/original/9fHDsv.png]]
<div class=""><iframe style="width: 500px; height: 281px" src="https://www.youtube.com/embed/-xS2XRP6ups" allowfullscreen="" frameborder="0"></iframe></div>
<p><br></p>
<iframe style="width: 500px; height: 281px" src="//www.youtube.com/embed/BoetX9BOUDc" allowfullscreen="" frameborder="0"><br></iframe>
<h1>Description:</h1>
<p>Underhero is a 2D side-scroller RPG adventure game with turn-based combat… without the turns! Precisely timed actions are your most powerful weapons. It tells an intriguing and mysterious story, full of silly characters brimming with personality, quirky dialogue, and lots of weird humor.<br></p>
<p>Inspired by Paper Mario and other Nintendo RPGs. It tells the story of a world where the chosen hero has failed and an underling of the main villain takes his place as the new “hero”. Join Elizabeth IV and the little Masked Kid as they journey across the Chestnut Kingdom to defeat your evil boss, Mr. Stitches! Meet friends, foes and other weird characters in the mysterious world of Underhero.</p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p><strong>
<h1>Features:</h1>
<ul><li>    Turn-based combat with a twist: <strong>there are no turns!</strong> Use your reflexes to <strong>evade,</strong> and your timing to <strong>attack</strong> or <strong>parry!</strong> We call it <em>timing-based combat.</em>
</li><li>    A sidescrolling RPG adventure full of beautiful pixel art and cartoony aesthetics.
</li><li>    A wonderful original soundtrack composed by <strong>Stijn van Wakeren.</strong>
</li><li>    Enemies consider you their ally, so talk to them in-battles for tips, jokes, and lore!
</li><li>    Hit enemies with the beat of the music for <em>Groovy~</em> critical hits!  </li><li>    Explore worlds sprinkled with many hidden secrets.
</li><li>    Fun and intense boss battles!
</li><li>    <em>A story shrouded in mystery, with many twists and turns…</em></li></ul>
<ul><img src="https://img.itch.zone/aW1nLzE0NjY5MjQucG5n/original/yuA0Jd.png" loading="lazy"><br></ul>
</strong><p><strong></strong><br></p><p><strong></strong><br></p>
<p><strong></strong><br></p>
<p><strong></strong><br></p>
<p><strong></strong><br></p>
<p><strong><em>**Seizure Warning** </em><strong><br></strong></strong><em></em><em>Certain moments in the game contain flashing lights and/or imagery that may cause discomfort or seizures for those with photosensitive epilepsy.</em><em></em><strong><br></strong></p>
<p>////</p>
<table><tbody></tbody></table>
<h4><strong>Important links below!</strong></h4>
<h4></h4>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p><strong>
<p>&nbsp;<a href="http://underherogame.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Website</a> - <a href="http://underherogame.com/presskit" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Presskit</a> - <a href="http://store.steampowered.com/app/573320/Underhero/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Steam </a>- <a href="https://gamejolt.com/games/underhero/266877" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Gamejolt</a> - <a href="https://twitter.com/Underherodevs" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter</a> - <a href="https://discord.gg/ukNrGV5" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Discord</a> - <a href="https://underherodevs.tumblr.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Dev Blog<br></a></p>
<h3><strong><a href="https://papercastlegames.itch.io/underhero-art-book" target="_blank">You can get the Underhero Art Book for free right here!</a><br><br>Demo available!</strong><em></em><strong><br></strong></h3>
<ul><li>Only Xbox 360 and Xbox One controllers supported. <strong>(Full game supports key binding and controller remapping options for all controller brands.)</strong></li><li>Windows only.</li><li>Have fun!<strong><em></em></strong></li></ul>
</strong><p><strong></strong><br></p><p><strong></strong><br></p>
<p><strong></strong><br></p>
<p><strong></strong></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/-xS2XRP6ups" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzYwMjkvODQ5NzUxLnBuZw==/original/okCGwM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzYwMjkvODQ5NzYyLnBuZw==/original/FfbK8u.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzYwMjkvODQ5NzU4LnBuZw==/original/MA4pGr.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzYwMjkvODQ5NzUzLnBuZw==/original/K5Le8h.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzYwMjkvODQ5NzU1LnBuZw==/original/zKRYG%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzYwMjkvODQ5NzYwLnBuZw==/original/9Cnp4F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzYwMjkvMTQ5MDM0MS5wbmc=/original/JcZB37.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzYwMjkvMTQ5MDM0Mi5wbmc=/original/RI1hK7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzYwMjkvMTQ5MDM0NC5wbmc=/original/U%2BFYYd.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzYwMjkvMTQ5MDM0OS5wbmc=/original/OgSYK3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzYwMjkvMTQ5MDM1MS5wbmc=/original/vGhgRP.png]]
<p><em>"Who Was I Meant To Be?"</em></p>
<p><br>A hand-sketched 3D adventure-platformer. Control Sketch, unfinished and wishing to know who it was supposed to be. The only clue is to follow a pencil that continues to draw in the distance, followed by an artist’s voice as he struggles to complete his work. To reach new areas, the doodle will find left-over sketches to use for new abilities throughout the journey.</p>
<ul><li>Collect abandoned sketches of other ideas as new swappable abilities, letting Sketch jump, run, fly, and more to progress through the environment.<br>
</li><li>Featuring traditional 2D animation in a 3D environment filled with crumpled paper and unfinished drawings from the developer and 25 other artists.<br>
</li><li>A short story of the art and his artist told in parallel, of themes of acceptance and self-discovery.
</li></ul>
<p>DISCLAIMER: this game is 5 levels long, and it is possible to finish this game in under 30 minutes.</p>
<p><br></p>
<p><em>Minimum System Requirements:</em>
</p>
<p>CPU: Intel Core 2 Duo or better (x86 or x64)
</p>
<p>GPU:&nbsp;Intel HD Graphics 3000
</p>
<p>RAM: 2 GB (32-bit system)&nbsp;or 4 GB (64-bit system)
</p>
<p>Storage: 800 MB available</p><p>OS Notes:&nbsp;Linux 32-bit recommended for native build<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/xkK2gkSm-dU" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAwOTg5MC81NzYzMTM0LmpwZw==/original/D%2BVaDu.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwOTg5MC81NzYzMTM1LmpwZw==/original/1L1sr2.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwOTg5MC81NzYzMTM5LmpwZw==/original/AcgAC6.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwOTg5MC81NzYzMTQyLmpwZw==/original/8HLGFQ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwOTg5MC81NzYzMTQ1LmpwZw==/original/IEF8sS.jpg]]
<p>Juni Melrose learns that the world is bigger than anyone realized.<span></span></p>
<p>This is also available <a href="https://gum.co/unity-1-pb" rel="nofollow noopener" referrerpolicy="origin">in print form</a>.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjgwMzcvMTEyNzQ0Ni5qcGc=/original/U6Gbw%2F.jpg]]
<p>Book 2 of Unity. See what sorts of messes Juni left behind.</p>
<p>This book is also available&nbsp;<a href="http://gum.co/unity-2-pb" rel="nofollow noopener" referrerpolicy="origin">in print form</a>.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjgwMzgvMTEyNzQ1MC5qcGc=/original/iGRaT0.jpg]]
<p>As fairy princesses you are sworn to defend your land and your people, and are given strong magic to do so. Alas, you are not so good at controlling your magic as your parents and things go awry as much as they go well.</p>
<p>Create your own stories from the table prompts, use your magic to overcome problems and then deal with the problems you created in the process.</p>
<p>The fourth in the Comedy Evening series, The Unnamed Fairy Princess Game was spawned by a fellow designer wishing they had a Fairy Princess Game. It was tough to find a way to make wish fulfilment also be funny but it met the brief with flying colours,&nbsp;I love the result and I think this is my favourite RPG design to date.&nbsp;</p>
<p><em></em><em>Do you need to be princesses? No. It’s just a trope. Be whatever you like.</em></p>
<p><em></em>A game for 2-6 players and optional story guide.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM3NTA3MS84MDA3ODg0LnBuZw==/original/jdPb9S.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3NTA3MS84MDA3ODc5LnBuZw==/original/rt%2B0y3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM3NTA3MS84MDA3ODgwLnBuZw==/original/1fhYu%2F.png]]
<p><img src="https://img.itch.zone/aW1nLzc3ODIxOTcuZ2lm/original/a3NS%2Bf.gif" loading="lazy"></p>
<p>Upsquid is an endless squid-em-up where you try to swim as high as you can without falling into the darkness! The game can be played with only two buttons - LEFT and RIGHT - you can use your keyboard or your gamepad to play!</p>
<table>
	<tbody>
		<tr>
			<td>
				<img src="https://img.itch.zone/aW1nLzcyOTE5NDMucG5n/original/wPETEI.png" loading="lazy">
			</td>
			<td>
				<h2>Hi Squid!</h2>
				Did you know that you can swim around by holding down a direction to turn, and then releasing it to jet off? Try to swim as high as possible! Just be careful not to fall too far or you'll fall asleep!
			</td>
		</tr>
		<tr>
			<td>
				<h2>Look at that little thing!</h2>
				If you catch ‘em, you can recharge your energy so you can continue jetting around! Catch as many as you can! If you can catch enough of ‘em quickly enough you can press down both directions and boost around at high speed!
			</td>
			<td>
				<img src="https://img.itch.zone/aW1nLzcyOTIxMjQucG5n/original/Ce4D%2Bv.png" loading="lazy">
			</td>
		</tr>
	</tbody></table>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDY3NzQvNzc4MjQxMS5naWY=/original/eTLmq1.gif]]

<p>In the darkness beyond Neptune, Tulsi and Dallas enjoy a life of crime, selling black market goods to spite the oligarchs on Mars. But the life of a frontier criminal always comes with risks: cops, crime lords, and...vampires?<br><br>After surviving a vampire attack on a mob-run space station, Tulsi and Dallas come up with a plan to destroy the bloodsuckers. A plan that will require reuniting their old team, pulling off an audacious heist, and bringing the fight to the vampires...with the help of some "borrowed" power armor.<br><br>Join the crew as they journey across the solar system in the fight to destroy the vampires and their hiding place beyond Neptune!</p>

[img width=500 [https://img.itch.zone/aW1nLzc3ODgyNzAucG5n/original/NSWLX%2B.png]]
<p>Race cars in classic motorsport style. Each corner is a chance to outmaneuver the other drivers, every straight a flat out drag race. Fast-paced strategy relies on your reflexes to pull off split second maneuvers. Feel your car's momentum, find the rhythm of the track, and drive like a racing driver.&nbsp;</p>
<p>Guide your car's driving line to take each corner quickly while finding a gap to overtake other drivers. On straights, be quick on your gears and late on the brakes to get to the corner first, always on the edge of spinning or crashing out. Spend an entire lap trying to close the distance to the car ahead, choosing the right corner to make your move. &nbsp;</p>
<p>Other drivers break your rhythm, forcing you to adapt your driving and how you tackle corners. Each track is unique and you have to learn the fastest route through corners and sections. Rain changes your car's behavior while you deal with decreased visibility. With a simple control scheme, victory will come from out-thinking and out-driving everyone else.&nbsp;</p>
<p>Inspired by the classic era of formula racing around the Mediterranean, each environment is a colorful and hand-built racetrack, all alongside an originally produced surf rock soundtrack.&nbsp;</p>
<p>Featuring</p>
<ul><li>Four player local and online multiplayer&nbsp;</li><li>Races award points to compete over a multi-race season</li><li>Single player practice to learn tracks and hone your driving</li><li>Twelve unique tracks and environments</li><li>Simple, three button controls are easy to learn&nbsp;</li><li>Different weather modes to add a twist to driving</li><li>Original surf rock soundtrack</li><li>Stylish Mediterranean locales</li></ul><iframe src="https://www.youtube.com/embed/v1ZlsxixlNY" frameborder="0" allowfullscreen=""></iframe><iframe src="https://www.youtube.com/embed/WyliYVHki0c" frameborder="0" allowfullscreen=""></iframe><p><em>Note: Online play requires Steamworks, but every purchase will come with a Steam key for no extra charge. Redeem the code on Steam and play online as you please.</em></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/v1ZlsxixlNY" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzQ0NjgvNzQ5MTkyLmdpZg==/original/esRl6R.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQ0NjgvNzQ5MTkxLmdpZg==/original/UjnYBS.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQ0NjgvNzQ5MTkwLmdpZg==/original/vumrI8.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQ0NjgvNzQ5MTk3LnBuZw==/original/HedJDV.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQ0NjgvNzQ5MTk2LnBuZw==/original/WewPYw.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQ0NjgvNzQ5MjAwLnBuZw==/original/wcccpm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQ0NjgvNzQ5MTk4LnBuZw==/original/eOwVCb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzQ0NjgvNzQ5MTk5LnBuZw==/original/RIg6Y6.png]]
<p class="text-center"><em>- </em><strong>Viral Reload</strong><em style=""> -</em></p>
<div class="text-center"><div class=""><div class=""><iframe width="500" height="281" src="https://www.youtube.com/embed/6cS9J36fCMQ" frameborder="0" allowfullscreen=""></iframe></div><br></div><br><br></div>
<p class="text-center">&nbsp; <img src="https://img.itch.zone/aW1nLzY5ODMyODEucG5n/original/2m6N%2F4.png" loading="lazy">&nbsp;&nbsp;<img src="https://img.itch.zone/aW1nLzY5ODE0NDkucG5n/original/VuD8a8.png" alt="Gameplay" title="Gameplay" loading="lazy"><br></p>
<p class="text-center"><strong><img src="https://img.itch.zone/aW1nLzcxNTgxNDMucG5n/original/KrdMHn.png" loading="lazy"></strong><br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzcxNjY3MTEucG5n/original/s1xlhN.png" loading="lazy"><br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzY5ODMxMDQucG5n/original/rBmvyw.png" alt="Screenshots" title="Screenshots" loading="lazy"><br></p>
<p class="text-center"><strong>&nbsp;<img src="https://img.itch.zone/aW1nLzY5ODMwNDQucG5n/original/Wcx1Bt.png" loading="lazy"><img src="https://img.itch.zone/aW1nLzY5ODMwNDYucG5n/original/NhtNDt.png" loading="lazy"><img src="https://img.itch.zone/aW1nLzY5ODMwNDcucG5n/original/kZkzde.png" loading="lazy"><img src="https://img.itch.zone/aW1nLzY5ODMwNTEucG5n/original/p0pmCX.png" loading="lazy"><img src="https://img.itch.zone/aW1nLzY5ODMwNjEucG5n/original/e2iha0.png" loading="lazy"><img src="https://img.itch.zone/aW1nLzY5ODMwNjQucG5n/original/2kz9rH.png" loading="lazy"></strong></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzY5ODM2MTUucG5n/original/1j0taU.png" loading="lazy"><br></p>
<p class="text-center">Viral Reload supports monitor's of every shape and size! You can play with a variety of borders to spruce up the edges of the screen, or focus with a black void. Only a few borders are pictured here, with more to come!</p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzY5ODMwOTMucG5n/original/W1hmIE.png" loading="lazy"></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzY5ODMwOTcucG5n/original/hPQFwb.png" loading="lazy"></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzY5ODMxMDAucG5n/original/Aex4Uv.png" loading="lazy"></p>
<p class="text-center"><strong>This game is a heavily upgraded version of&nbsp;<em>Project Sanitize,&nbsp;</em>a game I released mid 2020 and was never happy with. This new version has been ported to Godot and heavily reworked with more enemies, refined gameplay, and polish up the wazoo.</strong></p>
<h2 class="text-center">
<p class="text-center"><strong>- Discord -</strong></p>
<iframe src="https://discord.com/widget?id=685665649845993496&amp;theme=dark" width="960" height="300" frameborder="0"></iframe>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzY5ODMyNjkucG5n/original/96frZ%2B.png" alt="Credits" title="Credits" loading="lazy"><br></p>
</h2>
<h3 class="text-center">Design and Developed by Ashton Arnold -&nbsp;<a href="https://twitter.com/Retrocade_Media" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@Retrocade_Media</a></h3>
<h3 class="text-center">Music by Floopy -&nbsp;<a href="https://twitter.com/floopymusic" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@floopymusic</a></h3>
<h3 class="text-center">Palette is Endesga 64 - Created by Endesga&nbsp;<a href="https://twitter.com/ENDESGA?s=09" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@ENDESGA</a>
</h3>
<h3 class="text-center">Godot Engine Logo Copyright (c) 2017 Andrea Calabró
</h3>
<h3 class="text-center">Special thanks to BB for tons of&nbsp;help with optimizing the game.&nbsp;<a href="https://leanderish.itch.io/" target="_blank">Follow them on Itch!</a></h3>
<h3 class="text-center">This game is dedicated to essential workers.</h3>
<h3 class="text-center">Thank you to my playtesters!</h3>
<p class="text-center"></p>
<p class="text-center"><br></p>
<h2><strong><a href="https://distrokid.com/hyperfollow/floopy/viral-reload-original-soundtrack" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Purchase the OST here!</a></strong></h2>
<iframe style="border: 0; width: 350px; height: 470px" src="https://bandcamp.com/EmbeddedPlayer/album=2571319294/size=large/bgcol=333333/linkcol=0f91ff/tracklist=false/transparent=true/"><a href="https://floopy.bandcamp.com/album/viral-reload-ost" rel="nofollow noopener" referrerpolicy="origin">Viral Reload OST by floopy</a></iframe>

<iframe width="720" height="450" src="https://www.youtube.com/embed/6cS9J36fCMQ" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE5NTc1MS82OTgzMDY2LnBuZw==/original/Ts%2Bdbj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE5NTc1MS82OTgzMDY3LnBuZw==/original/qwYAiz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE5NTc1MS82OTgzMDY4LnBuZw==/original/VRRtVE.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE5NTc1MS82OTgzMDY5LnBuZw==/original/ODs5OE.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE5NTc1MS82OTgzMDcwLnBuZw==/original/j2IHcT.png]]
<p><strong>ENnie Nominated for Best Writing!&nbsp;</strong></p>
<p><strong>IGDN Nominated for Best Setting!</strong></p>
<p>Visigoths vs. Mall Goths&nbsp;is a tabletop roleplaying game and dating sim about the conflicts and romances among the warriors who sacked ancient Rome and 20th century spooky teens, set in a suburban Los Angeles shopping mall during 1996.&nbsp;<strong>There are a lot of bisexuals.</strong></p>
<p>Imagine a surreal combo of&nbsp;<em>The Craft, Empire Records, Bill &amp; Ted's Excellent Adventure,</em>&nbsp;and&nbsp;<em>Clueless</em>.</p>
<p><strong>You can also order the softcover book from&nbsp;<a href="https://twentysidedstore.com/products/visigoths-vs-mall-goths" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twenty Sided Store</a>&nbsp;or&nbsp;<a href="https://www.indiepressrevolution.com/xcart/Visigoths-vs-Mall-Goths-Print-PDF.html" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Indie Press Revolution</a>!</strong><br></p>
<figure><img src="https://img.itch.zone/aW1nLzQ4NzQyMDUucG5n/original/llAgrl.png" loading="lazy"><br></figure>
<p>*&nbsp;<a href="https://www.kickstarter.com/projects/luciankahn/visigoths-vs-mall-goths" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Funded on kickstarter</a> in 24 hours!</p>
<p>*&nbsp;Easy to learn and video chat friendly.</p>
<p>* Detailed mall setting: 2 maps, 17 stores, and 24 NPC clerks.</p>
<p>* For 4-6 character players and 1 facilitator player ("The Mallrat").</p>
<p>* Rated PG-13</p>
<p>* Strange sense of humor required!</p>
<p>* Check out the game's&nbsp;<a href="http://bit.ly/goths_vs_goths" rel="nofollow noopener" referrerpolicy="origin">4-hour Spotify Playlist</a>!</p>
<p>The plot structure of&nbsp;Visigoths vs. Mall Goths&nbsp;resembles an open-world videogame RPG. Designed for either one-shot or campaign play, each adventure episode offers several quests that you may choose to pursue (or ignore), and the mall setting is packed with many strange retro marvels to discover. Or you can just replay the game over and over to kiss all the kissable clerks.</p>
<p>Also a LARPer-friendly introduction to tabletop.<br></p>
<p>Bonus: you can also use this setting and these supporting characters (NPCs) in other roleplaying games! Expand your universe with goths!</p>
<p>* * * <br>Featuring writing and game design by Lucian Kahn of Dead Friend: A Game of Necromancy, art by Robin Eisenberg of Thrasher and Vans, Lluis Abadias Garcia of Dungeons &amp; Dragons Retroverse, and Vee Hendro of Good Society, maps by Olivia Fields and Jackson Tegu, and adventure episodes by Liz Gorinsky of Goth Court, musician Mabel Harper, LARP designer and games theorist&nbsp;Jonaya Kemper, and runes expert Maja Bäckvall of Civilization VI and God of War.</p>
<p>* * *&nbsp;</p>
<p><strong>TESTIMONIALS</strong></p>
<p>“It is the 21st century and I can finally get my Bisexual take on That Bit In The Mall In Bill'n'Ted and the world is better for it."</p>
<p>-&nbsp; Kieron Gillen, creator of&nbsp;<em> The Wicked + The Divine</em> and&nbsp;<em>DIE</em><span class="">&nbsp;</span></p>
<p>“A fun romp of a game that’s compelling for veteran roleplayers and casual gamers alike, employing comedy, nostalgia, and teenage drama."<br>- Sharang Biswas, Indiecade and IGDN winning designer of Feast and Verdure -<br></p>
<p>"I love this project for its inherent comedic genius, ‘90s nostalgia, and because of how queer it is.”<br>Trin Garritano, Games Digital Outreach Lead at Kickstarter, in “Projects We Loved: 15 of Our Favorite Kickstarter-Funded Projects from 2019”</p>
<p>"VG vs MG combines everything I love: occult time travel, the '90s, and queer culture, with things I never knew I needed: an emo grudge tracker and a turf war that shouldn't really make sense but totally does. Lucian makes magic with his games always, and this is no exception."<br>- Hannah Shaffer, designer of Damn the Man, Save the Music! –</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/ox5gaMSUywY" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjEwNzQyLzQ0OTIwOTcuanBn/original/pLFuf8.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEwNzQyLzMyNDczMTIuanBn/original/r%2FGIKt.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEwNzQyLzMyNDczMTMuanBn/original/zLnNuL.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEwNzQyLzMyNDczMTQuanBn/original/BFPpFa.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEwNzQyLzMyNDczMTguanBn/original/dLClNq.jpg]]
<p>Welcome to the strange world of VOID. You find yourself engulfed&nbsp;in darkness, the only way to see is to move around.&nbsp; Each corridor feels more confusing than the last, hints of sights and sounds may lead you to victory or astray. The only hope is to keep moving forward.</p>
<p>Original Music and Sound by&nbsp;<a href="https://twitter.com/Funbil_" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Max Miller</a></p>
<p>Move around, find your path, get to the goal. What more do you need?</p>
<p><strong>Key Features</strong></p>
<ul><li>30+ platforming levels to test your skills</li><li>Reveal your path to&nbsp;the exit portal</li><li>Explore levels by shooting and jumping, showing the paths as you play.&nbsp;</li><li>Experience the game's tight and responsive controls that don't make you feel cheated when you die</li></ul>
<p><br></p>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/ReAneCxCB8s" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzA4MzgyLzM5MTk2ODAuZ2lm/original/jwWNw9.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzA4MzgyLzM5MTk2ODIuZ2lm/original/5QKpL%2F.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvNzA4MzgyLzM5MTk2ODEuZ2lm/original/KI6vxd.gif]]
<h3>Void Wisp is an ambient arcade runner where you earn points by coming close to obstacles without crashing. </h3>
<p>
	You are a wisp. A collection of random energy that has coalesced into a sentient form. You float through the great nothingness that permeates existences, skimming off aether from the whatever that is nearby.
</p>
<p>
	The gameplay is simple. You have two buttons; one moves you up and the other lets you glide. Typically you'll be holding the glide button to slow your descent when an obstacle comes near so you can grind along the top or bottom for points. The closer you are the more points you'll earn. You'll crash if the center of the Wisp contacts an obstacle.
</p>
<p>
	Below is a short overview of how this game works.
	<br>
</p>
<p>
	<iframe src="https://www.youtube.com/embed/dCqIOS8YJS4" allowfullscreen="" width="560" height="315" frameborder="0">
	</iframe>
</p>
<h2> Features:</h2>
<ul><li>Simple gameplay that’s easy to pick up and hard to master. Designed for both short spurts and long sessions.&nbsp;</li><li>4 Game Modes each with a unique twist.
<ul><li>In Classic Mode you’ll start to lose points the farther you go, so you want to get as many as quickly as possible.</li><li>In Caravan Mode you have one minute to score as much as possible. Crashing will lower the amount of time you have.</li><li>Survival Mode is the most complex mode. A timer is always ticking down but can be refilled by collecting luster and having a high multiplier. The game gets faster and you earn more points the further you make it.</li><li>In Traveler Mode there are 40 premade levels each with 5 goals to complete. You will face unique obstacles not found in the other modes.</li></ul></li><li>Accessibility options that let you customize the game’s looks, controls, and difficulty.
<ul><li>You can change the appearance of the game and character to better suit what makes you comfortable.</li><li>Supports mouse, keyboard, and gamepad. All with fully remappable controls!</li></ul></li><li>Dreamy ambient music that partially reacts to how you play.</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/dCqIOS8YJS4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjkyNTcvMzk5Njk1LnBuZw==/original/YpJceA.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjkyNTcvNDMzMTExLnBuZw==/original/IB1X%2BC.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjkyNTcvNDMzMTEwLnBuZw==/original/hg8qYo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjkyNTcvNDMzMTA5LnBuZw==/original/B5KHG3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjkyNTcvMzk5NzA1LnBuZw==/original/rszEx7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjkyNTcvMzk5NzA2LnBuZw==/original/j6NwP%2F.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjkyNTcvNDMzMTA4LnBuZw==/original/xHdAud.png]]
<p><strong>Note:&nbsp;</strong></p>
<ol><li><strong>This is an early-access game, with a lot of content and features still missing. Expect updates to be slow.</strong></li><li><strong>The price of this game will increase as more features are added and the game is polished further.</strong></li></ol>
<p>I'm currently focusing on adding content and features (more options, etc). There's currently only one side mission, as the focus is mostly on finishing the main campaign. Side missions will be added later and they will be able to influence the direction of the main story.</p>
<p><strong><br></strong></p>
<p><strong>About Volatile:</strong><br></p>
<p>Volatile is a space exploration adventure game which, at its core, plays with the importance of actions and consequences.</p>
<p>Set in an alternate future of humanity, Volatile is a top-down space exploration game, full of action, adventure, choices and dire consequences.<br><br>You take the role of one of several pilots at the start of a routine escort mission, when catastrophe strikes. The world opens up to let you explore your options in this indie game, which, at its core, is designed around actions and reactions, where consequences from even the most mundane choices have ripples.<br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/ewSIBS0Sjx8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTIzMjA1LzUyMjE1MTgucG5n/original/CsxlC9.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIzMjA1LzUyMjE1MjEucG5n/original/sWuEmw.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIzMjA1LzUyMjE1MjAucG5n/original/UNLej4.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIzMjA1LzUyMjE1MjIucG5n/original/90kEtm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIzMjA1LzUyMjE1MjQucG5n/original/X2Jp%2Bl.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIzMjA1LzUyMjE1MjUucG5n/original/8JnOLY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIzMjA1LzUyMjE1MjcucG5n/original/u%2B99bz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIzMjA1LzUyMjE1MjYucG5n/original/KJg1%2Bo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIzMjA1LzUyMjE1MjMucG5n/original/iZ5FsF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTIzMjA1LzUyMjE1MjgucG5n/original/kBj5Fb.png]]
<p>Catastrophe struck this small town years ago, when the town square collapsed during&nbsp;an earthquake. Recently, the earth split open and revealed a smoking abyss.&nbsp;</p>
<p>The Dungeondraft source file is available from 1$ up.
</p>

[img width=500 [https://img.itch.zone/aW1nLzc3Mjc1NTcucG5n/original/YcpUAp.png]]
<h1>Volk-san: Egg&amp;Catch</h1>
<p>Hello! What you're looking at is&nbsp;a very tiny, cute, and rather fast-paced&nbsp;game about an egg-loving wolf catching eggs. Please, join her!!</p>
<p></p>
<p>This game features 10 stages that, after some practice, last about&nbsp;5 minutes altogether,&nbsp;and endless mode with an offline scoreboard... An optional LCD effect, character suits, and a cool but fairly useless manual.&nbsp;That's about it.&nbsp;Tiny, right?</p>
<p><br></p>
<p><strong>Linux &amp; advanced Mac users</strong>: <del>for time being</del>,&nbsp;the game is distributed via <a href="https://hashlink.haxe.org" rel="nofollow noopener" referrerpolicy="origin">hashlink</a> (1.11.0+)&nbsp; - if you have it available in your distro, or <a href="https://github.com/HaxeFoundation/hashlink/blob/master/README.md" rel="nofollow noopener" referrerpolicy="origin">build yourself</a>, the game can be launched as `hl egg.hl`</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/b_8DOMHVEIM" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA3MTc1MC82MTQzNDc5LmdpZg==/original/5PrSw7.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA3MTc1MC82MTQzNjQ1LmdpZg==/original/5RMJZV.gif]]
<iframe src="https://www.youtube.com/embed/8_k-L4nemXE" allowfullscreen="" width="560" height="315" frameborder="0"></iframe>
<p><br></p>
<p>Vulture is a build-em-up arcade shooter with a retro aesthetic. In Vulture, the player controls a drone provided by the local military as it engages various types of enemies who have invaded the planet. As the player progresses through 9 levels of intense combat, they will encounter increasingly larger and more powerful enemies. Players are ranked at the end of each level based on their score and number of enemies destroyed. High rankings give better rewards! <br></p>
<p><img src="https://img.itch.zone/aW1nLzgyODAxNi5wbmc=/original/e2OZio.png" loading="lazy"><br></p>
<p>Destroyed enemy drones will drop credits, power-ups and blocks that the play can use to improve their drone. Players can use the in-depth build screen to create new designs of drones to use. As the player progresses, they will unlock larger templates to build their drones. The design grid starts at 8x8, but increases up to 32x32 by the final levels.<br></p>
<p>Blocks used in the construction of drones all have specific attributes that change how the players drone will function. All blocks have Power and CPU costs that must be met using system blocks in order for the drone to be able to function.</p>
<ul><li>Hull Blocks: Increase durability and provide structure</li><li>Wing Blocks: Increase maneuverability</li><li>Weapon Blocks: Provide firepower</li><li>System Blocks: Provide Power and CPU for weapons</li><li>Shield Blocks: Provide additional protection</li><li>Engine Blocks: Increase speed</li><li>Legendary Blocks: ????????</li></ul>
<p><img src="https://img.itch.zone/aW1nLzgyODAxOC5wbmc=/original/jSEDx4.png" loading="lazy"><br></p>
<p>Players can also equip radar systems which will allow enemies to be located before they come onto the screen. The radar can be improved to have increased detection range and can allow players to plan their route through a level with ease.</p>
<p>Players have access to 5 different weapon types: Plasma, Missiles, Orbs, Flak and Laser. Each of these weapon systems has a Tier 1 and Tier 2 variant. The Tier 2 variants are more powerful but consume more power and CPU, and can’t be unlocked until the later levels. Players can also equip bomb systems that allow the use of a large, screen-wiping weapon once per level.</p>
<p>There are 9 levels of Campaign gameplay as well as a Bonus level that can be unlocked by meeting specific criteria in the game. Levels can be replayed for higher scores and for players to collect more blocks to build with. Each level consists of many waves of enemies followed by a boss. Some levels also have a mini-boss halfway through. At the end of a level, players are given a score (which is the amount of in-game credits received), a letter score (S rank to D- rank), and several items and blocks based on their achieved rank.</p>
<p>Giving players the ability to design their own drones will allow for many different strategies to be used. For example, weapons all have different rates of fire, which can be modified by capacitor systems installed on a drone. Using a single weapon type will yield a very different play experience than using multiple weapon systems. Changing the shape and size of a drone will greatly affect its maneuverability. The player must balance many factors to create a drone design that will be successful!<br><strong><br></strong></p>
<p><strong>Fight! Collect! Design! Defend Your World!<em><br></em></strong></p>
<p><em>Cubic Timeline Productions is based out of Alberta, Canada. We take retro mechanics and look for ways to combine them with new innovation to make exciting games.</em><em><br></em></p>
<p><em><a href="https://www.facebook.com/cubictimeline/" rel="nofollow noopener" referrerpolicy="origin">https://www.facebook.com/cubictimeline/</a><br></em></p>
<p><a href="https://twitter.com/cubictimeline" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/cubictimeline</a></p>
<p><a href="http://cubictimeline.com/" rel="nofollow noopener" referrerpolicy="origin">http://cubictimeline.com/</a><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/8_k-L4nemXE" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTc3MjY2LzgyNzc2OC5wbmc=/original/ebbfM8.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc3MjY2LzgyNzc2OS5qcGc=/original/yGK5n%2F.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc3MjY2LzgyNzc3MC5wbmc=/original/5GhAjH.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc3MjY2LzgyNzc3MS5wbmc=/original/Y8vKvF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc3MjY2LzgyNzc3Mi5wbmc=/original/JM3JuF.png]]
<p><br></p>
<p>
</p>
<p><strong></strong></p>
<div class=""><iframe width="500" height="281" src="https://www.youtube.com/embed/wwHdDel0_pc" frameborder="0" allowfullscreen=""></iframe></div>
<p></p>
<p><strong>Tile-Based Movement!</strong>
</p>
<p><strong><img src="https://img.itch.zone/aW1nLzU1NjUzODkuZ2lm/original/17AMdG.gif" loading="lazy">
</strong>
</p>
<p><strong>Puzzle Levels!</strong>
</p>
<p><strong><img src="https://img.itch.zone/aW1nLzU1NjUzNjkuZ2lm/original/PTP7%2FW.gif" loading="lazy"></strong>
</p>
<p><strong><br></strong></p>
<p><strong>Vylan is a 100 level tile-based platformer about beating each level under a certain amount of time.</strong></p>
<p><strong>The Game</strong></p>
<ul><li>100 Levels.</li><li>Many Mechanics.</li><li>Not Super Hard.</li><li>Tile-based Movement.</li><li>Platforming Gameplay.</li></ul>
<p><br></p>
<p><strong>Accessibility Options</strong></p>
<ul><li>Disabling the timer, allowing you to beat any level in any amount of time.</li><li>Increasing the amount of time to beat a level.</li></ul>
<p><br></p>
<p><strong>Get the game on Steam:</strong></p>
<p><a href="https://store.steampowered.com/app/1445650/Vylan/" rel="nofollow noopener" referrerpolicy="origin">https://store.steampowered.com/app/1445650/Vylan/</a><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/wwHdDel0_pc" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzIxODA5LzQzOTYxNzgucG5n/original/%2FVykNz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzIxODA5LzQzOTYxNzkucG5n/original/7EX2b9.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzIxODA5LzQzOTYxODAucG5n/original/Cn1IAc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzIxODA5LzQzOTYxODEucG5n/original/umTWcq.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzIxODA5LzQzOTYxODIucG5n/original/Eh6XC7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzIxODA5LzQzOTYxODMucG5n/original/MXnRwX.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzIxODA5LzUzNjcwNzMucG5n/original/XEEFkk.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzIxODA5LzUzNjcwODQucG5n/original/9y8pS3.png]]
<p>It's the Soundtrack of Vylan, in MP3 format. 5 tracks, lasting over 11 minutes total of music by "Karl Hammond".</p>
<p>Recommended to buy for those who are fans of the tunes in Vylan!</p>

[img width=500 [https://img.itch.zone/aW1nLzczMDE1MjkucG5n/original/C3zDWa.png]]
<p><strong>Wand Wars</strong> is a fast-paced magical sports game. Players ride brooms, cast spells and turn opponents into adorable chickens!<br></p>
<p>
	Try to control a powerful magical sphere that bounces around the arena, increasing in speed and size over time.<span></span><br>
</p>
<p>The game's epic stages, colourful characters and quirky powerups generate competitive gameplay that is incredibly fun to participate in and spectate.</p>
<p>
	Learn the game in <strong>Story Mode</strong>, compete for a high score in <strong>The Trials</strong>. Challenge your friends or the computer in <strong>Versus Mode</strong>.
</p>
<h3>Key Features</h3>
<ul>
	<li>Local multiplayer (up to 4 players). </li>
	<li>2 singleplayer modes - story mode and the trials </li>
	<li>5 play modes: Arcane Arena, Team Arena, Merlinball, Hexout, Team Hexout. </li>
	<li>Game changing arenas, powerups and spells </li>
	<li>Unlock content with XP </li>
	<li>Beautiful pixel art graphics with a modern twist. </li>
	<li>Original soundtrack full of magic and wub.</li></ul>
<p><u>*Every purchase includes a STEAM key!</u></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/hpc4nO2paJ8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvODY5MjkvNDIxNDQzLnBuZw==/original/5BmQie.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODY5MjkvNDIxNDQxLnBuZw==/original/yGEbuL.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODY5MjkvNDIxNDM5LnBuZw==/original/qO39OG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODY5MjkvNDIxNDQyLnBuZw==/original/a0gkOY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvODY5MjkvNDIxNDQwLnBuZw==/original/H6FlA8.png]]
<p class="text-center"><img src="https://img.itch.zone/aW1nLzQxMjk0MDQucG5n/original/B8VBMS.png" loading="lazy"><br></p>
<p><br></p>
<p>Games
usually start from the setting, and then the players create their
characters according to that particular setting.<br></p>
<p>This
game is the opposite.</p>
<p>First
players choose their characters, and then the GM create the setting
around the chosen PCs. They can then use the other characters present
in this book as pre-made SPCs, or create their own with their unique
Abilities or a mix of the Abilities listed here. The only important
thing is to create characters fun to play!</p>
<p>Abilities
are the core of the – few – rules: characters can share the same,
but every character has at least one unique Ability that make them
different from the rest of the party. </p>
<p>In this
book you will find characters with Abilities created for a fantasy
setting, but I'd like to write many more in the future, with sci-fi
and horror settings in mind.</p>
<p><br></p>
<p class="text-center"><strong>WHAT YOU WILL FIND IN WONDERERS;</strong><br></p>
<ol><li>A super easy game system so you can get the show on the road right away! Seriously, the rules take 3 pages.&nbsp;</li><li>17 characters created with a fantasy setting in mind. You can use them to try Wanderers - or you can adapt them to your favourite fantasy game!</li></ol>
<p><strong><br></strong></p>
<p class="text-center"><strong>WHAT
YOU NEED TO PLAY:</strong></p>
<ol><li>-This
book</li><li>-Friends</li><li>-D6
dice</li><li>-Gummy
bears</li></ol>
<p><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzMzMTU4LzgyMzAxOTYuanBn/original/jxa%2F99.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzMzMTU4LzgyMzAxOTkuanBn/original/5cHdzZ.jpg]]
<p><img src="https://img.itch.zone/aW1nLzE1MTkyNjIuZ2lm/original/sM74%2Fa.gif" loading="lazy"><br></p>
<p>A musical adventure where you use singing to save the world! Play as a silly bard who embarks on a globe-trotting journey to learn about the mysterious Earthsong, said to be able to prevent the universe’s imminent end. Along the way there’s a huge cast of characters to meet, puzzles to solve and songs to sing!<br><br>In Wandersong you're a walking musical instrument, and you use song to interact with everything. Different things respond to your music in different ways, so it's up to you to sing your songs, unlock the world's secrets and make new friends!</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/eMYXwuNUDuY" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzA5MzAxLzE1MTkyNDUucG5n/original/vfwUAn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA5MzAxLzE1MTkyNDQucG5n/original/%2FAGWZ%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA5MzAxLzE1MTkyNDYucG5n/original/i%2BKewx.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA5MzAxLzE1MTkyNDIucG5n/original/o8Kr2o.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA5MzAxLzE1MTkyNDMucG5n/original/7mUOiD.png]]
<p><em>WarpThrough is a fast and challenging platformer with arcade-inspired gameplay, unique combat, and a short story full of charming characters. Get into the flow and balance beating up monsters with warping through portals. How many dimensions can you survive?</em></p>
<p><img src="https://steamcdn-a.akamaihd.net/steam/apps/957770/extras/BeatUpWoffles480P.gif?t=1576530373" loading="lazy"></p>
<p>In WarpThrough you won't live long by running around and spamming the attack button.<br>...<br>Because there is no attack button.<br><br>Stop moving to charge your attack, and when the time is right - move to that monster to beat it up!<br><br><img src="https://steamcdn-a.akamaihd.net/steam/apps/957770/extras/LicecapGif10.gif?t=1576530373" loading="lazy"><br><br>Inspired by indie classics such as Towerfall Ascension, Super Crate box and Downwell, WarpThrough is all about skill-based, fun, and unique gameplay.<br></p>
<h2>Features:</h2>
<ul><li><strong>Tense combat</strong><br>Fight or flee using the unique attacks and tight platforming controls</li><li><strong>Hostile dimensions</strong><br>Beat up a variety of monsters as you warp further and further</li><li><strong>Unlockable characters with their own attacks</strong><br>- Charlotte, destroying enemies with fiery punches<br>- Three, armed with a gun, which would be useful if only he could aim<br>- Ebbie, taking her dog Ball for a walk<br>- Manor, electrocuting monsters that fall in his traps</li><li><strong>A short (1-2 hour) story full of charming personalities</strong><br>Brace the dimensions, save your friends and stop the monsters!</li><li><strong>And much more!</strong><br>Local co-op, weekly challenges, different modes, etc.</li></ul>
<p><br>Gameplay is WarpThrough’s core, but it’s cast of characters are not just there for show!<br><br><img src="https://steamcdn-a.akamaihd.net/steam/apps/957770/extras/LicecapGif16.gif?t=1576530373" loading="lazy"><br></p>
<p class="text-center">“I am very smitten with this game (...) these mechanics are hard to get used to, but once you do it's very interesting - I've never played a game like it.”&nbsp;<br><a href="https://soundcloud.com/user-200756560/so-videogames-episode-157" target="_blank" rel="nofollow noopener" referrerpolicy="origin">So... Videogames! Podcast</a><span></span></p>
<p class="text-center">“If you're interested in a game that has arcade-style gameplay, it's fast and it's fun, don't let the looks throw you off. Let the game speak for itself.”
<br><a href="https://www.youtube.com/watch?v=1lYpek3X4Lo&amp;feature=youtu.be&amp;t=9183" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Pernell (on SML podcast)</a>&nbsp;</p>
<p class="text-center">&nbsp;“(...) not moving for about a second charges up an attack which can then be unleashed by pressing up, down, left or right, immediately annihilating any and all in range. (...) Fun? You bet ya.”
<br><a href="http://www.wraithkal.com/warpthrough-demo-impressions/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Wraithkal</a></p>
<p class="text-center"><strong>Purchasing WarpThrough on itch.io also gives you a Steam key for the game!</strong></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/qQ7ZuthAbwk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTM0MDU1LzMwNDY3MjQucG5n/original/n5oPgY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTM0MDU1LzMwNDY3MzAucG5n/original/al%2FSXz.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTM0MDU1LzMwNDY3MjMucG5n/original/S1c2Tf.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTM0MDU1LzMwNDY3MjUucG5n/original/tw61C7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTM0MDU1LzMwNDY3MzUucG5n/original/uztSgc.png]]
<figure><img src="https://img.itch.zone/aW1nLzc3ODIyMC5wbmc=/original/ouJNa4.png" style="color: inherit" loading="lazy"><br></figure>
<p><strong>Watch Me Jump</strong> is a digital story of scandal and betrayal, played out in four quarters. As WNBA all-star Audra Bee Mills, the player will navigate through the story, shaping Audra's personality along the way through the choices made.</p>
<p><img src="https://img.itch.zone/aW1nLzc3ODIyMS5wbmc=/original/BUO6Um.png" loading="lazy"><br></p>
<p><strong>Watch Me Jump </strong>is the first video game from award-winning playwright Jeremy Gable, and is adapted from his play of the same name.&nbsp;The player takes the role of Audra Bee Mills, who is about to become the highest paid women’s basketball player in the world.&nbsp;But on the night before playoffs, a scandal threatens to overturn everything she has worked for. And Audra has to figure out how to get through the night without losing either her dignity or her career.</p>
<p><img src="https://img.itch.zone/aW1nLzc3ODIyMi5wbmc=/original/pizbym.png" loading="lazy"><br></p>
<p>As the player moves through the game, various choices will influence Audra’s experience and personality. And with the decisions made, the player will help Audra determine what it truly means to be “the best".</p>
<p><img src="https://img.itch.zone/aW1nLzc3ODIyMy5wbmc=/original/zmr4d2.png" loading="lazy"><br></p>
<p>Featuring completely original artwork and music, <strong>Watch Me Jump</strong> is a throwback to the games of the 8-bit era, combining the look and feel of&nbsp;old-school RPGs and text based adventures with a unique and original 21st century story. And simple, easy-to-use controls help move the player through the many twists of this intense and humorous journey.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/0d-6Kj-FIy8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTY3NDEzLzExNzgwMTMucG5n/original/FYeH13.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY3NDEzLzExNzgwMTQucG5n/original/ykyONo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY3NDEzLzExNzgwMTUucG5n/original/rMoSIc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY3NDEzLzExNzgwMTYucG5n/original/9Vl17X.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTY3NDEzLzExNzgwMTcucG5n/original/a4FFIb.png]]
<p><em>Your starship is crashing.&nbsp;</em></p>
<p><em>It’s crashing into an uncharted ocean planet on the edge of known space.
</em></p>
<p><em>It’s OK. This does happen from time to time. As long as you and some of your crew get to the Lifeboats in time, you should be able to eject and crash land somewhere relatively safely.
</em></p>
<p><em>From there, you should be able to scrounge up enough local resources to survive at least until rescue can come.&nbsp;
</em></p>
<p><em>You should be fine, as long as the Skip Drive Core doesn’t breach, local wildlife isn’t too hostile, and you find sources of food and water...</em></p>
<p>----</p>
<p><strong>What is This?<br></strong></p>
<p>This is a <a href="https://peachgardengames.itch.io/carta-srd">Carta</a>-powered scenario for the <a href="https://afterthought-committee.itch.io/cast-away">Cast Away RPG</a>. To play, you need the Cast Away rules, as some of those rules may not be fully explained in this supplement. This is designed for play with 1 to 4 players. A Navigator is optional, but having someone who has read both books before play is probably helpful.
This game is designed to simulate sci-fi survival on an uncharted planet that is mostly covered in water. It takes inspiration from the <em>Subnautica </em>series,<em> No Man’s Sky</em>, <em>Oxygen Not Included</em>, and there’s a little of<em> Delve </em>and <em>Umbra </em>mixed in there.</p><p>----</p><p><strong>Now&nbsp;With&nbsp;Dracula!</strong></p><p>As part of&nbsp;<a href="https://itch.io/jam/the-dracula-jam">the&nbsp;Dracula Jam</a>, I added additional rules that brings in vampires. Your survivors are now beset by Dracula himself, who is hiding out among the crew. Is your crewmate a traitor? Are they a vampire? If you manage to survive, are you going to bring vampires back to your home world?</p><p>You're not entirely helpless--your replicator has blueprints to create a weapon to fight the vampire: A wooden stake. But, what happens if you attack the wrong person?</p><p>Dracula Mode draws inspiration from <em>Among&nbsp;Us</em>, and requires four players.</p>
<p>----<br></p>
<p>Contains:&nbsp;</p>
<ul><li>Water&nbsp;Landing RPG (Singles and Spreads)</li><li>Water Landing RPG - Plain Text edition</li><li>Crafting Cards printout</li><li>Ship Salvage Table printout</li><li>Resource&nbsp;Tracker printout</li></ul><p>Dracula Edition Adds:</p><ul><li>Water Landing - Dracula Edition Expansion (Singles and Spreads)</li><li>Water&nbsp;Landing - Dracula Edition Expansion -&nbsp;Plain Text</li><li>Traitor Tokens printout</li></ul>
<p>Requires:&nbsp;</p>
<ul><li>This book</li><li><a href="https://afterthought-committee.itch.io/cast-away">The Cast Away RPG</a> and Character Sheets</li><li>Polyhedral hobby dice</li><li>A deck of cards with Jokers</li><li>Pen, pencils, and a handful of tokens.</li><li>Included printouts&nbsp;(optional, but helpful)</li></ul>
<p>--</p>
<p>Water Landing&nbsp;<em>is an independent production by Grahame Turner</em><em>&nbsp;and is not affiliated with Afterthought Committee or Peach Garden Games</em><em>.</em>
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA5NzEyNC82MzI1MjAyLnBuZw==/original/egXXDW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5NzEyNC82MzI1MTg3LnBuZw==/original/i8521Q.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5NzEyNC82MzI1MTg2LnBuZw==/original/1JDPex.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5NzEyNC82MzI1MTg1LnBuZw==/original/d4ph8C.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5NzEyNC82MzI1MTg4LnBuZw==/original/saJ8pT.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5NzEyNC82MzM0OTU1LnBuZw==/original/f2UmAm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5NzEyNC82NDczMjcwLnBuZw==/original/qRYKYL.png]]
<p>a procedural diving game<br>with two endings<br><br>cw: horror elements</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjU2NzkyLzE2MTAyMTMuZ2lm/original/v7JTf%2F.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMjU2NzkyLzE2MTAyMTQuZ2lm/original/e6I3qk.gif]]
<blockquote><strong>Way of the Demon Slayer</strong><em>&nbsp;is a supernatural Chanbara playset for the PARAGON system from the&nbsp;</em><a href="https://johnharper.itch.io/agon" target="_blank">AGON roleplaying game</a><em>.&nbsp;</em><strong>A copy of AGON is required to play.</strong><em>&nbsp;For more on the PARAGON system, including how to publish your own playsets, visit&nbsp;</em><a href="http://agon-rpg.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">AGON-RPG.com</a><em>.</em>
</blockquote>
<p>It is the third year of the&nbsp;<strong>Taishō era</strong>.&nbsp;After a forty years slumber, the father of all demons, Onizuka Satzumai (鬼塚 殺舞), has been seen in Tokyo. Last time he awoken, the Shinano river was dyed red by the blood of his victims. The only weapons the human have to stop him are the sun... and the <strong>Demon Slayers</strong> </p>
<p>
You are a Demon Slayer, the last line of defense between humans and demons. The Demon Slayers gather their power and endurance from the same blood that flows in the demon's veins. The price they pay for this incredible power is a slow corruption that inevitably kill them or make them into the very same creatures they have sworn to fight: the way of the Demon Slayer is death...
</p>
<p>
Way of the Demon Slayer adapts the fast and flexible PARAGON system to a world of Yokai and Oni, in pre-WWII Japan. It is heavily inspired by anime like Kimetsu no Yaba, Ushio e Tora, Blade of the Immortal and Dororo, and by videogames like Breath of Fire: Dragon Quarter, Ryū ga Gotoku Ishin!, Onimusha, and Way of the Samurai. This game is in development, but is totally playable in its current state. As I add to the game the price may increase.
</p>
<p>
The game includes two set of character sheets, in color and greyscale (for printing or easier reading). The interactive version of the sheet is made with online play in mind (I might make a roll20 sheet after finishing the playtest).</p>
<p><img src="https://img.itch.zone/aW1nLzUyNjk5MDEucG5n/original/9V5rSS.png" loading="lazy"><br></p>
<p class="text-right"><strong>気剣体一</strong></p>
<h1> Terminology </h1>
<table>
<thead><tr>
<th>AGON</th>
<th>Way of the Demon Slayer</th>
</tr>
</thead>
<tbody>
<tr>
<td>Name</td><td>Sword ~~ 剣 (Ken) </td>
</tr>
<tr>
<td>Epithet</td><td>Style ~~ 流 (Ryū)</td>
</tr>
<tr>
<td>Domain</td><td>Way ~~ 道 (Dō) </td>
</tr>
<tr>
<td>Art &amp; Oration</td><td> The Way of the Tea ~~ 茶道 (Sadō)</td>
</tr>
<tr>
<td>Blood &amp; Valor</td><td>The Way of the Warrior ~~ 武士道 (Bushidō)</td>
</tr>
<tr>
<td>Craft &amp; Reason</td><td>The Way of the Ninja ~~ 忍道 (Shinobidō)</td>
</tr>
<tr>
<td>Resolve and Spirit</td><td>The Way of the Yin and Yang ~~ 陰陽道 (Onmyōdō)</td>
</tr>
<tr>
<td>Pathos</td><td>Body ~~ 体 (Tai)</td>
</tr>
<tr>
<td>Fate</td><td>Demon Blood ~~ 血鬼 (Kekki)</td>
</tr>
<tr>
<td>Divine Favor</td><td>Spirit ~~ 気 (Ki)</td>
</tr>
<tr>
<td>Bonds</td><td>Brotherly Love ~~ 悌 (Tei)</td>
</tr>
<tr>
<td> Heaven's Vault </td><td> Righteous Path  ~~ 正道 (Seido)</td>
</tr>
<tr>
<td> Boons </td><td> Breathing Techniques ~~ 呼吸術 (Kokyū-jutsu)</td>
</tr>
<tr>
<td> Sacred </td><td> Faint Spirit~~ 幽霊 (Yūrei)</td>
</tr>
<tr>
<td> Mythic </td><td> Vengeful Spirit ~~ 怨霊 (Onryō)</td>
</tr>
<tr>
<td> Perilous </td><td> Ogre ~~ 鬼 (Oni)</td>
</tr>
<tr>
<td> Epic </td><td> Devil ~~ 悪魔 (Akuma)</td>
</tr>
</tbody></table>
<p><br>Now the game also have 2 tracks you probably haven't seen before the <strong><a href="https://en.wikipedia.org/wiki/Kagura" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Kagura 神楽</a></strong>&nbsp;(god-entertainment) and the <strong>Sin 罪 </strong>(Tsumi). The Kagura keeps track of the enemy you have encounter. If the Demon Slayers defeat the demon in the final confrontation, the can decide if they want to&nbsp; <strong>Purify&nbsp;祓&nbsp;</strong> (Harae) them or absorb the blood to become stronger committing a&nbsp;<strong>Sin.<br></strong></p>
<h1> Rules </h1>
<h2>The Slayers</h2>
<p> You start choosing a name and an honorific (-hime, -sama, -san, -chan, -kun, -domo, he/she/they/xe, ...). You then give the word to your demon sword and choose a fighting/philosophy style.<strong></strong></p>
<table>
<thead><tr>
<th>Fighting Spirit</th>
<th>Element</th>
</tr>
</thead>
<tbody>
<tr>
<td>Creativity</td><td>Void</td>
</tr>
<tr>
<td>Evasiveness</td><td>Wind</td>
</tr>
<tr>
<td>Stability</td><td>Earth</td>
</tr>
<tr>
<td>Flexibility</td><td>Water</td>
</tr>
</tbody></table>
<p> Next you choose your favorite fighting spirit from the table (mark 2), and mark <strong> 4 additional </strong> fighting spirits of your choice. After you introduce your Slayer to the group you need to create the <strong>brotherly bonds.</strong></p>
<ul><li><strong>If your are an Student living in his master dojo&nbsp;内弟子 (<strong>Uchi-deshi</strong>):&nbsp;</strong>record 1 bond with each other slayer and a bond with your&nbsp;<strong>Sensei</strong> (worth 1D12).</li><li><strong>If you don't live with your Sensei&nbsp;外弟子&nbsp;(<strong>Soto-deshi</strong>) or you are self taught:&nbsp;</strong>record 2 bond with each other Slayer.</li></ul>
<h2> Kagura </h2>
<p>The final battle always ends with a confrontation with one of the 9 demons under Onizuka. If you best the demon, the leader can decide if they want to <strong>purify (Harae)</strong> the demon or commit a <strong>sin (Tsumi)</strong> and absorb their blood to become even stronger. Each choice has mechanical consequences:
</p>
<ul><li><strong>Harae:&nbsp;</strong> if you decide to purify the demon, the rumor of the great slayers will spread among the population (&nbsp;<strong>count it as a great deed that can be replenished with a successful Sado check).</strong></li><li><strong>Tsumi:&nbsp;</strong> if you decide to absorb the blood of the demon, you mark one&nbsp;<strong>sin on the sin track.&nbsp;</strong>Every time you mark one of the triangle with an inside triangle, each player get a new breathing technique and the demon gain a&nbsp;<strong>wrath die.</strong></li></ul>
<h2> Righteous Path </h2>
<p>By following the teaching of one of the 5 masters between missions (<strong>see pag.43 blood offering</strong>) or carrying the spirit of their teaching, you can mark one of the three petals on their crests. Once a crest is filled, each player get <strong>one brotherly bond</strong> with that master and the group can choose to either:</p>
<ol><li><strong>Get a new breathing technique, or</strong></li><li><strong>Reduce the Sin tracker by one AND mark the triangular stem on the top of the crest.</strong></li></ol>
<p><span style="color: inherit; font-size: inherit"></span></p>
<h2> Acquiring new breathing techniques </h2>
<p>There are 3 ways to acquire breathing techniques:<br>
</p>
<ol><li>Reaching a <strong>full black moon</strong> in the demon blood tracker.</li><li><strong>Completing a crest</strong> in the&nbsp;righteous path</li><li>Increasing the&nbsp;<strong>Sin&nbsp;</strong>to a new numbered level.</li></ol>
<p>If you have completed all breathing techniques, any additional checkmark gives you <strong>one brotherly bond with a master of your choice</strong> and a <strong>refresh of 2 spirits</strong></p>
<p><strong>Note:</strong>&nbsp;<em>by marking the stem, you reduce the sin by 1 level instead of getting a new breathing technique, this is done on purpose. So if you reduce the Sin below a numbered value, you don't lose your breathing technique and the next time you in increase your Sin you get an additional breathing technique.</em></p>
<h2>Demon Blood </h2>
<p>The demon blood is the most powerful weapon in the Demon Slayer arsenal. At any time, the Slayer can substitute a <strong>Body </strong>or <strong>Spirit </strong>point for a <strong>Demon Blood </strong>one (for example if you don't have enough to fight an <strong>Akuma </strong>or an&nbsp;<strong>Onryō </strong>or if a particular form of <strong>Spirit </strong>is required.</p><p><br></p>
<h1> The Slayer Soundtrack </h1>
<p><iframe src="https://open.spotify.com/embed/playlist/5D4MQfSC1H8En9P55cB6rD" width="300" height="380" frameborder="0"><span class=""></span></iframe>
</p>
<p><br></p>
<h1> The 9 Demons </h1>
<h2>Hakuzōsu</h2>
<p><img src="https://img.itch.zone/aW1nLzUyNjk0OTcuanBn/original/twRq3Q.jpg" loading="lazy"></p>
<p> Is a kitsune (demon fox) that likes to impersonate Buddhist monks and steal from their victims before killing them.</p>
<p>&gt;&nbsp; Devious (D8)&nbsp;[Yūrei], Silver tongue (D10), Shapeshifter (D12), Monk (D6).</p>
<h2>Jinrinki</h2>
<p><img src="https://img.itch.zone/aW1nLzUyNjk0OTQuanBn/original/lYhbIb.jpg" loading="lazy"></p>
<p>Half-ox half-spider, whole nightmare. He likes to prey on strong warriors, but he's not very smart</p>
<p>&gt;&nbsp; Huge&nbsp;(D10), Bull in a china shop (D12) [Akuma], Clawed spider (D6) [Oni], Miasma (D8).</p>
<h2>Sutoku</h2>
<p><strong><img src="https://img.itch.zone/aW1nLzUyNjk0ODEuanBn/original/JUlymb.jpg" style="max-width: 100%" loading="lazy"></strong></p>
<p>Sutoku Tennō is one of the three most famous yōkai to ever haunt Japan. After he died, he transformed—some say into a terrible onryō, some say into a great tengu—and inflicted his wrath upon the imperial court at Kyōto.&nbsp;</p>
<p>&gt;&nbsp; The demon who was a king&nbsp;(D10) [Onryō], Tengu (D12) [Ogre], Master of thunder (D10), Flying (D8).</p>
<h2>Zenki &amp; Goki</h2>
<p><img src="https://img.itch.zone/aW1nLzUyNjk1MjUuanBn/original/QaxlRP.jpg" loading="lazy"><br></p>
<p>They are a couple of demons, husband and wife. They&nbsp;dwells in the mountains ranges close to Nara and&nbsp;terrorize the people there by taking their children.&nbsp;<br><br></p>
<p>&gt; &nbsp;"Oh, won't somebody&nbsp;please think of the children" (D12)&nbsp;[Ogre], Moonstone wedding anniversary (D10) [Akuma]&nbsp;, Children of the mountain (D10), Feared names (D6) <em><strong>(Cannot use Sado on them).</strong></em></p>
<h2>Kinkyo</h2>
<figure><img src="https://img.itch.zone/aW1nLzUyNjk2NjQuanBn/original/NYIb6g.jpg" loading="lazy"></figure>
<p>Younger of the two tanuki siblings, Kinkyo love to see people starving and suffering, nothing for him is more sweet than a prolonged agony.</p>
<h2>Rokuemon</h2>
<p><img src="https://img.itch.zone/aW1nLzUyNjk3NDcuanBn/original/Ar8m1C.jpg" loading="lazy"></p>
<p>Older brother of Kinkyo, he is the mind of the two. Using his shapeshifting ability&nbsp; he managed to infiltrate and became the Patriarch of the Rokuemon family, a subsidiary of the Tojo Clan.</p>
<h2>Ohatsu</h2>
<p><img src="https://img.itch.zone/aW1nLzUyNjk3MjQucG5n/original/3%2BeZMi.png" loading="lazy"></p>
<p>The most beautiful woman many have ever seen, usually the last woman everyone ever saw. She lives in the Lake Biwa and continues to trick traders and soldier into the water with her great beauty only to crash them in her spears. She's born blind so she uses he forked tongue to find her victims.</p>
<h2>Kidōmaru</h2>
<p><img src="https://img.itch.zone/aW1nLzUyNjk3MzQuanBn/original/3PmCtg.jpg" loading="lazy"></p>
<p>A cautionary tale for all the Demon Slayers Kidomaru was once considered the only Demon Slayer able to kill Onizuka. Once known as the <strong>God of the Warriors&nbsp;武士神 (Bushigami) ,&nbsp;</strong>he got so obsessed in his quest that he gave completely into the power of the demon blood. So admired he was when he a Slayer, he's know feared as the <strong>Demon God&nbsp;鬼神 (Kishin).</strong></p>
<h2>Tamano-no-Mae</h2>
<p><img src="https://img.itch.zone/aW1nLzUyNjk3NDEuanBn/original/2%2FMAK5.jpg" loading="lazy"></p>
<p>Known by many names: Hakumen-no-mono, Tamano-no-Mae, the 9 tail fox, etc. ...&nbsp;Few know her current location, even fewer are willing to talk. The only think known is that where Tamano goes, misery follows soon after.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTMwMTEwLzUyNjc0MTIuZ2lm/original/DGUUd8.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvOTMwMTEwLzUyNjc0MTQuZ2lm/original/TaS5Ft.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvOTMwMTEwLzUyNjc0MTEuZ2lm/original/RX21kH.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvOTMwMTEwLzUyNjc0MTMuZ2lm/original/ox9Bdw.gif]]
<h2>What is Wayfarer's Deck?</h2>
<p>This series of&nbsp;<strong>50-card decks with encounters, wonders, mysteries, puzzles, and findings</strong>&nbsp;provides a convenient way of creating engaging situations for the players. Instead of rolling for random encounters, pick a card (or draw one at random, or roll a d100 and divide the result by two - whatever sounds like fun for you) and let yourself be inspired.
</p>
<p>The cards introduce a variety of encounters and don't dictate the solutions. You're never forced to fight whatever you've found, and the player have a full agency to do whatever they wish. There are no stat blocks and no answers to the mysteries - you're free to take the situation wherever the inspiration takes you.
</p>
<p>The cards are&nbsp;<strong>setting-agnostic and compatible with any fantasy game</strong>, solo or in a party play, with or without a game master.
</p>
<p><img src="https://img.itch.zone/aW1nLzgyOTA2NDYucG5n/original/VOuAaU.png" loading="lazy"><br></p>
<h2>In the bowels of the Earth</h2>
<p>You've been following this tunnel for some time - ten minutes, perhaps? It should lead you to the vertical shaft and the lift, your closest way out of this maze-like abandoned mine. Your light source is dimming with each passing minute, and you can feel the pangs of pain in your ankle after your last tumble in the near-absolute darkness. You gather your willpower and take a deep breath, staring at the two identical passages in front of you. The corridor splits here, and you find yourself at the crossroads...</p>
<p><em>Wayfarer's Deck: Depths of the Earth</em>&nbsp;invites you to venture deep into mines, caves, tunnels, burrows, and dungeons. Discover fabulous treasure, encounter other travelers and suspicious cracks in the ceiling, get uncomfortably lost, find traps (hopefully not too late!), and explore the marvelous and dangerous underworld.</p>
<p><img src="https://img.itch.zone/aW1nLzgyOTA2NzAucG5n/original/0%2BrGih.png" loading="lazy"><br></p>
<h3>Accessibility</h3>
<p>This PDF has been optimized for the screen-reader accessibility to the best of our abilities. It includes tags, set reading order, and alternative text for the images. It is also fully bookmarked. If there's anything else we can do to make the experience better, let us know.
</p>
<h2>Looking for More?</h2>
<p>Going somewhere else?&nbsp;<a href="https://itch.io/c/1102976/encounter-decks" target="_blank">Check the whole collection!</a>
</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQyMjc3NC84MjkwNDc3LmpwZw==/original/U4gKyo.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyMjc3NC84MjkwNDc5LmpwZw==/original/h4HSr%2B.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyMjc3NC84MjkwNDc4LmpwZw==/original/%2Fs1BBj.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyMjc3NC84MjkwNDgwLmpwZw==/original/%2FGoacm.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyMjc3NC84MjkwNDgxLmpwZw==/original/jHANEt.jpg]]
<p>In <strong>We Are Champion</strong>, 3-6 players must compete in a divine game of cards to take over the world as the divine Patrons and their chosen Champion.<br>The game is a Table-Top Roleplaying Game, and takes roughly an hour to play.<br><br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzUwMTA3LzQxODY2NDQucG5n/original/6bGadj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzUwMTA3LzQxODY2NDMucG5n/original/98UDC9.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzUwMTA3LzQxODY2NDIucG5n/original/cGKeos.png]]
<p>
	<strong>WE ARE DOOMED</strong> is a twin-stick shooter where you zap polygon baddies with an absurdly overpowered laserbeam. Dive head-first into the action with reckless ambition, charge the <strong>SUPERBEAM</strong>, and zap everything out of existence in an instant. Chase high scores or just enjoy the beautiful explosion of geometry, colour and light.<span></span></p><ul><li>Pure arcade action. No cutscenes, storylines, or lengthy tutorials.</li><li>An overpowered laserbeam weapon, and the more ridiculous SUPERBEAM.</li><li>Waves mode: 30 waves that range from chill to hyper-intense.</li><li>Endless mode: An endless barrage of baddies. How many zones can you survive?</li><li>Quick to start, and quick to restart for "just one more" game.</li><li>A vibrant world of neon colours, bold shapes, and glitching geometry.</li><li>A beautiful, chill, and occasionally glitchy soundscape.</li></ul><hr style=""><p><strong>System Requirements</strong></p><ul>
	
</ul><p>Windows: Windows XP or greater.<br>Mac: Mac OS X 10.7 or greater.<br>A game controller is highly recommended, but not required.</p><hr><p>Check out the <a href="http://www.vertexpop.com/wearedoomed" rel="nofollow noopener" referrerpolicy="origin">official site</a> for more screenshots and info.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/qMHrK24g7T0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTk4OC85NTI5NS5wbmc=/original/SiNoG5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTk4OC85NTI5Ny5wbmc=/original/W88YEb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTk4OC85NTI5OS5wbmc=/original/F%2Fv18D.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNTk4OC85NTMwMS5wbmc=/original/M%2FRi%2F6.png]]
<p><strong>We Saved The World Once</strong> is a two player card-based <strong>TTRPG</strong> about two people who once saved the world together and must do it again. However, they are no longer friends. It explores their relationship, both past and present, and the reasons why they had a falling out. Ultimately it asks the question: after everything they've gone through, are they able to work together again?</p>
<p>Only a <strong>standard deck of playing cards</strong> and a willingness to explore a strained friendship are needed to play <strong>We Saved The World Once</strong>.
</p>
<p>The pdf is 12 pages long,&nbsp;including 7 pages explaining how to play and 4 pages of prompts.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTEwNTg2OC82Mzg3OTg2LnBuZw==/original/ZZpoib.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTEwNTg2OC82Mzg3NzY4LnBuZw==/original/rST08b.png]]
<p><strong><img src="https://img.itch.zone/aW1nLzM4MTUxMDQucG5n/original/nXYFtk.png" loading="lazy"><br></strong></p>
<p><strong>It's not what you say, it's how you say it.&nbsp;</strong><em>We should talk</em>&nbsp;is a short-form narrative game that will make you think carefully about the words you choose,&nbsp;<strong>coming Thursday July 16th&nbsp;2020 to Windows, Mac, PlayStation 4, Xbox One, Linux, and Nintendo Switch.</strong>&nbsp;</p>
<p>In&nbsp;<em>We should talk</em>, you'll use the sentence spinner to piece together modular sentences in response to the in-game characters. Choose your words carefully to express yourself as you discuss ongoing problems about life and romance with Sam, your in-game partner, over text messages, while also chatting with friends and strangers at your favorite local bar.</p>
<p><img src="https://img.itch.zone/aW1nLzM4MTUxNTQuZ2lm/original/Zd16XO.gif" loading="lazy"></p>
<p>The combination of words you choose impacts the conversations you have, how genuinely you can connect with your partner, and whether your relationship can survive the night. It's up to you how you respond—depending on how you communicate, you'll see one of many possible endings.</p>
<p><img src="https://img.itch.zone/aW1nLzM4MTUxNTUucG5n/original/dMAc2C.png" loading="lazy"><br></p>
<p><strong>Personalized Choices:&nbsp;</strong>Using the sentence spinner, make choices that connect with you. Countless options abound—be yourself, or role play someone you never thought you could be.</p>
<p><img src="https://img.itch.zone/aW1nLzM4MTUxNjcuZ2lm/original/mbMFJl.gif" loading="lazy"><br></p>
<p><strong>Unique Characters:&nbsp;</strong>Your night at the bar is more interesting thanks to all the unique people you encounter. Find your healthy balance between chatting with your friends and keeping up with the texts from your partner at home.&nbsp;</p>
<p><img src="https://img.itch.zone/aW1nLzM4MTY5MTUuZ2lm/original/4ZpzZg.gif" loading="lazy"><br></p>
<p><strong>Different Paths:&nbsp;</strong>Your choices drastically affect the way folks respond to you, leading to one of many different paths in each conversation. Will you be accommodating, flirty, stand-offish, or somewhere in-between?</p>
<p><img src="https://img.itch.zone/aW1nLzM4MTY5MTAuZ2lm/original/H6okJz.gif" loading="lazy"><br></p>
<p><strong>Multiple endings:</strong>&nbsp;Play again and again to find all 9 possible endings. Conclusions aren't based on a specific path or route the way many traditional narrative games branch, but instead the endings are based on the tone your responses express throughout the game. What do&nbsp;<strong>your</strong>&nbsp;relationships look like at the end of the night?</p>
<p><img src="https://img.itch.zone/aW1nLzM4MTY5MDguZ2lm/original/Leiv25.gif" loading="lazy"><br></p>
<p><strong>Realistic conversations:</strong>&nbsp;Experience the emotions that come with real conversations, whether it’s the the joy that comes with teasing a friend, the anxiety that comes with a heavy text message, or the frustration of navigating a touchy conversation with a creep. Express yourself as clearly as you can and hope that your conversational partner understands, though there's always a risk they might interpret your words differently than you intended.</p>
<p><a target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzM4MTUxNjEucG5n/original/7dCT%2Fy.png" loading="lazy"></a><br></p>
<p><a href="https://www.weshouldtalkgame.com/press-kit/" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img src="https://img.itch.zone/aW1nLzM4MTUxNjMucG5n/original/sOnAU5.png" loading="lazy"></a></p>
<p class="text-center"><strong><iframe src="https://open.spotify.com/embed/playlist/0P9AMgJ9ZxQVfT7Is9zG10" width="400" height="250" frameborder="0"></iframe><br></strong></p>
<p><strong>The We should talk Team:</strong></p>
<p><a href="https://toki-e.itch.io/" style="font-size: inherit">Kat Aguiar</a>,&nbsp;<a href="https://nobohb.com/" target="_blank" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">Nobonita Bhowmik</a>,&nbsp;<a href="https://ceschiii.itch.io/" style="font-size: inherit">Francesca Carletto-Leon</a>,&nbsp;<a href="https://jjb672.itch.io/" style="font-size: inherit">Jordan Jones-Brewster</a>,&nbsp;<a href="https://carolmertz.itch.io/" style="font-size: inherit">Carol Mertz</a>&nbsp;and&nbsp;<span></span><a href="http://jackschlesinger.com" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">Jack Schlesinger</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/MotLidp9IxE" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjU1MDM1LzM4NzM5MDQuanBn/original/gkrbUT.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjU1MDM1LzM4NzM5MDUuanBn/original/iq3aOA.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjU1MDM1LzM4NzM5MDYuanBn/original/j1gcnJ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjU1MDM1LzM4NzM5MDcuanBn/original/PgBtHP.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjU1MDM1LzM4NzM5MTAuanBn/original/l2nBV7.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjU1MDM1LzM4NzM5MDkuanBn/original/2Wcvoh.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMjU1MDM1LzM4NzM5MDguanBn/original/RO2UlQ.jpg]]
<p>Welcome to Elk is a biographical adventure set on an island like no other, where every character you encounter has a story to tell. From the weird and wonderful to the dark and desperate, all the tales told on Elk are based on true stories of life on the road less traveled.<br><strong><br></strong><strong>Tales of real stories</strong></p>
<p><img src="https://cdn.akamai.steamstatic.com/steam/apps/1015940/extras/Based-on-real-stories-Recovered.gif?t=1620910751" loading="lazy"><br>Welcome to Elk, an adventure game set on a fictional island stitched together with true stories and tall tales, and inhabited by the people who lived them.</p>
<p><strong>Story</strong></p>
<p><img src="https://cdn.akamai.steamstatic.com/steam/apps/1015940/extras/WalkingWithJan.gif?t=1620910751" loading="lazy"><br>You play as Frigg, a young carpenter trading their busy life in the city for an apprenticeship in a small town. When she arrives in Elk, Frigg worries that the slower pace of life will be boring (they don’t even have the internet), but quickly discovers nothing could be further from the truth!</p>
<p><strong>Tragic stories told with love and sometimes humour</strong></p>
<p><img src="https://cdn.akamai.steamstatic.com/steam/apps/1015940/extras/FrozenJeppe.gif?t=1620910751" loading="lazy"><br>The stories reflect the drama of our lives, on Elk it’s known that humour, love and death go hand in hand. Life may seem hard sometimes, but it is always followed by laughter.</p>
<p><strong>Make new friends</strong></p>
<p><img src="https://cdn.akamai.steamstatic.com/steam/apps/1015940/extras/GelkStack.gif?t=1620910751" loading="lazy"><br>On Elk, you will meet weird and wonderful characters - people whom the world has either ignored or forgotten. Follow their ups and downs, their odd drinking rituals and their unique ways of tackling whatever life throws at them.</p>
<p><strong>Unique mini games</strong></p>
<p><img src="https://cdn.akamai.steamstatic.com/steam/apps/1015940/extras/SquirrelTraps.gif?t=1620910751" loading="lazy"><br>Help your new friends on Elk through playful mini games. All games are uniquely tailored to underline the story and the mood of the game.</p>
<p><strong>Meet the people who told the original stories</strong></p>
<p><img src="https://cdn.akamai.steamstatic.com/steam/apps/1015940/extras/Mom.gif?t=1620910751" loading="lazy"><br>We value the importance of storytellers, those who carry the tales of others and share them. That's why, in Elk, you will also meet the living storytellers who inspired us to make this game.</p>
<p><strong>How we used true stories in the game?</strong></p>
<p>True stories? how to use a true story in an ethical way? This is how we have dealt with it in Welcome to Elk:<br>The stories in Welcome to Elk, are told by the people who we know and/or were there when the events took place. All are told from memory. The way they are used both on our webpage and in the game is true to the core story but everything like names, locations and other details are changed, renamed and often re-framed to protect the real people behind them, therefore, we call them tall tales. The stories are not one to one like you would experience in true crime for example. They are rewritten and combined to one linear narrative. Characters may play a role in one story where they where not a part of originally and only us who designed it will ever know – or come close to the real truth of the stories.<br><br>Welcome to Elk might look like a “fun” game but it’s about telling stories – some are filled with humour others are dark, but they go hand in hand.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/hgcfQjN-oQc" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MjIyMC82MjkwNTY0LnBuZw==/original/Jicgyv.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MjIyMC82MjkwNTY5LnBuZw==/original/TiPPXQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MjIyMC82MjkwNTY1LnBuZw==/original/nBHeH1.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MjIyMC82MjkwNTY2LnBuZw==/original/n9AzSc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MjIyMC82MjkwNTY3LnBuZw==/original/ryiJPb.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5MjIyMC82MjkwNTY4LnBuZw==/original/LIaCCJ.png]]
<h3>Looking for a haunted house with a difference?</h3>
<p>Everyone knows the abandoned house at the edge of town is to be avoided. Which is why a group of teens are going to party it up inside. They aren't alone though&nbsp; and someone or some<em>thing</em> is waiting for them. The teens don't see the warning signs, the faint light flickering in the windows nor the moving shadows. Your hunters do though and it's up to them to protect some teens and kick some ghost butt!</p>
<p>This is a slightly unorthodox haunted house mystery. It contains a variety of ghosts, as well as innocent bystanders (ghost fodder), a monster's backstory and a touch of 80s flare to keep things fun.</p>
<p>The author has also included a few suggestions on how to make your mystery more comedic or scary.</p>

[img width=500 [https://img.itch.zone/aW1nLzczMzc1NTUuanBn/original/2pcN2A.jpg]]
<h1>Welcome to the wilds. <br>Here you reap what you sow.&nbsp;</h1>
<p><strong>Inspired by the settings and themes of <em>The Wicker Man, Over the Garden Wall, The Ritual</em></strong><strong> and many other folk horror tales, comes What Crooked Roots: 15 folk-horror themed roleplay encounters created for Fifth Edition.</strong></p>
<hr>
<p></p>
<blockquote><em>"A cool and usable mix of folk-tale encounters to drop into any 5e wilderness. I dig it!"
<br></em>-Sly Flourish</blockquote>
<p>See all Sly Flourish has to say in the video below!</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/iDMiwd7IOPM?start=1354" frameborder="0" allowfullscreen=""></iframe>
<p><br></p>
<p>Mostly focusing on western tropes and anxieties, What Crooked Roots flips some expectations and reinvents others for a fresh but familiar series of scary scenarios. With a haunting range of encounters that vary in length and difficulty, you’re sure to find something that lingers with your party well beyond their travels…</p>
<p><span></span></p>
<ul><li>Explore cornfields growing something wicked.</li><li>Meet beekeepers who hide a secret.
</li><li>Unearth forgotten, haunted groves.
</li><li>Crack a black egg or see if it hatches.</li><li>Hear the whisper of something following in the shadows.</li><li>Feast on the fruit with human teeth inside instead of seeds.
</li><li>Flee the Groat Man as it hunts you through an abandoned village.&nbsp;
</li><li><em>And much more!</em></li></ul>
<p>
<strong>The harvest is ready and the ritual always has room for one more...</strong></p>
<h3>Features:&nbsp;
</h3>
<ul><li>15 Folk-horror encounters focusing on roleplay (some violence may be required).
</li><li>A sprinkling of fantasy to remove and reimagine harmful stereotypes typically associated with folk-horror stories.
</li><li>Lore to distribute as rumors, journals, dreams or other means as the GM sees fit within their world.</li><li>Encounters you can slot in as your party travels through or explores rural terrain, adapting to most settings.</li><li>Optional additions and roll tables to further customize encounters.</li></ul>
<h3>Download Includes:&nbsp;
</h3>
<ul><li>33-page, full-color, and bookmarked PDF with original folk-horror style artwork.</li><li>Printer friendly and accessible PDF.
</li><li>High-resolution player handouts with color inversions to help save printer ink.</li></ul>
<p><img src="https://img.itch.zone/aW1nLzczNDU0ODguZ2lm/original/oEcJMn.gif" loading="lazy"></p>
<h3>CONTENT WARNINGS</h3>
<ul><li>Body horror and blood&nbsp;</li><li>Allusions to cannibalism&nbsp;</li><li>Allusions to pregnancy&nbsp;</li><li>Allusions to stalking</li><li>Animal hunting and harvesting</li><li>Self-harm in a ritualistic setting</li><li>Cult-like behavior</li><li>Funeral for a child</li></ul>
<hr>
<h3>About Cassi Mothwin</h3>
<p>I’ve spent 4 years within the world of TTRPGs, but I’m no stranger to weaving tales. With a master’s degree in writing and several publications under my belt, a shift to creating content for Dungeons &amp; Dragons, as well as other roleplaying games, seemed only natural. Thank you for taking the time to review my content. I hope you find a use for it at your table. If you have feedback, feel free to message me here or find me on Twitter at <a href="https://twitter.com/CountessCassi" target="_blank" style="" rel="nofollow noopener" referrerpolicy="origin">@CountessCassi</a>.&nbsp;</p>
<h4></h4>
<h4></h4>
<h4></h4>

<iframe width="720" height="450" src="https://www.youtube.com/embed/iDMiwd7IOPM?start=1354" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI2MDA5Ny83MzQzMjk2LnBuZw==/original/E157EA.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI2MDA5Ny83MzQyNTk0LnBuZw==/original/DaFbiF.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI2MDA5Ny83MzQyNzM4LnBuZw==/original/BHxeEi.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI2MDA5Ny83MzQ1NTA4LnBuZw==/original/XB69fZ.png]]
<p>What REALLY Happened is a solo journaling game about your favorite novel and you: the character that was written out of the story. Play to find out What REALLY Happened, and why they would you be forgotten.<br></p>
<p>You play with your favorite novel, a polyhedral set of dice, and something to write your letter, setting the record straight.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM1MDA5NC83ODU4MjAyLnBuZw==/original/xDUuRm.png]]
<p>You are a <strong><em>técnico</em></strong>, a wrestler who fights for the common folk. As an honorable <strong><em>luchador</em></strong>, you wear an iconic mask and fight evil wherever it arises. It is your sworn duty to oppose any <strong><em>rudo</em></strong> who serves evil causes. As a <strong><em>luchador </em></strong>you're equal parts wrestler and superhero. Sometimes you wrestle <strong><em>rudos </em></strong>in the ring; sometimes you wrestle vampires in Hell or aliens in outer space. How? That mask you wear <em>es mágica. </em>It gives you special powers and lets you see beyond<strong><em> El Mundo Viviente</em></strong>, the world we live in, to perceive <strong><em>El Mundo Espiritual</em></strong> - the world of spirits, monsters, and gods.</p>
<p><strong>What's So Cool About Lucha Libre?&nbsp;</strong>is a rules-lite RPG for 1 GM and 1 or more players. It's a Borderpunk game, which means it blends Mexican-American culture and media&nbsp;with themes of social justice and political activism. Don the mask of a superheroic wrestler and prepare to fight for justice and oppose evil wherever it arises.</p>
<p>This game adds some new things to the&nbsp;<strong>What's So Cool About...?&nbsp;</strong>framework, including rules for different tiers of enemies (Minions, Enforcers, and Bosses),&nbsp;<em>el SUPER ATAQUE&nbsp;</em>and the&nbsp;<em>EN FUEGO&nbsp;</em>condition. Become&nbsp;<em>EN FUEGO</em> by pushing the story forward and taking heroic actions; when you're charged up, unleash your superpowers to take narrative control and do amazing things without having to roll dice!</p>
<p>
</p>
<p><strong>Touchstones:</strong></p>
<ul><li><strong>Lucha Underground</strong></li><li><strong>Guacamelee</strong></li><li>The films of El Santo</li><li><strong>Streets of Rage</strong></li></ul>
<p>For ease of use and accessibility, a text-only version of the game is included with your purchase. Feel free to rearrange the text and change the fonts&nbsp;as necessary.</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzM0MzMzLzQwODYwOTYucG5n/original/QKrh9D.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzM0MzMzLzQwODYwOTUucG5n/original/Omi%2FX7.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzM0MzMzLzQwODYyNDQucG5n/original/8pRz3u.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzM0MzMzLzQwODYwOTQucG5n/original/6ZXOzO.png]]
<p><strong><a href="https://www.exaltedfuneral.com/collections/neoteric-codices/products/whats-so-rotten-about-zombies-defending-an-ancient-temple-pdf" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Print copies available on Exalted Funeral.</a></strong></p>
<p><strong>Content Warning</strong>
</p>
<p><em>Death, mutilation, gore, dark themes, religion and worship of evil, and violence.</em>
</p>
<p><strong>What is this?</strong></p>
<p>This is a game about being the undead horrors that protect an ancient temple. You’re rotting away and can hardly hold yourself up, but you are persistent, and your God is on your side. It is for telling stories about the monsters and exploring the motivations of evil creatures. It’s dark, grim, and probably be goofy.</p>
<p><strong>What do you need to play?</strong></p>
<ul><li>2 six-sided dice each (4 would be better),&nbsp;</li><li>3 to 6 people to play,&nbsp;</li><li>one of those people will be the Game master (GM),&nbsp;</li><li>pencils,&nbsp;</li><li>paper,&nbsp;</li><li>and around two hours.&nbsp;</li></ul>
<p><strong>Why does this exist?</strong></p>
<p>My players were going to attack another temple and wipe out all the zombie’s inside and take the relics and desecrate the sacred place, again. We all knew they were going to succeed. I figured, why not play it from the perspective of the zombies and see if they can still do it.&nbsp;</p>
<p>I wanted a super simple rule system and <a href="https://s-jared.itch.io/whats-so-cool-about-outer-space" target="_blank">WSCA</a> fitted perfectly. In fact, I wrote this during the <a href="https://itch.io/jam/what-is-so-cool-about-jam" target="_blank">WSCA Jam</a> last year but didn't get around to finishing it.&nbsp;And then I read <a href="https://morkborg.com/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Mörk Borg,</a> which has clearly had an impact on my aesthetic choices.</p>
<p><strong>When would I play this?</strong></p>
<p>Play this when you need a break from your regular game. Play this to populate a temple for your regular game. Play this when you want to find out how the zombies feel about having their idols stolen. Play this to help your players branch out from their safety RPGs. Play this when you want to design a nasty god and the temple their worshipers live in.</p>
<p><a href="https://drive.google.com/drive/folders/1fiIQL4v_hp9ufzP6IyZdUTNIWyxTldkn?usp=sharing" target="_blank" rel="nofollow noopener" referrerpolicy="origin">You get the text-only accessibility documents here.</a></p>
<p>If you'd like more things by me you can find them here!</p>
<p>Itch stuff:&nbsp;<a href="https://stuartwatkinson.itch.io/">https://stuartwatkinson.itch.io/</a><br>Everything Else:&nbsp;<a href="http://stuartwatkinson.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">stuartwatkinson.com</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/E9J5Vn4Gmc4" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA5OTI2MS82MzM4OTc3LnBuZw==/original/1ZWgF3.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5OTI2MS82MzM4OTc0LnBuZw==/original/Zhy5fL.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5OTI2MS82MzM4OTc5LnBuZw==/original/f26oRb.png]]
<p><strong>Check out our new game, "Milky Way Prince". Now available!</strong> 
<br>
</p>
<p><br></p>
<iframe src="https://itch.io/embed/670040" width="552" height="167" frameborder="0"><a href="https://santaragione.itch.io/milkywayprince">Milky Way Prince – The Vampire Star by Santa Ragione</a></iframe>
<p></p>
<p><strong>Wheels of Aurelia</strong> is a narrative road trip game set in the roaring Italian 70s. Half racing game, half interactive fiction, it tells the story of Lella, a restless woman driving on the roads of the western coast of Italy, the famous Via Aurelia.<br></p>
<p><br>Wheels of Aurelia plays like an old-school isometric arcade racer, except that you get to chat with your passenger while driving. The story takes places at the end of the 70s – a time of terrorism, kidnappings, and political turmoil in Italy – and it will introduce you to that world and its dynamics thorough a cast of characters that you have never met in a video game. It's up to you to discover their motivations for driving along the coast of Italy and away from their homes.<br><br>Based on your choices – and the places you'll decide to visit – you may end up in car chases, illegal street races, or in tense debates that will make you wonder who your travel companions really are.<span></span></p>
<p><strong>NOTE</strong>: Steam keys are included!</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/TZ0jvh8uNEk" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDEyNDEvMzk3NzA5LnBuZw==/original/j6UaNh.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDEyNDEvMzk3NzA1LnBuZw==/original/cPrJON.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDEyNDEvMzk3NzA2LnBuZw==/original/4lto0z.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDEyNDEvMzk3NzA4LnBuZw==/original/k9cZub.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDEyNDEvMzk3NzA3LnBuZw==/original/93qjoc.png]]
<p>*This is an early release of the first level of our game - more coming soon!*</p>
<p><em>CONTROLLER SUPPORT IS HERE!&nbsp;</em>Play now on your favorite XBox or Playstation controller, and let us know if you run into any issues. We're more than willing to fix them and/or add support for more controllers :)</p>
<p>-------------------------------------</p>
<p>Luna has lived alone at the bottom of the mountain for as long as she can remember, spending her days collecting gems and returning to the river to replenish her water supply. But now, the river has slowed to a trickle, and a new deer has moved into the area.</p>
<p>There's not enough water to survive.</p>
<p>After a strange dream of mystical powers, Luna sets off on a quest to find out what (or who) is causing the river to run dry. Along the way she meets new animal friends and tries her best to survive the dangers of the wild.</p>
<p>When The River Runs Dry is a game that joins together the adventure, narrative, and survival genres. With 2D art set in a 3D environment, there is a whole world to explore with many different landscapes and tons of different characters to meet!</p>
<p>// Gameplay //</p>
<ul><li>Choose your own path by deciding which animals you want to befriend - each friendship will give you even more powers!<br>
</li><li>Fight or try to outwit dangerous monsters in the wilderness<br>
</li><li>Search for hidden treasure as you explore the world<br>
</li><li>Solve interesting and creative environment puzzles, each with a different purpose<br>
</li><li>Learn new magical skills to aid in combat, survival, and problem-solving<br>
</li><li>Find new water sources for both yourself and the communities you decide to help<br>
</li><li>Adventure through eight distinct worlds, each with its own scenery and theme based on the animals that live there</li></ul>
<p>// Wishlist Full Game On Steam //</p>
<p><a href="https://store.steampowered.com/app/1720390/When_The_River_Runs_Dry/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">https://store.steampowered.com/app/1720390/When_The_River_Runs_Dry/</a><br></p>
<p>Feel free to donate! Any money you contribute goes towards development costs for our full game. :)</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/LXm_ct_d5RI" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI0ODc3MC84MjAyMzY5LnBuZw==/original/VpUIl5.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0ODc3MC83OTkwMjg5LnBuZw==/original/Sd0G6j.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0ODc3MC83OTkwMjg4LnBuZw==/original/3Kp0Ff.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0ODc3MC83OTkwMjkwLnBuZw==/original/7AezSQ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0ODc3MC83OTkwMjkyLnBuZw==/original/gMhP7b.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0ODc3MC83OTkwMjkxLnBuZw==/original/IVGCi2.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0ODc3MC83OTkwMjk0LnBuZw==/original/iBW3Kh.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI0ODc3MC83OTkwMjkzLnBuZw==/original/MElTJq.png]]
<p><em>Under
the weight of history, magic has died.<br>In
it’s place stands the tower, old and forgotten. </em>
</p>
<p><em>You
all play The Tower.<br></em></p>
<p><em></em>“Where
Magic Died” is a <strong>3 Page long,</strong> <strong>Dice-less, GM-less</strong> Game
of<strong> Belonging outside
Belonging</strong> for 1-5 Player, to be played in between 30 minutes and
4 hours. Together you will tell the story of an old Tower and the
people trying to explore it – as well the story&nbsp;of the difficulties with finding
a place of belonging in history.</p>
<p>
Belonging
outside Belonging is a Game System written by <a href="https://store.buriedwithoutceremony.com/collections/frontpage/products/dream-askew-dream-apart-pdf" rel="nofollow noopener" referrerpolicy="origin">Benjamin Rosenbaum and Avery Alder</a>. This game builds only on a small part of this very powerful System and you should look the real deal up.</p><p>If you liked this game you might want to play <a href="https://sylph-of-whispers.itch.io/of-pieces">another game of mine</a><br></p>

[img width=500 [https://img.itch.zone/aW1nLzM0Njg2NDYucG5n/original/WvLxYa.png]]
<h2>As the world around her crumbles, Aurelia searches for a way home, unravelling&nbsp;mysteries and wonder along the way.</h2>
<p>This short narrative experience masterfully blends contrasting themes to create a compelling and atmospheric coming of age story. Gentle and undemanding game mechanics allow for escapism into a beautiful and desolate world, filled with secrets.&nbsp;</p>
<p><br></p>
<h3>Navigate and explore a cold and uncertain world</h3>
<p>Follow Aurelia's introspective journey across a changing environment, where she must work to navigate the encroaching cold and venture into the unknown.</p>
<p>Walk, run, and slide your way through tricky terrain, and interact with the world to learn more about the characters that inhabit it.&nbsp;</p>
<p><br></p>
<h3>Listen and learn from others</h3>
<p>With the help of her sister and enigmatic spirits befriended throughout her journey, Aurelia soon learns why the world is collapsing around her, and why she must find her strength before it's too late.&nbsp;</p>
<p>Talk to characters, listen to their stories, and find your way through an uncertain world. With a story that emphasises the importance of empathy and compassion in a world that feels lost and uncertain, we can rely on the help and guidance of others to make it through.</p>
<p><br></p>
<h3>Relax and recharge with a low-demand adventure</h3>
<ul><li>Embrace your curiosity and interact with the world around you to uncover its mysteries</li><li>A concise and linear narrative, designed for easy escapism</li><li>Dialogue allows you to listen and connect with characters in the world</li><li>Evocative and beautiful art style</li><li>Sits at the intersection of games/cinema/narrative</li><li>Explore a hand-crafted world&nbsp;</li><li>Non-violent, low-demand gameplay</li><li>Beautiful soundtrack that will make your heart swell</li><li>Relax at home and enjoy a coming-of-age story that’s suitable for audiences of all ages</li></ul>
<p><strong>This debut from Myriad Games Studio is a moving narrative adventure available now on itch.io, Steam, and Xbox.</strong></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/zSOK6Ldx6RA" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzg1NDY4LzU0MTc1NDMucG5n/original/UUOfLm.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzg1NDY4LzU0MTc1NDQucG5n/original/2XBhDf.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzg1NDY4LzU0MTc1NDUucG5n/original/m0pSJ2.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzg1NDY4LzU0MTc1NDYucG5n/original/o70e40.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzg1NDY4LzU0MTc1NDcucG5n/original/500csr.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNzg1NDY4LzU0MTc1NDgucG5n/original/w7GAS0.png]]
<p>The Thousand Moons is a fragmented region in the furthest reaches of outer space. The name is misleading — there are perhaps hundreds of thousands of Moons here, maybe millions, each one tiny and unique. A perpetual gravity storm rages around this astral archipelago, making entry into the Thousand Moons — or exit from them — quite difficult.</p>
<p>No Moon in the Thousand Moons is bigger than a speck of dust, in the scheme of things. Each one can accommodate only a few people for any length of time, so the few beings — humans and aliens alike — who eke out their livings here tend towards transiency. The Thousand Moons are safe, and they are quiet, though they are far from perfect.</p>
<p>You are a Seneschal of the Thousand Moons. You have been tasked with the care and protection of the Moons — as many as you may visit in what time you have. You stay around two weeks on each Moon you visit, to learn and explore and solve any problems you may encounter. No two Moons are the same, flung here in pieces from disparate galaxies, so there is a great deal to learn and explore.</p>
<p>All Seneschals keep journals, and often leave them behind as a gift to future Seneschals who may arrive on the same Moon. It is exceedingly rare to meet another Seneschal face-to-face — there are so few of you and space is so large — but there is a vast network of you, connected across time and space only by each other’s journals.&nbsp;</p>
<p>---&nbsp;</p>
<p>This is a storytelling game, where you will write the journal of a Seneschal on a new Moon, using randomized word prompts, like Magnetic Poetry, a commercially available set of poetic words printed on refrigerator magnets.</p>

[img width=500 [https://img.itch.zone/aW1nLzQ5NDc4NjAucG5n/original/xL0iIv.png]]
<p><em>Thank you for joining us at Whistling Wolf Café! Our motto is “You might not always get what you want, but you’ll always get what you need.” As you can imagine, serving customers by giving them what they need to feel better instead of what they prefer can be tricky, but I trust that your amazing tea-brewing skills and customer service will win them over. We average three customers an hour, so you’ll have breaks in between.</em></p>
<p><em>Oh! Before I forget, there’s a small shop right next door with things that could help you out. Sometimes there are even people looking for a bit of work. Just be sure you use your own tips to purchase them or the owner will be, well, not so happy. Also, I hate to say it, but if you get three bad reviews, it’s really not going to look good for either of us. So do what you can to avoid that.</em>
</p>
<p>Whistling Wolf Café is a solo café sim game that takes 10-20 minutes to play. You are a master brewer who is more focused on what a customer might need rather than what they want, and that can complicate things. All you need is a deck of playing cards, a handful of six-sided dice, and something to take notes with.</p>
<p><br>A very special thank you to <a href="https://solohistorias.itch.io/" target="_blank">Antonio</a> for writing a Spanish translation of this game! He not only translated it, but took the time to fix any potential cultural gaps for anyone outside of the US! Please be sure to visit&nbsp;<a href="https://solohistorias.itch.io/cafe-el-lobo-aullador" target="_blank">Café El lobo aullador</a>!</p>
<p><br>If you would like to see a playthrough, Vinca Vinye was a lot of fun to watch! You can enjoy the entire video or jump to the smoother second playthrough here:&nbsp;<a href="https://www.twitch.tv/videos/1304787280?t=01h51m14s" rel="nofollow noopener" referrerpolicy="origin">https://www.twitch.tv/videos/1304787280?t=01h51m14s</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM5ODQyNS84MzE3OTEzLnBuZw==/original/rJgchn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5ODQyNS84MTUxODIzLnBuZw==/original/qhcMnS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5ODQyNS84MTUxODI0LnBuZw==/original/lY7K5m.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5ODQyNS84MTUxODI2LnBuZw==/original/755LiD.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5ODQyNS84MTUxODI3LnBuZw==/original/R16Q9Z.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM5ODQyNS84MTUxODI4LnBuZw==/original/J5wKRQ.png]]
<p>You are the last surviving member of a Bureau of Paranatural Survey task force that sought to identify, engage, and subdue any paranatural phenomena reported in a remote mountain town harbouring a violent cult. The roads are blocked and communications with the outside world are jammed.<br></p>
<p>You've managed to escape with a volatile object of paranatural power. The Cult wants it back and they will not stop hunting you.</p>
<p>Nowhere is safe and your time is running out.</p>
<p><em>Wicked Congregation </em>is a solo journaling RPG inspired by<em> The Wretched </em>and uses the<em> Wretched and Alone SRD. </em>It is played with a deck of cards, a tumbling block tower, and either a microphone or journal. It is also inspired by survival horror games like<em> Resident Evil 4</em>, science fiction games like<em> Control</em>, and movies like<em> The Crazies.&nbsp;</em>
</p>
<p><strong>Safety:</strong></p>
<p><em>Wicked Congregation</em> is a solo game experience about being hunted by a supernatural cult. When playing the following themes are covered during play<strong>: religious violence, body horror, paramilitary activity, death, descriptions of death, injury, hopelessness, physical injury, </strong>and<strong> psychological trauma.&nbsp;<strong></strong></strong>
</p>
<p><strong>Contact:</strong></p>
<p>The development of this game was supported by&nbsp;my Patreon supporters! If you want to get previews, free PDFs, and updates on this project, consider supporting me at&nbsp;<a href="http://patreon.com/danielhkwan" target="_blank" rel="nofollow noopener" referrerpolicy="origin">patreon.com/danielhkwan</a>!
</p>
<p>Follow me on Twitter&nbsp;<a href="http://twitter.com/danielhkwan" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@danielhkwan</a></p>
<p><strong>Credits:</strong></p>
<p>Written by Daniel Kwan</p>
<p>Graphic Design: Will Parks</p>
<p><strong>Spotify Playlist </strong>(for inspiration!):&nbsp;<a href="https://open.spotify.com/playlist/67vGX6YE9wpnCwXo4WoY5A?si=597c25e0a6294e9c" rel="nofollow noopener" referrerpolicy="origin">https://open.spotify.com/playlist/67vGX6YE9wpnCwXo4WoY5A?si=597c25e0a6294e9c</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA1MDg4NC82MDEwMzQwLmpwZw==/original/QhwLnx.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1MDg4NC82MDEwMjgxLmpwZw==/original/yCHEGD.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1MDg4NC82MDEwMjgyLmpwZw==/original/TBIpHN.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA1MDg4NC82MDEwMjgzLmpwZw==/original/ziUfny.jpg]]
<p>You abandoned us. Broke us. Lost us. Forgot us. But we never forgot you.<br>We still watch over you. We still protect you from the darkness. From the things out there. From the Hollow.&nbsp;<em>Widdershins is a game about lost toys and what becomes of them. Using an intuitive d% system, characters can be made and a game started in minutes.</em></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNzgzNS84MzIwODA5LmpwZw==/original/iUaSk0.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNzgzNS84MzIwODEwLmpwZw==/original/ix9tyY.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNzgzNS84MzIwODExLmpwZw==/original/%2B%2FykK2.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNzgzNS84MzIwODEzLmpwZw==/original/88%2FvaG.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNzgzNS84MzIwODE4LnBuZw==/original/bLhoZn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNzgzNS84MzIwODE5LmpwZw==/original/KprW9r.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTQyNzgzNS84MzIwODIwLnBuZw==/original/83qEl0.png]]
<p><img src="https://img.itch.zone/aW1nLzEzMzAwMTAuZ2lm/original/LLm8g0.gif" loading="lazy"></p>
<p>You are <strong>Sprocket</strong>, an adorable ferret who knocks things over and steals junk on a space station in the far future! Escape your playpen and make your way to the shuttlebay with the most stuff!</p>
<p><em>Widget Satchel</em> is a daunting adventure for one little thief, with fiendish puzzles and tricky platforming, but don't worry: You may lose some Widgets (or your socks!) along the way, but Sprocket can’t get hurt and there is no “game over.” Of course, it will take all of your ferret-y determination if you hope to stash away every Widget, discover every Trinket, and try on every pair of Socks!</p>
<p><img src="https://img.itch.zone/aW1nLzEzMjkyNTQucG5n/original/aYkN7b.png" alt="Get Widgets" title="Get Widgets" loading="lazy"></p>
<p>Widgets: you want them! But beware, every widget you put in your satchel makes it heavier, making it a little bit harder to jump to the next platform or scramble past the station's maintenance bots. Levels can be relatively easy if you don't collect <em>any</em> Widgets, but they become a greater challenge as you fill Sprocket’s satchel.</p>
<p><img src="https://img.itch.zone/aW1nLzEzMjkyNTUucG5n/original/jniblb.png" alt="Build Doohickeys" title="Build Doohickeys" loading="lazy"></p>
<p>You'll reach special <strong>Fabricator rooms</strong> in each level, where you can exchange your Widgets for power-ups called Doohickeys. <em>Bots giving you trouble?</em> Equip yourself with <strong>The Wrench</strong> and show them what's what. <em>Widget out of reach?</em> Put on <strong>Jef's Boots</strong> and get up there! There are five Doohickeys to help you on your adventure, and you can build them in any order, so you can play the game (and discover its secrets) however you like.</p>
<p><img src="https://img.itch.zone/aW1nLzEzMjkyNTYucG5n/original/ugzDwX.png" alt="Cause Mischief" title="Cause Mischief" loading="lazy"></p>
<p>High scores, hidden collectables, and secret paths are great, sure, but in <em>Widget Satchel</em> you can also just knock stuff over and get into trouble if you prefer! And the more mischief you do, the more <em>mischief points</em> you'll earn! What are mischief points? It's not important, but there are an awful lot of them!</p>
<p><img src="https://img.itch.zone/aW1nLzEzMjkyNDkucG5n/original/0OOb%2BF.png" alt="What Else?" title="What Else?" loading="lazy"></p>
<ul>
<li>Original soundtrack that dynamically reacts to your progress.</li>
<li>Replayable areas with "metroidvania-lite" pathing.</li>
<li>Sock-exclusive inventory system.</li>
<li>Trapdoors, lifts, hydraulic pillars, and other nonsense machinery to manipulate.</li>
<li>20+ game-changing "Feats" to achieve.</li>
<li>Human characters to mildly inconvenience!</li>
<li>Piles and piles of junk!</li>
<li>...and more!</li></ul><p>
</p><p><em><strong><br></strong></em></p><p><em><strong>-------<br>Note: </strong>The Steam code included as a bonus is not valid for users in&nbsp;Japan, as the game has a different publisher in that region. If you are in Japan, feel free to gift the Steam code to a friend in another region.</em><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/2NkaDTN9SFY" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMjcxOTI1LzEzMTU3ODIucG5n/original/yHL7%2BW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjcxOTI1LzEzMjkzMDcucG5n/original/mnfWbu.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjcxOTI1LzI1OTA5NzgucG5n/original/ja0Fu6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjcxOTI1LzI1OTA5NzkucG5n/original/2KK83J.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjcxOTI1LzI1OTA5ODIucG5n/original/Bfr5Hc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjcxOTI1LzI1OTA5ODMucG5n/original/HG4Av%2B.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjcxOTI1LzI1OTA5ODAucG5n/original/PjH2%2F0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjcxOTI1LzI1OTA5ODQucG5n/original/OUVZkn.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjcxOTI1LzI1OTA5ODUucG5n/original/r%2Bjw06.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjcxOTI1LzI1OTA5NzcucG5n/original/tjlTn6.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMjcxOTI1LzI1OTA5ODEucG5n/original/yu1nl5.png]]
<p>You are a half-mortal descendant of the ancient wight wives. You are driven by your need to protect your community, and to exact vengeance on those who oppress them. Build a coven with other wights to support and uplift each other, while you battle anything from soul-sucking demons to gentrification.<br></p>
<p><br>Wights is an 8-page feminist tabletop role-playing game and includes<br></p>
<p>• Complete rules for character creation</p>
<p>• Easy mechanics&nbsp;requiring just 2d6</p>
<p>• Rules for versatile, intuitive magic powers<br></p>
<p>• Character advancement rules for your campaign<br></p>
<p>• A GM section<br></p>
<p>• Safety and Consent tools</p>
<p>You get two versions of the game: one with fancy layout, and one printer-friendly<br></p>
<p><strong>SPECIAL!</strong></p>
<p><strong>Wights shares mechanics and a universe with <a href="https://steffie-de-vaan.itch.io/cupcake-witches">Cupcake Witches</a>.</strong></p>
<p>I offer community copies for all my games. Just drop me a line if you're low on funds and would like a copy.&nbsp;</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzI4NTM2LzgzMDYxMzQuanBn/original/DpSBtH.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzI4NTM2LzgzMDYxNTAuanBn/original/cgl0hQ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzI4NTM2LzgzMDYxMzAuanBn/original/wztNrY.jpg]]
<p>For whatever you needed this game to be, I hope you got what you needed.<span class="">&nbsp;</span></p>
<p>Something I needed to know&nbsp;was that strength can be a lot of things and you may not know it but, <em>you are strong</em> and if you’re not right now there are people in your life that are willing to be strong for you. You only need to reach out and ask for the help you need.</p>
<hr>
<p>This is a meditative solo game that facilitates a space of contemplation and reflection around the themes of&nbsp;<u>escape from reality</u>,&nbsp;<u>generational trauma</u>,&nbsp;&nbsp;and <u>savior syndrome</u>.</p>
<p>Background image by&nbsp;<a href="https://unsplash.com/@bingh" rel="nofollow noopener" referrerpolicy="origin">Bing HAO</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjIxOTQ2LzMzMDkxOTAucG5n/original/JEktBJ.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjIxOTQ2LzMzMDkxOTEucG5n/original/4cHgTg.png]]
<p>Windosill is a point-click-and-drag puzzle-toy, in which you guide a toy car through 10 miniature worlds. </p>
<p>A playable demo is online at <a href="http://windosill.com" rel="nofollow noopener" referrerpolicy="origin">http://windosill.com</a>&nbsp;in browsers that support Flash. (Non-Flash&nbsp;browsers will redirect to this page.)</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzA2OTYvMzIzMTA5LmpwZw==/original/EEkhyu.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzA2OTYvMzIzMTEwLmpwZw==/original/ew6eCV.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzA2OTYvMzIzMTEyLmpwZw==/original/itiHDZ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzA2OTYvMzIzMTEzLmpwZw==/original/dA%2BL%2F5.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzA2OTYvMzIzMTE0LmpwZw==/original/WiKPhw.jpg]]
<<list-links "[tag[Windows]sort[title]]">>
<p>This postcard game was made for <a href="https://itch.io/jam/wish-you-were-here" target="_blank">#WYWHjam</a> and <a href="https://twitter.com/hashtag/ChainLetterJam?src=hashtag_click" target="_blank" rel="nofollow noopener" referrerpolicy="origin">#ChainLetterJam</a> too!</p>
<p><img src="https://img.itch.zone/aW1nLzU5MDU4MDgucG5n/original/2Rs2BO.png" loading="lazy"></p>
<p><img src="https://img.itch.zone/aW1nLzU5MDU4MTMucG5n/original/YhV7rx.png" loading="lazy"></p>

[img width=500 [https://img.itch.zone/aW1nLzU5MDU3MDcucG5n/original/4B2mwM.png]]
<p>Witching Hour is the album of material I made for Soulstober 2021. It's all dark, moody, and spooky music.&nbsp;Included is a series of tracks to play through normally&nbsp;as well as loopable variations for each track.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/SMPeGxas4tQ" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1nLzc3NDExMTAuanBn/original/wo7K1D.jpg]]
<h1>What is Without Escape?</h1>
<p><em>Without Escape</em> harkens back to first-person graphic adventures of the early ‘90s, which relied on pre-rendered backgrounds and full-motion video to tell interactive stories. Explore the confines of your own home as you flip between a mundane existence and a horrifying otherworld. Can you escape the nightmare and find the answers you’re looking for?</p>
<h1>Story</h1>
<p>One chilly winter night, you go home and notice that nobody’s there. Your parents had told you that they would be visiting your grandparents for the weekend, so you give their absence no mind and go to bed.</p>
<p>At 2:45 a.m., your sleep is suddenly interrupted by strange noises. A burglar, perhaps? You decide to investigate – only to plunge into a nightmarish web of stone, flesh, and flame.</p>
<p>With no way to return to what you thought was reality, you must unravel the secret of your home’s transformation. Are you prepared to endure the horrors that await you?</p>
<h1>Features</h1>
<ul>
	<li>Reconnect with the past through classic point-and-click exploration.</li>
	<li>Overcome enigmatic puzzles that will test your wits.</li>
	<li>Play your way with gamepad, keyboard and mouse support.</li>
	<li>Immerse yourself in your home’s oppressive atmosphere with an atmospheric soundtrack.</li>
	<li>Gaze upon 1080p pre-rendered backgrounds – in your old home, which has become a hellish nightmare.</li>
	<li>Discover multiple endings, secrets, and Easter eggs.</li>
</ul>
<h1>Trailer</h1>
<div><iframe width="640" height="360" src="https://www.youtube.com/embed/PAW30U0kxRk?rel=0" frameborder="0" allowfullscreen="allowfullscreen">&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;span class=&quot;redactor-selection-marker&quot; id=&quot;selection-marker-1&quot;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/span&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;</iframe></div>

<iframe width="720" height="450" src="https://www.youtube.com/embed/PAW30U0kxRk?rel=0" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTc1MjcyLzExNzQwOTcuanBn/original/6IfTqV.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc1MjcyLzExNzQwOTkuanBn/original/TD%2FvRt.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc1MjcyLzExNzQxMDAuanBn/original/8HwRM6.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc1MjcyLzExNzQxMDUuanBn/original/P7x8QK.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc1MjcyLzExNzQxMDIuanBn/original/ANRFFK.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc1MjcyLzExNzQwOTguanBn/original/OtC%2BAu.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc1MjcyLzExNzQxMDYuanBn/original/sn7eI5.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc1MjcyLzExNzQxMDMuanBn/original/oXttKO.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc1MjcyLzExNzQxMDQuanBn/original/RxTI6h.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTc1MjcyLzExNzQxMDEuanBn/original/J3Cp4k.jpg]]
<p>Wizard Battle is a puzzle game about a wizard falling down a hole. Use magic to shift rocks so the wizard falls safely!</p>
<p>During a battle with another wizard, you are blindsided and knocked into a deep, dark hole. You will need to use quick thinking and magic if you want to make it out and perform your greatest counterattack!</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/BHksz8Gzr0E" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDUyMjk0LzIzMzIxNzkucG5n/original/eh8iMO.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDUyMjk0LzIzMzIxODAucG5n/original/tXrGgf.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDUyMjk0LzIzMzIxODMucG5n/original/pXeJ11.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDUyMjk0LzIzMzIxODEucG5n/original/cpf5tY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDUyMjk0LzIzMzIxODIucG5n/original/jGG%2FWi.png]]
<p>The world is a wretched place, and&nbsp;life is awful. Thankfully,<strong> You Are&nbsp;</strong><strong>Magic</strong>, and even better, <strong>you can Do&nbsp;</strong><strong>Magic</strong>, and it rules.&nbsp;<strong>Anyone can be a Wizard, and a Wizard can be anyone.</strong></p>
<p><strong><em>Wizard Pals&nbsp;</em></strong>is a lighthearted TTRPG/collaborative storytelling game in which every hero is a mysterious and magically powerful being known as a Wizard. To play, you need some pals of your own, some 12-sided dice, and an adventurous spirit. The game itself is easy to learn and approachable, open-ended and chaotic, and perfect for new TTRPG players and veterans alike.</p>
<p><strong>Real humans had these things to say about&nbsp;<em>Wizard Pals:</em></strong><br></p>
<p>"...a good-ass game..."</p>
<p>"...goofy, but also really warm and inviting."</p>
<p>"Honestly, this game absolutely slaps."</p>
<p>"...charming, buckwild, fun-as-hell..."</p>
<p>And it is the recipient of a very real and major award from&nbsp;<a href="https://catsithpress.com/" rel="nofollow noopener" referrerpolicy="origin">Cat Sìth Press</a>&nbsp;as well as an equally real&nbsp;<a href="https://www.adambaffonirpgs.com/?s=09" rel="nofollow noopener" referrerpolicy="origin">Baffy Award!</a></p>
<p><img src="https://img.itch.zone/aW1nLzY3MzI0MTkuanBn/original/DMas99.jpg" loading="lazy"><br></p>
<p><strong></strong><em><strong>Wizard Pals includes:</strong><strong></strong></em></p>
<ul><li>Fast, fun, randomizable rules for creating Wizards</li><li>Tools for&nbsp;<em><strong>Wizard Pals</strong>&nbsp;</em>GMs to create exciting adventures for their Wizard friends</li><li>Streamlined rules for Wizards in combat</li><li>A full&nbsp;<em><strong>Wizard Pals</strong></em> character sheet</li><li>Brief advice on the use of safety tools in your games</li><li>Two pre-written adventures for GMs to run&nbsp;</li></ul>
<p>This game takes serious (and absolutely not-so-serious) genre inspiration from a number of sources:</p>
<ul><li><em>The Lord of the Rings</em></li><li><em>Flight of Dragons</em></li><li><em>Hello From The Magic Tavern</em></li><li><em>JourneyQuest</em></li></ul>
<p><strong><em>Wizard Pals</em></strong> is written, illustrated, and designed by Tadhg Lyons (Come say hi on twitter, find me&nbsp;<a href="http://www.twitter.com/tadhgthebard" target="_blank" rel="nofollow noopener" referrerpolicy="origin">@TadhgTheBard</a> if you want to talk about Wizards)</p>
<p>Layout and design help by&nbsp;<a href="https://mataramg.itch.io/" target="_blank">Matara Makes Games</a></p>
<p>Editing by&nbsp;<a href="https://www.twitch.tv/rollforfelicity" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Taylor of Roll For Felicity</a></p>
<p>Very special thanks to Beck Langlois, and especially to the playtesters: Melanie Andrews, Brendan Lyons, Tim Olech, Mace Jennings,&nbsp; Jonathan "Juice" Wacker, Josh Moira, Dennis Donovan</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/W-oQDLOwbMg" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA0OTgxOC82MDAzMTU4LmpwZw==/original/rKr67K.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0OTgxOC82MDAzMTU1LmpwZw==/original/T6iVQq.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0OTgxOC82MDAzMTU3LmpwZw==/original/ioOaUa.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0OTgxOC82MDAzMTU2LmpwZw==/original/LPb9vs.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA0OTgxOC82NzMyMzYwLmpwZw==/original/krIy%2FQ.jpg]]
<p>WIZLORDS! is a semi-cooperative, semi-competitive game for 3 or more players, in which you play the roles of wizards on a grand council. You can bend reality to your wills in order to overcome the daily troubles plaguing your realms. You are also completely insane, driven by obsessions that you incorporate into every decision you make.</p>
<p>The Wizlord best able to move the council (or simply make enough wild amendments to council decisions) will be declared the HIGH WIZLORD. Will you be able to wheel and deal while trying not to show the others just how crazy you've become?</p>

[img width=500 [https://img.itch.zone/aW1nLzQ3NTg3OTQucG5n/original/UQssc9.png]]
<p>Time to eat some Dots! </p>
<p>Wondee just wants to eat some Dots but Pointies keep getting in the way. Help Wondee navigate the Lines, evade jagged Pointies and monstrous Mega Pointies, elude the Firewall and reach the Finish Line. Discover Goody Boxes to unlock rewards and conquer your high score. </p>
<p>Wondee™ is a brightly colored arcade game where you race down lines while being chased by a wall of fire, eat dots, evade enemies, and collect chests of goodies. It's a fast-paced arcade-racing-platformer with several game modes and many unlockable abilities that change the way you play.<span></span><br></p>
<p>FEATURES</p>
<ul><li>Colorful arcade action with simple controls</li><li>Unlockable hats with game changing abilities</li><li>Three difficulty levels from easy to hard</li><li>Suitable for young kids - no violence, death, blood or taxes</li><li>Unique game modes and challenges</li><li>Endless levels - ever-changing levels of increasing difficulty</li><li>Gamepad and keyboard support</li></ul>
<p>Website : <a href="http://www.wondeegame.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin"></a><a href="http://garretpolk.com/wondee" target="_blank" rel="nofollow noopener" referrerpolicy="origin">garretpolk.com/wondee</a></p>
<p>Support : <a href="mailto:support@longswordstudios.com" rel="nofollow noopener" referrerpolicy="origin"></a><a href="mailto:support@garretpolk.com" target="_blank" rel="nofollow noopener" referrerpolicy="origin">support@garretpolk.com</a></p>
<hr>
<h3>System Requirements</h3>
<h4><u>Windows</u></h4>
<p>MINIMUM:</p>
<ul><li>OS: Windows 7/8/10</li><li>Processor: Intel Core Duo E6600 2.4GHz (2006 desktop)</li><li>Memory: 4 GB RAM</li><li>Graphics: Nvidia 7900 GS 256 MB RAM (desktop 2006), NVS Quadro 160M (laptop 2008), or similar</li><li>DirectX: Version 9.0c</li><li>Storage: 200 MB available space</li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/xRWIDTayf4U" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNTgzMzYvMzM1ODE3LmpwZw==/original/2xhMQQ.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgzMzYvMzM1ODE4LmpwZw==/original/%2B41NOu.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgzMzYvMzM1ODE5LmpwZw==/original/JqXrFv.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgzMzYvMzM1ODIyLmpwZw==/original/ILB2jB.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgzMzYvMzM1ODE2LmpwZw==/original/R%2FYGST.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgzMzYvMzM1ODIzLmpwZw==/original/Gksojp.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgzMzYvMzM1ODIxLmpwZw==/original/wfZMBY.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgzMzYvMzM1ODIwLmpwZw==/original/STxlan.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgzMzYvMzM1ODE0LmpwZw==/original/3zNBvR.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgzMzYvMzM1ODI1LmpwZw==/original/0qM3Vi.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgzMzYvMzM1ODE1LmpwZw==/original/6rtf6R.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgzMzYvMzM1ODEzLmpwZw==/original/B0niWK.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgzMzYvMzM1ODEyLmpwZw==/original/e1h9Cl.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNTgzMzYvMzM1ODI0LmpwZw==/original/0bLukk.jpg]]
<p><img src="https://img.itch.zone/aW1nLzU3OTQxOTIucG5n/original/WoPSEf.png" loading="lazy"></p>
<p><img src="https://img.itch.zone/aW1nLzgzNzI1NzQucG5n/original/h15Qsc.png" loading="lazy"><br></p><p>The four nations of Wonderland meet every year to agree on shared policies and enact their various schemes against each other. There are personal vendettas to resolve and enchantments hidden everywhere, and did someone mention the dreaded Alice? You are the White Rabbit, and your job is to organise the schedule for the annual summit. Every decision you make affects the destiny of Wonderland!<br></p>
<p><br>Will the King of the barbaric desert of Clubs declare active war on the pastoral paradise of Hearts? Will Prince John of the psychedelic land of Spades be able to elope with Princess Julie of the wealthy Diamond nation - two nations that are deadly enemies? What's up with the King and Queen of Spades's weird marriage? Does the King of Hearts suspect his loyal Duke Jorge of having an affair with his wife? Explore this and much more as you negotiate the likes and dislikes of the twelve guests of the summit.<br><br>Features:<br>- lots of replayability with 42 achievements, 14 characters, and 25000+ words in almost 3000 lines of dialogue - each playthrough only reveals at most 1/12th of the whole fabric of the story<br></p>
<p>- fully voice-acted dialogue</p>
<p>- gallery with 36 pieces of unlockable art</p>
<p>- choose between simple choice menu for first time players, and the drag and drop choice menu for the power players, with randomizer, repeat and reset functions</p>
<p>- player codex containing unlockable information about characters' relationships, secrets, motivations, and player goals and event history</p>
<p>You can find a walkthrough guide for the game here:&nbsp;<a href="https://docs.google.com/document/d/1WLfe-Y7GN-gUu83B7zCMOldoLzYBN29DTWyzQ_ur-38/edit?usp=sharing" rel="nofollow noopener" referrerpolicy="origin">https://docs.google.com/document/d/1WLfe-Y7GN-gUu83B7zCMOldoLzYBN29DTWyzQ_ur-38/...</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/SuiseS3nY5U" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjY1ODA5LzM1OTc1NzMucG5n/original/IbxlIp.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY1ODA5LzM1OTc1NzQucG5n/original/kRgLsy.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY1ODA5LzM1OTc1NzIucG5n/original/hbSLfK.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY1ODA5LzM1OTc1NzAucG5n/original/nWQHrY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjY1ODA5LzM1OTc1NzEucG5n/original/6qn7j%2B.png]]
<p>Working For the Corp is a cyberpunk print and play Descended From the Queen game.&nbsp; You will play characters who work at a megacorp called "The Corp" who are tasked with defending sensitive information from runners.&nbsp; Will you defend The Corp?</p>
<p>Jess Meier @burst0fhope came on to add some cards and it has really changed the game, improving it dramatically.</p>
<p>Cover and card art by @diwataMANILA</p>
<p>Edited by GC Fournier @Callishka</p>
<p>Layout by Devon Apple @devonapple</p>
<p>This is the final printer product.&nbsp; Check it out and let me know on Twitter @KDavidson925 whether or not you Defend The Corp!&nbsp;</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvNDcxOTQ4LzI3Nzc0MDIucG5n/original/UlaZ4X.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDcxOTQ4LzI3MjY5MDcucG5n/original/GZLc0y.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNDcxOTQ4LzI3MjY5MDgucG5n/original/bKeSYw.png]]
<h4>UPDATE 5: NEW SPRITES, WELLS, SMOKE, NEW PORTRAITS</h4>
<p><strong>102 new tiles</strong> have been added, as well as updates to all of the sprites, bringing them in line with the recent <a href="https://jamiebrownhill.itch.io/solaria-sprites">Sprite Pack</a>!<br></p>
<p>There’s also a new smoke animation, and a new character portrait set!</p>
<h4>ABOUT</h4>
<p>The world of Solaria was an epic RPG that I never got around to making, so instead, it will be taking the form of a series of asset packs that you can use to create your own game!&nbsp;
</p>
<p>The first of these is the Rural Village pack, where the hero starts their journey!&nbsp;</p>
<p><strong>This is still in development</strong>, and likely will be for a while. If there is anything you'd like to see added or if you have any feedback, let me know and I'll make the changes in an update! Content updates will likely become smaller to make way for things like plug and play game engine compatibility, but will still be frequent!
</p>
<p>The palette used is a slightly expanded <a href="https://lospec.com/palette-list/resurrect-64" rel="nofollow noopener" referrerpolicy="origin">Resurrect64</a> by Kerrie Lake!
</p>
<h4>CONTENTS</h4>
<ul><li><strong>Rural Village tileset: </strong>2443 individual tiles in 16,32 and 48 pixel sizes.&nbsp;
<ul><li><strong>A&nbsp;large array of terrain tiles!</strong>&nbsp;Grass, dirt, trees and bushes in 2 shades, 4 cliff colours, water edge terrain, rocks, decorations, fences, 3 crops with 3 growing stages and more.</li><li><strong>260+ marketplace tiles!</strong> Featuring canopies, rugs, and items, including more weapons, potions and food!</li><li><strong>Building tiles! </strong>11 walls, 10 roofs with peaked and flat variations, new doors, expanded bridge tiles and more!</li><li><strong></strong><strong>Farming Tiles! </strong>3 different crops with 4 growth stages!</li><li><strong>NEW!&nbsp;</strong>More decorations, including a well, new marketplace items, flowerpots and grass tiles. See the most recent devlog for a full list of additions and updates!<br>
</li></ul></li><li><strong>Tile Animations:&nbsp;</strong>4-frame animations for water, water edges, flames, fish and chests. Door animations, horizontal bridge animations!</li><li><strong>6 Character Sprites:&nbsp;</strong>4-frame walking, idle, attack and minecart animations in 4 directions.&nbsp;</li></ul>
<p>All assets are in PNG format.
</p>
<h4>FUTURE</h4>
<ul><li><strong>More tile animations!</strong>
<ul><li>Animated flowers and more!</li></ul></li><li><strong>More character animations!</strong>&nbsp;
<ul><li>Fishing, farming, combat and more.</li></ul></li><li><strong>More asset packs!</strong>&nbsp;<ul><li>Sci-fi, beach, desert, city, modern.</li></ul></li><li><strong>Other stuff!</strong><ul><li>Possibly UI elements, autotiles and other stuff if there is demand.</li></ul></li></ul>
<h4>LICENSE</h4>
<p>What you can do:
</p>
<ul><li>Use in commercial and non-commercial video games and personal projects.
</li><li>Edit the assets as much as you like for use in projects.
</li><li>Publish work using these assets on websites relating to art, games, and similar.
</li></ul>
<p>What you can't do:
</p>
<ul><li>Resell, repackage or redistribute the assets in original or modified form.
</li><li>Use the assets or derivatives in logo, trademark, or service mark.&nbsp;
</li><li>Include these assets in game making tools, code templates, or NFT/crypto projects.</li></ul>
<h4>COMMISSIONS</h4>
<p>Something you want/need, that's not part of one of the packs?&nbsp;<strong>I'm available for commission!</strong>&nbsp;Contact me via&nbsp;<a href="https://www.twitter.com/jamiebrownhill_" rel="nofollow noopener" referrerpolicy="origin">Twitter</a>!&nbsp;</p>
<h4>SUPPORT</h4>
<p>You can&nbsp;follow me on&nbsp;<a href="https://www.twitter.com/jamiebrownhill_" rel="nofollow noopener" referrerpolicy="origin">Twitter</a>&nbsp;or&nbsp;<a href="https://www.instagram.com/jamiebrownhill/" rel="nofollow noopener" referrerpolicy="origin">Instagram</a>!&nbsp; You can use the button below to support me on&nbsp;<a href="https://ko-fi.com/jamiebrownhill_" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Ko-fi</a>!&nbsp;You don't have to credit me for the use of these assets, but it's much appreciated!
</p>
<p><em><strong><strong><em>Monthly Ko-fi members will receive exclusive daily tiles, compatible with all World of Solaria sets, based on a list of prompts they help decide!</em></strong></strong></em></p>
<p><strong><em>One-time Ko-fi supporters will receive a download key for the </em></strong><a href="https://jamiebrownhill.itch.io/solaria-quiet-cabin"><strong><em>Quiet Cabin</em></strong></a><strong><em> pack!</em></strong></p>
<p><strong><em><img alt="Buy Me a Coffee at ko-fi.com" src="https://lh4.googleusercontent.com/ZinqaoaMi7qydrhD3u1StixdiybP3jCAEBSYZ7q7Nis3WkR-78-QfddCUUL_4wS9lINNc3oQUfUYWsagTySFQneo0VSzgYvBaxm40vXD7dcVyie8yDFh7cEjn1ScoxAVxXn3qRJ4" width="602" height="152" style="margin-left:0px; margin-top:0px" loading="lazy"></em></strong>
</p>
<p>You can also support me by purchasing the other <a href="https://jamiebrownhill.itch.io/">World of Solaria</a> tileset packs!</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMTI5NC83ODAwNTUzLmdpZg==/original/9ImtNm.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMTI5NC83ODAwNTUyLmdpZg==/original/o%2BwsRK.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMTI5NC82NzgwMzIzLmdpZg==/original/JbTkPg.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMTI5NC82NzgwMzI0LmdpZg==/original/HiHxI9.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMTI5NC82NzgwMzIxLmdpZg==/original/ASeL2f.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMTI5NC82NzgwMzIyLmdpZg==/original/C%2FSIj5.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMTI5NC82NzgwNDc2LmdpZg==/original/%2BoO10K.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMTI5NC83ODAwNTUxLnBuZw==/original/OFqb5Y.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMTI5NC83ODAwNTU2LnBuZw==/original/AEQi%2B0.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMTI5NC83ODAwNTU3LnBuZw==/original/rNQNgc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMTI5NC83ODAwNTU0LnBuZw==/original/kuE50L.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTAwMTI5NC83ODAwNTU1LnBuZw==/original/xczN5L.png]]
<h4>ABOUT</h4>
<p>The world of Solaria was an epic RPG that I never got around to making, so instead, it will be taking the form of a series of asset packs that you can use to create your own game!&nbsp;
</p>
<p><strong>The world of Solaria is becoming more populated!</strong> New faces from distant lands are arriving, including <strong>orcs, dragons, toucans and, uh,<em> skeletons?!</em></strong>&nbsp;However, the sudden growth in population is also attracting villains...</p>
<p><strong>This pack is in&nbsp; development</strong>, t<strong>here will be a lot more added and perhaps changed</strong>&nbsp;in updates, coming soon!&nbsp;If there is anything you'd like to see added or if you have any feedback, let me know and I'll make the changes&nbsp;in an update!
</p>
<p>The palette used is&nbsp;<a href="https://lospec.com/palette-list/resurrect-64" rel="nofollow noopener" referrerpolicy="origin">Resurrect64</a>&nbsp;by Kerrie Lake!
</p>
<p><em><strong>*Screenshots contain tiles from other World of Solaria sets. There are no tiles included in this set! Check the full set image to see what's included!*</strong></em><br></p>
<h4>CONTENTS</h4>
<p><strong>This pack contains every player sprite from every World of Solaria pack</strong> released so far. <strong>There are also a lot of new sprites, created with input from Ko-fi members!</strong> Sprite sheets are different from previous versions and now come with separated minecarts and weapons, allowing for more versatility.</p>
<h4>Asset pack includes:</h4>
<ul><li><strong>41 s</strong><strong>prites:</strong><ul><li>2 blacksmiths</li><li>5 heroes, each with an alternate version</li><li>1 knight</li><li>2 orcs</li><li>2 toucans</li><li>10 villagers,&nbsp;each&nbsp;with&nbsp; an&nbsp;alternate version</li><li>3 villains, with alternate versions</li></ul></li><li><strong>Sprite animations:</strong><ul><li>4-frame animations for each character sprite for idle, walking and attack.</li></ul></li><li><strong>Minecart and sword:</strong><ul><li><strong>NEW! </strong>Weapons and vehicles are now separate from the characters, allowing for more versatility and ease of use!</li></ul></li></ul>
<h4>FUTURE</h4>
<ul><li><strong>More sprites!</strong><ul><li>More useful characters like shopkeepers, innkeepers, children.</li></ul></li><li><strong>More variations!</strong><ul><li>Create livelier maps with more varied NPCs, and have more interesting adventures and stories&nbsp;with fun and unique party members and heroes!</li></ul></li><li><strong>More animations!</strong><ul><li>Jumps, rolls, dodges, victory poses, item and tool use, more weapon animations!</li></ul></li></ul>
<h4>LICENSE</h4>
<p>What you can do:
</p>
<ul><li>Use in commercial and non-commercial video games and personal projects.
</li><li>Edit the assets as much as you like for use in projects.
</li><li>Publish work using these assets on websites relating to art, games, and similar.
</li></ul>
<p>What you can't do:
</p>
<ul><li>Resell, repackage or redistribute the assets in original or modified form.
</li><li>Use the assets or derivatives in logo, trademark, or service mark.&nbsp;
</li><li>Include these assets in game making tools, code templates, or NFT/crypto projects.
</li></ul>
<h4>COMMISSIONS</h4>
<p>Something you want/need, that's not part of one of the packs?&nbsp;<strong>I'm available for commission!</strong>&nbsp;Contact me via&nbsp;<a href="https://www.twitter.com/jamiebrownhill_" rel="nofollow noopener" referrerpolicy="origin">Twitter</a>!</p>
<h4>SUPPORT</h4>
<p>You can&nbsp;follow me on&nbsp;<a href="https://www.twitter.com/jamiebrownhill_" rel="nofollow noopener" referrerpolicy="origin">Twitter</a>&nbsp;or&nbsp;<a href="https://www.instagram.com/jamiebrownhill/" rel="nofollow noopener" referrerpolicy="origin">Instagram</a>!&nbsp; You can use the button below to support me on&nbsp;<a href="https://ko-fi.com/jamiebrownhill_" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Ko-fi</a>!&nbsp;You don't have to credit me for the use of these assets, but it's much appreciated!
</p>
<p><em><strong><em>Monthly Ko-fi members will receive access to exclusive tiles, compatible with all World of Solaria sets, access to a members-only Discord, previews of new Solaria sets, and more!</em></strong></em></p>
<p><strong><em>One-time Ko-fi supporters will receive an itch.io&nbsp;download key for the&nbsp;<a href="https://jamiebrownhill.itch.io/solaria-quiet-cabin">Quiet Cabin</a>&nbsp;pack! Check the "Thank you" message!</em></strong>
</p>
<p><a href="https://ko-fi.com/X8X24WDR3" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><img height="36" style="border:0px; height:36px" src="https://cdn.ko-fi.com/cdn/kofi4.png?v=3" alt="Buy Me a Coffee at ko-fi.com" loading="lazy"></a>
</p>
<p>You can also support me by purchasing&nbsp;the other&nbsp;<a href="https://jamiebrownhill.itch.io/">World of Solaria</a>&nbsp;asset packs!</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTI5OTcwNS83NjExODk3LmdpZg==/original/ykJVI%2B.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5OTcwNS83NjExODg2LmdpZg==/original/plHxnw.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5OTcwNS83NjEyMDU5LmdpZg==/original/bQqF%2BM.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5OTcwNS83NjEyMTQxLmdpZg==/original/N3J3fW.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTI5OTcwNS83NjEyMDYwLnBuZw==/original/he%2Fx22.png]]
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<strong>Welcome To Wyldrvir!</strong></p>
<p><img src="https://img.itch.zone/aW1nLzYzMjQ1NTYucG5n/original/ELHtSO.png" alt="The Flags! " title="The Flags! " loading="lazy"></p>
<figcaption>Welcome to Wyldrvir! The banners of our 6 city states: Torren, Cindir, Inoven, Meratoll, Oaa, and Shardelia line up to greet you. </figcaption>
<p></p>
<p><em><strong>A totally free TTRPG that has been working in a combat free and wholesome Saturday morning cartoon style of world with adorable art and simple roleplay focused storytelling!</strong></em></p>
<p>&nbsp;This book is a PDF Version of the core rule document if you would like to download it this way!&nbsp; This book is all you need to start a campaign in this world. It has amazing art from the talented Crowva, and<em> extra content thanks to the year of work we have done!</em> We spent time upgrading our year old core book into something still easy to read but full of new content to get you into the world, and starting your journey!&nbsp;<em><strong>This download comes with the stunning pdf of our core book, a character sheet download to start playing, and a oneshot so you have a story to tell right from the get go!</strong></em></p>
<p></p>
<div class=""><iframe width="500" height="281" src="https://www.youtube.com/embed/bGVTZ7raiv8" frameborder="0" allowfullscreen=""></iframe></div>
<p><em>Huge thank you to Eternal Sushi for writing music for our game!&nbsp;<br></em></p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzYzMjQ1NzkucG5n/original/l5LCjJ.png" alt="The Podcast Kids " title="The Podcast Kids " loading="lazy"></p>
<figcaption>Travelers from the World of Wyldrvir Podcast! </figcaption>
<p></p>
<p>We are a team of young adult writers ages ranging from 18-21 and we have been making this game for a year! When we started making Wyldrvir, we wrote all our content on Google Docs and they still exist! In fact all our content is free on Google Drive at:&nbsp;<a href="https://drive.google.com/drive/u/0/folders/17vy0_18gGHaiDQsYfCzMnGLQ2F_AMCjf" style="font-size: inherit" rel="nofollow noopener" referrerpolicy="origin">This Link here!</a><span></span><br></p>
<p><img src="https://img.itch.zone/aW1nLzYzMjQ1NjguanBn/original/GUwYsk.jpg" alt="World of Wyldrvir Map " title="World of Wyldrvir Map " loading="lazy"></p>
<figcaption>The map to our games world! Ready to be filled in during your travels!</figcaption>
<p></p>
<p><br></p>
<p>&nbsp;Wyldrvir also has a podcast and Discord server which you can link from here:&nbsp;<a href="https://worldofwyldrvir.carrd.co/" rel="nofollow noopener" referrerpolicy="origin">https://worldofwyldrvir.carrd.co/</a>.&nbsp; Feel free to join us there for a community of server games, awesome creators, and of course where you can ask any questions about our world to us!&nbsp;We would love to have you!&nbsp;Huge thanks to you for considering downloading our first fully mastered and completed book, good luck on all of your journeys!&nbsp;</p>
<p><img src="https://img.itch.zone/aW1nLzYzMjQ1ODgucG5n/original/KDwqeI.png" alt="Moth?!" title="Moth?!" loading="lazy"></p>
<figcaption>What is this new and mysterious friend?!</figcaption>
<p></p>
<p><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/bGVTZ7raiv8" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTA5NzA1NS82MzI0NjIzLmpwZw==/original/N%2FQQap.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5NzA1NS82MzI0NjMxLnBuZw==/original/WOBsKW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTA5NzA1NS82MzI0NjMyLnBuZw==/original/8rhv9A.png]]
<h1 class="text-center">A&nbsp;Christmas&nbsp;Themed Otome Game</h1>
<h6></h6>
<p class="text-center">After losing her job and being blacklisted from the business world, Noel has no choice but to sell everything in her apartment and move away from the big city.&nbsp; Lucky for her, Noel's older sister offers the woman a place to stay during the holiday season. The only problem? The insurmountable pressure of her father's expectations, being a good aunt, and trying to find something meaningful to do with her time may just shatter Noel's world.&nbsp;&nbsp;Unless of course, the winter town's cute local carpenter has a say in it!&nbsp;<br></p>
<p><br></p>
<h2 class="text-center"><img src="https://img.itch.zone/aW1nLzc3MTM4OTIucG5n/original/dlUr7S.png" loading="lazy"></h2>
<h2 class="text-center">Featuring 50k Words, Partial Voice Acting, and Custom Art!   &nbsp;</h2>
<p class="text-center">Enjoy a story with&nbsp;original multi-layered sprites, a festive GUI, and multiple CGs! Be immersed by partial voice acting from a talented cast.&nbsp;</p>
<p class="text-center"><br><br><strong>Sprite and CG Art By</strong>: <a href="https://twitter.com/ahwy15" rel="nofollow noopener" referrerpolicy="origin">Ahwy</a></p>
<p class="text-center"><strong>GUI By:</strong>&nbsp;<a href="https://scribbles.itch.io/">Jaime Scribbles</a></p>
<p><br></p>
<p class="text-center"><strong>Voice Acting Provided By:&nbsp;</strong></p>
<p class="text-center"><a href="https://twitter.com/KatteNoel" rel="nofollow noopener" referrerpolicy="origin">Katte Noel</a> (Noel)<br>
</p>
<p class="text-center"><a href="https://twitter.com/anime_brother" rel="nofollow noopener" referrerpolicy="origin">Bradley&nbsp;Gareth</a> (Elliot)</p>
<p class="text-center"><a href="https://twitter.com/SamSladeVO" rel="nofollow noopener" referrerpolicy="origin">Sam Slade</a> (Natalie)</p>
<p class="text-center"><a href="https://twitter.com/SuChanVA" rel="nofollow noopener" referrerpolicy="origin">Su Ling</a> Chan (Zoey)</p>
<p class="text-center"><a href="https://twitter.com/SeanMD155" rel="nofollow noopener" referrerpolicy="origin">Sean M.D.</a>(Noel's Father)</p>
<p class="text-center"><a href="https://twitter.com/hoyleryan" rel="nofollow noopener" referrerpolicy="origin">Ryan Hoyle</a> (Mr.Kartif)</p>
<p><br></p>
<p><img src="https://img.itch.zone/aW1nLzc3MTM3OTYuanBn/original/e5qVkG.jpg" loading="lazy"><br></p>
<h2 class="text-center">Also Featuring One Romance Route and Two Endings</h2>
<p class="text-center">Elliot seems to take a fast liking to Noel. How will their story end?&nbsp; Spend time with the charming man as you go on holiday themed outings and discover new things about Noel!<span></span></p>
<p><br></p>
<p><br></p>
<figure><img src="https://img.itch.zone/aW1nLzc3MTQwMDkucG5n/original/%2BHetQU.png" loading="lazy"></figure>
<p><br></p>
<h2 class="text-center">Game (Also) Made Possible By...</h2>
<p></p>
<p class="text-center"><strong>Logo By:&nbsp;</strong>PogoNR<br></p>
<p class="text-center"><strong>Programming and VA Editing By:</strong>&nbsp;Cats on A Lilypad Studios&nbsp;</p>
<p class="text-center"><strong>Writing and Production By:</strong>&nbsp;LegendEx</p>
<p><br></p>
<h2 class="text-center">Additional CC Credits:</h2>
<p class="text-center"><strong>Backgrounds</strong> from Minikle<br></p>
<p class="text-center"><strong>SFX</strong>&nbsp;from freesound.org<br></p>
<p class="text-center"><strong>Music from CC:</strong></p>
<p class="text-center">&gt; Christmas by Ikson | <a href="https://youtube.com/ikson" rel="nofollow noopener" referrerpolicy="origin">https://youtube.com/ikson</a></p>
<p class="text-center">Music promoted by <a href="https://www.chosic.com/free-music/all/" rel="nofollow noopener" referrerpolicy="origin">https://www.chosic.com/free-music/all/</a></p>
<p class="text-center"><a href="http://creativecommons.org/licenses/by/3.0/" rel="nofollow noopener" referrerpolicy="origin">http://creativecommons.org/licenses/by/3.0/</a></p>
<p class="text-center">&gt; Present by Ikson | <a href="https://youtube.com/ikson" rel="nofollow noopener" referrerpolicy="origin">https://youtube.com/ikson</a></p>
<p class="text-center">Music promoted by <a href="https://www.chosic.com/free-music/all/" rel="nofollow noopener" referrerpolicy="origin">https://www.chosic.com/free-music/all/</a></p>
<p class="text-center"><a href="http://creativecommons.org/licenses/by/3.0/" rel="nofollow noopener" referrerpolicy="origin">http://creativecommons.org/licenses/by/3.0/<br></a></p>
<p class="text-center">&gt; Deck the Halls B Kevin MacLeod (incompetech.com)&nbsp;</p>
<p class="text-center">Licensed under Creative Commons:&nbsp;By Attribution 3.0 License&nbsp;</p>
<p class="text-center"><a href="http://creativecommons.org/licenses/by/3.0/" rel="nofollow noopener" referrerpolicy="origin">http://creativecommons.org/licenses/by/3.0/</a></p>
<p class="text-center">&gt; Additional Music from&nbsp;Wow Sound and <a href="https://sidearm-studios.itch.io/ultimate-music-bundle">Sidearm Studios</a></p>
<p class="text-center"><a href="https://sidearm-studios.itch.io/ultimate-music-bundle"></a><span class=""></span>(Game Page BG:&nbsp;<a href="https://www.vecteezy.com/free-vector/christmas-tile" rel="nofollow noopener" referrerpolicy="origin">Christmas Tile Vectors</a> by Vecteezy)<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMyNjQyNS83NzE0MTI2LnBuZw==/original/nI81qo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMyNjQyNS83NzE0MDkxLnBuZw==/original/2CLPmj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMyNjQyNS83NzE0MDYxLnBuZw==/original/5R7AxT.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMyNjQyNS83NzE0MDY1LnBuZw==/original/N5Hq1J.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMyNjQyNS83NzE0MDkzLnBuZw==/original/e0c%2BJ9.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMyNjQyNS83NzE0MDkyLnBuZw==/original/B4DU4v.png]]
<p><strong>The power of Xenonature..</strong><br><br>In the future year of 2011, Zeta Reak, kind, gentle king of the Xenolians, is overthrown by a powerful tyrant named the "Xenogunner".<br><br>The Xenogunner is a mysterious being capable of many frightening feats, using a power known as "Xenonature", a powerful energy that grants one trained in the use of it many elemental and non-elemental powers.<br><br>Zeta, too, is gifted with the powers of Xenonature. It's up to Zeta to overthrow the Xenogunner and reclaim the throne...<br><br>...but is the Xenogunner actually the one pulling the strings...?<br><br><strong>Intense Boss Battles!</strong><br><br>Xenogunner is an intense boss-focused run-and-gun platformer based on games from the days of 16-bit consoles. With the addition of conveniences like mouse aiming and highly customizable difficulty settings, we believe that we've truly modernized a classic game genre that started in decades long since past.<br><br>The stages are short, the bosses are challenging, varied, and tense, and we give you as many lives as you'll need... because you'll need as many lives as you can get! Can Zeta best the Xenogunner...? Only you can guide him to victory!</p>
<p><em>"Xenogunner is fun. Like, ridiculously fun."</em> - Steam Review</p>
<p><iframe width="560" height="315" src="https://www.youtube.com/embed/j70hnnTTlbo" frameborder="0" allowfullscreen=""></iframe></p>
<p>If you are interested in more information on the original game jam entry, visit:&nbsp;<a href="https://happy-frog-games.itch.io/xenogunner-gamejam">https://happy-frog-games.itch.io/xenogunner-gamejam</a><br><a href="https://twitter.com/search?q=%23MadeWithFusion%E2%80%8B&amp;src=typed_query" rel="nofollow noopener" referrerpolicy="origin">#MadeWithFusion</a></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/j70hnnTTlbo" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjEwMTE0LzMyNDMwMDkuanBn/original/CUrKG1.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEwMTE0LzMyNDMwMTIuanBn/original/nIII5h.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEwMTE0LzMyNDMwMTMuanBn/original/8yQe2I.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEwMTE0LzMyNDMwMTQuanBn/original/V5ater.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNjEwMTE0LzMyNDMwMTUuanBn/original/u5R8N7.jpg]]
<p><img src="https://img.itch.zone/aW1nLzEzMTMyNTcucG5n/original/6gcvHa.png" loading="lazy">Yi and the Thousand Moons is a short video game musical writ<dfn class="">ten and developed by </dfn>David Su. Through the course of several original interactive songs, featuring a full cast and live band, the game weaves a story of the archer Yi's journey to save her village.</p>
<p>Darkness is expanding, and the gods plan to combat it by harvesting moonlight. They want the legendary archer Yi to shoot the moons down, but the villagers have warned her that the moons are what protect the earth from stardust. Help Yi rescue her village from catastrophe!</p>
<p>Starring:<br>Dominique Star as Yi<br>Laila Smith as Villager Qing<br>Magnus Ferguson as Villager Wen<br>Reid Jenkins as Villager Zhi<br>Wesley Kwok as God Shui<br>Yuyu Feng as God Mu<br>Gabriel Zucker as God Huo</p>
<p>Additional Musicians:<br>Siddhu Anandalingam (saxophones)<br>Reid Jenkins (violin)<br>Gabriel Zucker (guitar)</p>
<p><strong>Key Features</strong></p>
<ul><li>A unique interactive musical experience in which all the levels are songs to be played through (in both senses of the word!)</li><li><dfn class="">Seven original songs and </dfn><dfn class="">six preludes composed by </dfn>David Su, starring a full cast and live band</li><li>Play as Yi, a legendary archer who has been commanded by the gods to shoot down all of the moons</li><li>Enter a world in which all your interactions with characters occur through music</li></ul>
<p><strong>Awards</strong></p>
<p>- Nominated in the Audio Design category at the&nbsp;<a href="https://steamcommunity.com/linkfilter/?url=http://tiga.org/awards/2017-shortlist" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><dfn class="">2017 TIGA Games Industry&nbsp;</dfn>Awards</a><br>- Nominated for Best Style at the&nbsp;<dfn class=""><a href="https://steamcommunity.com/linkfilter/?url=https://www.thebitawards.com/awards" target="_blank" rel="nofollow noopener" referrerpolicy="origin">2017 Bit Awards</a></dfn><br>- Best Arthouse Finalist in the Indie Z<dfn class="">one at&nbsp;</dfn><span class=""><a href="https://dreamhack.com/austin/indie-zone" class="" rel="nofollow noopener" referrerpolicy="origin">DreamHack Austin 2018</a></span><br>- Finalist in the&nbsp;<span class=""><a href="http://indieprize.org/usa2018/" class="" rel="nofollow noopener" referrerpolicy="origin">Indie Prize Showcase</a></span>&nbsp;at Casual Connect USA 2018<br>-&nbsp;Official selection in the&nbsp;<span class=""><a href="http://playdategameshow.com/" class="" rel="nofollow noopener" referrerpolicy="origin">Playdate Game Show</a></span>&nbsp;at LA Zine Fest 2018<br>- Entrant in the&nbsp;<a href="http://www.igf.com/article/igf-2018-celebrates-bumper-crop-diverse-and-exciting-entries" target="_blank" rel="nofollow noopener" referrerpolicy="origin"><dfn class="">2018 Independent Games Festival</dfn></a><br>- Showcased at Playcrafting’s&nbsp;<dfn class="">2017 Fall Play Game&nbsp;</dfn>Expo<br>- Official artwork selection at the&nbsp;<span class=""><a href="https://steamcommunity.com/linkfilter/?url=http://hackingarts.com/tech-expo-2017" target="_blank" rel="nofollow noopener" referrerpolicy="origin">MIT Hacking Arts 2017</a></span>&nbsp;exhibition</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/XPHa3O28PUs" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTg2NDcyLzExNjA3MTMuanBn/original/GWeZ43.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg2NDcyLzExNjA3MTUuanBn/original/fV3kYr.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg2NDcyLzExNjA3MTcuanBn/original/R9oxPC.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg2NDcyLzExNjA3MTIuanBn/original/o8LogA.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg2NDcyLzExNjA3MTguanBn/original/6n%2FJVo.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg2NDcyLzExNjA3MTYuanBn/original/20BAG3.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTg2NDcyLzExNjA3MTQuanBn/original/u05pJv.jpg]]
<p>In Ynglet you jump between bubbles that float in the sky like you’re a space dolphin, as you melt into a highly reactive and dynamic soundtrack created by Ynglet's custom (and needlessly complicated) music software!</p>
<p>Follow me ( Nifflas on twitter ) <a href="https://twitter.com/Nifflas" rel="nofollow noopener" referrerpolicy="origin">@nifflas</a><a href="https://twitter.com/Nifflas" rel="nofollow noopener" referrerpolicy="origin"></a></p>
<p>Join us on&nbsp;<a href="https://discord.gg/q3nNqkg" rel="nofollow noopener" referrerpolicy="origin">Discord</a></p>
<h3>A Floating non Platformer</h3>
<p><img src="https://img.itch.zone/aW1nLzUwNjcwMjkuZ2lm/original/uYqv3G.gif" loading="lazy"></p>
<p>Absolutely no platforms (which is really unusual for a platformer)!<span></span><span></span></p>
<p><br></p>
<h3>Fluid Difficulty</h3>
<p><img src="https://img.itch.zone/aW1nLzUwNjcwMzUuZ2lm/original/pD6EXu.gif" loading="lazy"></p>
<p>Find the level of challenge that suits you with granular difficulty settings. The ability to set quick respawn points at any time means repeating frustrating sections is never required.<br></p>
<p><br></p>
<h3>Feel Good</h3>
<p><img src="https://img.itch.zone/aW1nLzUwNjcwMTguZ2lm/original/AOMVXn.gif" loading="lazy"></p>
<p>Dash into walls that reflect you. It feels really good and looks awesome!</p>
<p><br></p>
<h3>Did I mention there are no platforms?</h3>
<p><img src="https://img.itch.zone/aW1nLzUwNjcwMjEuZ2lm/original/WAwSO8.gif" loading="lazy"></p>
<p><br></p>
<h3>Doodles for days</h3>
<p><img src="https://img.itch.zone/aW1nLzUwNjcwMjQuZ2lm/original/XmUqg0.gif" loading="lazy"></p>
<p>The hand drawn art style takes a fresh ‘illustrated’ approach, reminiscent of expressive doodles come to life. There’s lots of unusual creatures doing their own thing, making the world feel alive.</p>
<p><br></p>
<p><em>"I have made a lot of other games before like Knytt, Uurnog, and Affordable Space Adventures but I really hope you will like this game too!" / Nifflas</em><br></p>
<p><br></p>
<p class="text-center"><img src="https://img.itch.zone/aW1nLzUwNjY5MjMucG5n/original/KhB9Dr.png" loading="lazy"><img src="https://img.itch.zone/aW1nLzYxMjE4MDQucG5n/original/BAr5K9.png" loading="lazy"></p>
<p><br></p>
<h3>Minimum System Requirements</h3>
<h4>Windows</h4>
<ul><li>Requires a 64-bit processor and operating system<br>
</li><li>OS:&nbsp;Windows 7<br>
</li><li>Processor:&nbsp;64-bit supporting AVX instructions (CPUs newer than ~2012 should support this)<br>
</li><li>Memory:&nbsp;4 GB RAM</li><li>Graphics: Dedicated graphics card</li><li>Storage:&nbsp;1 GB&nbsp;available space<br>
</li><li><a href="https://support.microsoft.com/en-us/topic/the-latest-supported-visual-c-downloads-2647da03-1eea-4433-9aff-95f26a218cc0" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Visual Studio (2015, 2017, 2019) C++ Redistributable</a></li></ul>
<h4>Mac OS X</h4>
<p>Only available <a href="https://store.steampowered.com/app/1015920/Ynglet/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">on Steam</a> for technical reasons.</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/NCc7NO5P_48" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNjgwNDg5LzM3Mzk0MTEucG5n/original/8IRbzI.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjgwNDg5LzM3Mzk0MTIucG5n/original/Axo%2BZS.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjgwNDg5LzM3Mzk0MTMucG5n/original/XvMMHY.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjgwNDg5LzM3Mzk0MTYucG5n/original/NbQbfG.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjgwNDg5LzM3Mzk0MTUucG5n/original/VqQzwx.png]][img width=500 [https://img.itch.zone/aW1hZ2UvNjgwNDg5LzM3Mzk0MTQucG5n/original/hVu0iP.png]]
<p>A confusing campground. Weak characters. Invisible items and weapons. Confounding play. And a purple and teal Jason?</p>
<p>This was&nbsp;<em>Friday the 13th</em>&nbsp;on the NES, a game frequently panned for being clumsy, incomprehensible, and far too hard.</p>
<p>And almost every modern horror game owes it a debt, whether they know it or not.</p>
<p>The NES&nbsp;<em>Friday the 13th&nbsp;</em>broke new ground in horror, establishing the use of confusion and nebulous rules to create a compelling mystery. It created pressure and despair through its clever use of hidden items, keeping players from becoming too powerful. It also created a powerful stalker in the form of Jason, using his power and shocking appearances to pave the way for the relentless monsters that would haunt our playthroughs of&nbsp;<em>Amnesia</em>,&nbsp;<em>Resident Evil 3</em>,&nbsp;<em>Clock Tower</em>, and more.</p>
<p>Despite its hated reputation,&nbsp;<em>Friday the 13th</em>&nbsp;established trends back in 1989 that would continue to shape horror to the present. It would also ask questions few other horror games would dare. Should horror be pleasant, or should it crush us with fear and hopelessness? Can we make lives truly matter in the disposable existence of a video game?<strong></strong></p>
<p>Featuring interviews with journalists and game developers of various disciplines, "YOU AND YOUR FRIENDS ARE DEAD. – An Unofficial Analysis of LJN's Friday the 13th" is an attempt to break down the various horror elements of the game and how they make&nbsp;<em>Friday the 13th</em>&nbsp;into a misunderstood masterpiece, and one of the most important entries in the genre.</p>

[img width=500 [https://img.itch.zone/aW1nLzIwMTQ1MTguanBn/original/k7lUuw.jpg]]
<p>You are 100 goblins, and in a cruel twist of fate, the future of the world rests on your many tiny shoulders.</p>
<p>This is a Role-Play Game for 2+ players, one player will be the GM (Goblin Master) and all other players will take control of 100 goblins each.</p>
<p>Featuring original art by TopBananaJam</p>

[img width=500 [https://img.itch.zone/aW1nLzQ3Mzg3NzkucG5n/original/PfKL9n.png]]
<p>“You are Me” is a 2-player game about 5 minutes long (per iteration) designed to be played anywhere.</p>
<p>Have you ever put yourself in another person's shoes? Have you ever allowed someone to put themselves in your shoes? In "You Are Me" one player asks the other to be him or her for a few moments and make a choice. The game may then end or another iteration of the same situation may be played. At each iteration the information increases and the identification with the other as well.</p>
<p>This game is a tool that can be used for fun or serious games, depending on the proposed situation. The aim is to understand each other by playing.</p>
<p>It does not require cards, dice or other components.</p>
<p>One of the players must have read these rules. It is not necessary for the other to have read it (although the first time this could slightly lengthen the playing time).</p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTMyNzAzMy83NzE3MjMzLmpwZw==/original/DvQBCx.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTMyNzAzMy83NzE3MjM0LnBuZw==/original/dCyMtl.png]]
<p><em>You Can Pet The Dog VR</em>&nbsp;is a short VR game where you can fulfill the ultimate video game fantasy: petting the dog. Set in the beautiful opening sequence of upcoming game&nbsp;<em>DOGGONE</em>, you will experience a gorgeous hand-crafted art style and an adorable pup awaiting play time.</p>
<h2>Features:</h2>
<ul><li>Play with a dog, and most importantly, pet the dog. This is why you're here, after all.<br>
</li><li>Throw a ball to play fetch, toss a stick and see the dog go after it, or just stop and pet that cute dog.<br>
</li><li>Relax in a breathtaking environment inspired by classic Disney films.<br>
</li><li>Experience the head-start to once-in-a-lifetime game&nbsp;<em>DOGGONE</em>, Raconteur Games' upcoming game about a lost dog.
</li></ul>
<p>There are games that will give you hundreds of hours of gameplay with branching narrative and unparalleled player choice. This is not one of them. In fact, it's the exact opposite. It's one thing, and one thing precisely: Petting a dog, and unplugging from the world.<br><br><em>You Can Pet The Dog VR</em>&nbsp;was designed with bright colors and beautiful handcrafted landscapes. It has been tailored to be enjoyable for most levels of color perception, such that color blind players should be able to adjust a setting and enjoy the game no matter their situation.</p>
<p><strong>Compatible with Oculus Rift S and HTC&nbsp;Vive. Not tested with Index.</strong></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTE4Mzc2Ny82ODk5NDEyLmpwZw==/original/5PhZC%2B.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTE4Mzc2Ny82ODk5NDEzLmpwZw==/original/J4Ti2q.jpg]]
<h1>Transcendent				Roguelike Solitaire</h1>
<p><em>You have perished, but the fungal spores that suffuse your corpse cannot be destroyed so easily. After a timeless time, you return to a body, though you don’t remember if it is yours or not. You are reconstituted, but also transformed.</em></p>
<p>This game represents a risky, cyclical search for meaning in a vast and hostile mycological landscape. Your personal power is tracked in the playing cards kept in front of you. If you win the battles in the forest, your power will increase. The forest is dealt in front of you, explored, shuffled, and dealt again. Sometimes you will find what you are looking for in the forest before you die. Sometimes not.<br></p>
<h3>Roguelike Solitaire</h3>
<p>Fight monsters in the forest! Deal quick  card layouts for yourself and the forest, resolve the round, do it again. The  more rounds you play, the more you level up your power. When you beat  the game, you could stop. Or you could mark down a transcension bonus  and go around again, stronger from the start.
    
</p>
<h3>
</h3>
<h3>Inspirations</h3>
<p>This game was inspired in equal parts by Peach Garden Games <a href="https://peachgardengames.itch.io/apex-predator">Apex Predator</a>, the videogame genre of “idle games”, and a meme about mushrooms. <br></p>
<h3>What's in the Box?</h3>
<ul><li>Full color PDF for screen.</li><li>A more sedate PDF for printing at home. The print friendly version has no background texture for pages or blocks of text, and the images have all been faded out so they don't burn out your printer. This might also be the high-contrast version.</li></ul>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTY5Mzc0LzU5Njc2ODEuanBn/original/0qPHwf.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTY5Mzc0LzU5NDQxMzQuanBn/original/pMlEHw.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTY5Mzc0LzU5NDQxMzIuanBn/original/wcp0mw.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTY5Mzc0LzU5MTQ2MDUucG5n/original/El4p16.png]][img width=500 [https://img.itch.zone/aW1hZ2UvOTY5Mzc0LzU5NDQxNTcuanBn/original/0r9nin.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTY5Mzc0LzU5Njc4MDkuanBn/original/GRw5A%2F.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvOTY5Mzc0LzU5Njc5ODUuanBn/original/W9xo4H.jpg]]
<br>
<h2></h2><h2>You have been trapped in a time loop with your future self. They have committed a terrible crime in the near future, and the only way you can escape the loop is to convince them of the wrongness of their actions.</h2>
<p>As you progress in your conversation with your future self, it becomes very apparent that something is amiss. Someone is lying to you. The question is: who? And why?<br><br>If you want to be free, make sure you figure out the truth.<br><br>Think carefully. Think strategically.<br><br><em>...and good luck.</em><br></p>
<hr>
<br>
<p><strong>Your Future Self&nbsp;</strong>is a 1-2 hour long story-driven experimental text adventure with unique conversational mechanics, time loop based gameplay, and an emotionally gripping time travel mystery set against the backdrop of a darkly realistic vision of our world ravaged by climate change.</p>
<p>The full soundtrack is available for free&nbsp;<a href="https://contortionistgames.bandcamp.com/album/your-future-self" rel="nofollow noopener" referrerpolicy="origin">on bandcamp</a>.</p>
<p><em>WARNING: This game contains flashing images. If you experience epileptic seizures or blackouts when exposed to certain light patterns or flashing lights then immediately discontinue use of this game and and consult your physician before resuming gameplay.</em><br></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/N13OJbbKVMc" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzIzOTU1LzE2MDAyMzcucG5n/original/z2NJdu.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzIzOTU1LzE2MDAyNDIucG5n/original/qFPtzW.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzIzOTU1LzE2MDAyMzgucG5n/original/0YFZLM.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzIzOTU1LzE2MDAyMzkucG5n/original/PA5rVo.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzIzOTU1LzE2MDAyNDAucG5n/original/y2097i.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzIzOTU1LzE2MDAyNDEucG5n/original/0xOGRy.png]]
<p><img src="https://img.itch.zone/aW1nLzgwNzM4OTgucG5n/original/bpisgH.png" loading="lazy">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; is a solo tabletop role playing game about Introspection, Identity, and Heritage. You play as a character who has discovered they are a Changeling, a fae amongst humans, and through the game you will explore&nbsp; changes, challenges, joy, and most importantly what it means to be Yourself. <br></p>
<p>You will go through 5 Acts answering questions and prompts to figure yourself out through your past, your present, and your hopes for future. <br></p>
<p><img src="https://img.itch.zone/aW1nLzgwNzUwMjgucG5n/original/viUwko.png" loading="lazy"><br></p>
<h2>Game Contents</h2>
<ul><li>20 Page pdf</li><li>5 Acts</li><li>4 Sonnets</li><li>14 Prompts per Act</li><li>BW Word only PDF </li><li>txt File </li></ul>
<p>This game was made<em> In Memory of <a href="https://blinkingbirchgames.itch.io/anamnesis">ANAMNESIS<br></a></em></p>
<p><em>Anamnesis </em>copyright <a href="https://twitter.com/GoblinMixtape" rel="nofollow noopener" referrerpolicy="origin">Samantha Leigh</a></p>
<p>Special thanks to <a href="https://twitter.com/momatoes" rel="nofollow noopener" referrerpolicy="origin">Momatoes </a>for their game<em> <a href="https://momatoes.itch.io/the-magus">the MAGUS</a></em> for visual inspiration</p>
<p><em><img src="https://img.itch.zone/aW1nLzgwNzUwNDAucG5n/original/178uZr.png" loading="lazy"></em><br></p>
<h2>Basic Info</h2>
<p>Players: 1</p>
<p>Items Needed: Tarot or French Deck, Recording Method, Optional Dice</p>
<p>Session Time: ~1 hour<br></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTM4NTk2NS84MDczODU1LnBuZw==/original/iQ1ZLx.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM4NTk2NS84MDczODU2LnBuZw==/original/vzd6Lj.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMTM4NTk2NS84MDczODU4LnBuZw==/original/Fr17WX.png]]
<p class="text-center"><em></em><em>This is the story of a fighter who wanted to become...</em></p>
<p><strong>ZeroRanger</strong> is a vertically scrolling 2D shoot'em up with heavy emphasis on shooting, dodging and... mystery?</p>
<p>The forces of unknown alien menace <strong>GREEN ORANGE</strong> have begun their invasion.&nbsp;With the planet's&nbsp;main defense force swiftly taken down, only two secondary fighters remain against the complete defeat.</p>
<p>Blast your way through the enemy forces and unleash your fighter's latent potential!<br>Unlock new weapons and abilities as you hone your skills against the invaders!<br>... But even then, is this enough against the true power of your enemy?</p>
<p><strong>The final battle&nbsp;starts now...</strong></p>
<p></p>
<p><strong>Features:</strong></p>
<ul><li>8 distinct colours (including GREEN and ORANGE)</li><li>4 stages of enlightenment &amp; relentless action</li><li>2 playable fighters</li><li>1 endless cycle of life and death</li><li>Local co-op</li><li>TATE (screen rotation)</li><li>Scanline options</li><li>Colourblind mode &amp; unlockable palettes</li></ul>
<p><strong>Demo:</strong></p>
<p><a href="https://system-erasure.itch.io/zerorangerdemo">https://system-erasure.itch.io/zerorangerdemo</a></p>
<p><strong>Follow us at:</strong></p>
<p><a href="https://se-made.com/" rel="nofollow noopener" referrerpolicy="origin">https://se-made.com/</a></p>
<p><a href="https://twitter.com/System_erasure" rel="nofollow noopener" referrerpolicy="origin">https://twitter.com/System_erasure</a></p>
<p><strong>Controls:</strong></p>
<ul><li>Keyboard (remappable):<ul><li>Arrow keys - Move</li><li>Z - Fire 1/Confirm</li><li>X - Fire 2/Cancel</li><li>C - Fire 3</li><li>Ctrl - Fire 1+2+3</li><li>Enter - Pause</li><li>Esc - Exit game</li><li>F1 - Help display</li></ul></li></ul>
<ul><li>Controller (XInput/DirectInput, remappable):<ul><li>Joystick/D-pad - Move</li><li>A - Fire 1/Confirm</li><li>B - Fire 2/Cancel</li><li>Y - Fire 3</li><li>RT - Fire 1+2+3</li><li>Start - Pause</li><li>Back - Exit game</li></ul></li></ul>

<iframe width="720" height="450" src="https://www.youtube.com/embed/CaBVmXQlogw" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMzA5OTE5LzE1MjI4MTYucG5n/original/ROS4oc.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA5OTE5LzE1MjI4MTkucG5n/original/%2BVEj59.png]][img width=500 [https://img.itch.zone/aW1hZ2UvMzA5OTE5LzE1MjI4MjEucG5n/original/XlBuV9.png]]
<p><img style="" src="https://img.itch.zone/aW1nLzY0NTc4MTgucG5n/original/fiYuF4.png" loading="lazy"></p>
<h2>IT'S THE ZOMBIE APOCALYPSE,<br>
BUT YOU CAN'T MISS A WORK DAY!</h2>
<p>Your job has become significantly more difficult now that all your coworkers are trying to eat your brain. You must scavenge for weapons, fight for your survival... and&nbsp;don't forget to restock the toner cartridges over at&nbsp;accounting.</p>
<p>Work your way up the corporate ladder, all the way to the rescue helicopter on&nbsp;the rooftop, in this humorous top-down&nbsp;shooter.</p>
<h2>FEATURES</h2>
<ul>
<li>Play solo or with a colleague in <strong>local co-op</strong>!</li>
<li>Shoot zombies using keyboard/mouse or gamepad!</li>
<li>Eight&nbsp;procedurally generated floors!</li>
<li>Eight deadly zombie coworkers!</li>
<li>Five different weapons!</li>
<li>A lot of work to do!</li>
<li>Coffee!</li>
<li>Toilets?!</li>
</ul>
<div style="text-align: right"><img style="max-width: 60%; margin-right: 10%; margin-top: -2em" src="https://img.itch.zone/aW1nLzY1Mjk0MjEucG5n/original/WdH2kp.png" loading="lazy"></div>
<h2>Employee Handbook</h2>
<p>We would like to personally welcome you to the office&nbsp;family. As&nbsp;administrator, your job is to keep our office running&nbsp;smoothly.</p>
<h3>- Your Health Is Important To Us -</h3>
<p>Doing your job (or getting bitten by your coworkers) can&nbsp;be&nbsp;stressful. Be&nbsp;sure to&nbsp;drink enough <strong>coffee</strong> to keep you&nbsp;going. If&nbsp;you become aware that all that drinking is beginning to negatively affect your productivity, we&nbsp;are legally obligated to inform you that you are free to use any of the multiple <strong>bathrooms</strong> available on&nbsp;each&nbsp;floor.</p>
<h3>- Safety First -</h3>
<p>A safe work place is a happy work place, this&nbsp;is&nbsp;why we have placed multiple <strong>firearms</strong> on each floor of the&nbsp;office. Feel&nbsp;free to use them if you have to—your coworkers can&nbsp;be&nbsp;replaced.</p>
<h3>- Performance Reviews -</h3>
<p>We will regularly evaluate your performance to help you grow to your full&nbsp;potential. While&nbsp;these evaluations are not&nbsp;mandatory, our&nbsp;company has a&nbsp;long and proud history of rewarding&nbsp;<strong>achievement</strong>.</p>
<p><img src="https://img.itch.zone/aW1nLzY5NDc1NzQuZ2lm/original/YYWAxd.gif" loading="lazy"></p>
<h3>- Stay Informed -</h3>
<p>It is <strong>mandatory</strong> for all employees to click the "<em>Add To Collection</em>" button at the upper right of the screen, to be notified about any updates.</p>
<h3>- Streamer? -</h3>
<p>Grab a review key from <a href="https://woovit.info/zombie-admin" rel="nofollow noopener" referrerpolicy="origin">woovit</a></p>

[img width=500 [https://img.itch.zone/aW1hZ2UvOTU4NTA4LzcwOTE1MjcuZ2lm/original/vMqrth.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvOTU4NTA4LzY3NTM5NzkuZ2lm/original/z1fNEX.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvOTU4NTA4LzcwOTE1MjguZ2lm/original/v3KgEH.gif]]
<p class="text-justify text-center"><em>A classic twin-stick shooter with a twist, you will have to face lots of Zombies and other creatures with everything you got. Beware!</em></p>
<p><strong><a href="https://retrowax.itch.io/zombusters/rate?source=game">Please help us by Rating this game!</a></strong><br></p>
<p>
</p>
<p><strong>WHO YOU GONNA CALL?</strong><br></p>
<p>There is something strange in the neighborhood. There are a lot of Zombies in our city, the zombie invasion is here! We need to stop them!</p>
<p><img src="https://img.itch.zone/aW1nLzMwOTU5ODEuZ2lm/original/4Xq5ql.gif" loading="lazy"><br></p>
<p>It will let you sticked on your seat until the end. Its 2D graphics and isometric view make it a different specie in its genre. You will have to face a horde of Zombies that try to get you down with the help of various weapons/power ups and different moving styles.<br></p>
<h3>Features</h3>
<ul><li>Cool Weapons and Power-Ups</li><li>Leaderboards</li><li>Original Indie Soundtrack (12 Tracks)</li><li>10 Different Maps</li><li>4 Playable Characters</li><li>Input: Keyboard&amp;Mouse and Gamepad (Xbox360)</li><li>Awesome Pixel Art graphics&nbsp;</li></ul>
<h3>Roadmap</h3>
<p>We are working to give you the best experience and we still have a lot of work to do:</p>
<ul><li>Improve controls.</li><li>Remove blocking spots.</li><li>More weapons.</li><li>Online Leaderboards</li><li>Different enemies</li><li>More music</li><li>Improve performance</li></ul>
<p>If you want to know more about the progress please check out our <a href="https://github.com/retrowax/Zombusters-Enhanced-Edition/projects/1" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Github Project page</a>.<br></p>
<h3>Social Media</h3>
<p>You can also follow us on several other platforms.<br></p>
<ul><li><a href="https://twitter.com/retrowaxgames" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Twitter</a></li><li><a href="https://www.instagram.com/p/B9CeaTaoDS6/?utm_source=ig_web_copy_link" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Instagram</a></li><li><a href="https://www.facebook.com/zombusters/" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Facebook</a></li><li><a href="https://github.com/retrowax/Zombusters-Enhanced-Edition" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Github</a></li><li><a href="https://giphy.com/channel/retrowax" target="_blank" rel="nofollow noopener" referrerpolicy="origin">Giphy</a></li><li><a href="https://www.indiedb.com/games/zombusters" target="_blank" rel="nofollow noopener" referrerpolicy="origin">IndieDB</a></li></ul>
<p><br><span></span></p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/BbYRxxzWzkI" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvMTkzNDYyLzMwOTU5NzUuZ2lm/original/Y1hA1H.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTkzNDYyLzMwOTU5NzYuZ2lm/original/pOtTIq.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTkzNDYyLzMwOTU5NzguZ2lm/original/MuKP6g.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTkzNDYyLzMwOTU5ODAuZ2lm/original/18AtsC.gif]][img width=500 [https://img.itch.zone/aW1hZ2UvMTkzNDYyLzkwNDExMy5qcGc=/original/ba%2B72Y.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTkzNDYyLzkwNDExNS5qcGc=/original/zTFllH.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTkzNDYyLzkwNDExNi5qcGc=/original/CdHvNG.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvMTkzNDYyLzkwNDExNy5qcGc=/original/e8qxIs.jpg]]
<p>Chase the high score as you fight wave after wave of enemies intent on your doom!</p>
<p>ZZap! is my first game. It's a simple and fun frenetic twin-stick shooter.&nbsp; It's the kind of game I would've designed for the Atari 2600 when I was 5 years old, if I could've.</p>
<p>Simply download and unzip 'ZZAP.ZIP', and play 'ZZAP.EXE'.<br></p>
<p>You pilot mankinds's last, best starfighter. In a hyperspace subdimension far removed from Einsteinian physics, you must hold back a flood of vicious aliens and their hostile technologies. As you destroy the horde, your score (and multiplier) increases, but so does your enemy's effort to destroy you, as they send new creatures and ships against you: Enemy ships can be docile and aimless, or aggressively fire weapons of their own. Some pursue you when angered, or become more dangerous when killed. Others recklessly explode when activated by a nearby starfighter - can you use this to your advantage?<br></p>
<p>More kills means a higher score multiplier, but don't get hit! You'll lose a life and halve your multiplier. Grab powerups to boost Points and Multiplier further, enhance your Laser to cope with the onslaught, or detonate a Bomb to buy a second of breathing space. Score high enough and you might even get an extra life.<br><br></p>
<p><strong>CONTROLS<br></strong></p>
<p>MOVE SHIP:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LEFT STICK<br></p>
<p>AIM:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;RIGHT STICK</p>
<p>FIRE:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;RIGHT STICK</p>
<p>PAUSE: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ESC or START</p>

<iframe width="720" height="450" src="https://www.youtube.com/embed/NmFuH1lZKwQ" frameborder="0" allowfullscreen></iframe>

[img width=500 [https://img.itch.zone/aW1hZ2UvNzYzOTAzLzQyNzQwMjkuanBn/original/dNipGv.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzYzOTAzLzQyNzQwMzAuanBn/original/hAc1eA.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzYzOTAzLzQyNzQwMzEuanBn/original/KFbKaI.jpg]][img width=500 [https://img.itch.zone/aW1hZ2UvNzYzOTAzLzQyNzQwMzMuanBn/original/GtHs4F.jpg]]